2017-12-11 5 views
2

ファイルからPerlプログラムにデータを抽出し、 "foreach"ループを使用してLinuxのsh端末で実行しようとしていますが、 sh端末では、スクリプトが失敗する次の文字列を出力する前に、新しい行を出力します。それをどうやって防ぐのですか?システムを使用してshターミナルに書き込んだ後に改行を印刷しないようにするには

open(FILE, "input") or die("Unable to open file"); 

# read file into an array 
@data = <FILE>; 

# close file 
close(FILE); 

foreach my $x(@data) { 
    system "/granite_api.pl -type update_backdoor -project tgplp -test_id $x -turninid 4206"; 
} 

予想される出力:

/granite_api.pl -type update_backdoor -project tgplp -test_id example -turninid 4206 

実際の出力:

/granite_api.pl -type update_backdoor -project tgplp -test_id example 
-turninid 4206 

答えて

4

@data = <FILE>; 
付き210

@dataには、入力ファイルのすべての行が含まれています。各行はLFで終わります。 ( `ムシャムシャ食べる:あなたはchomp in perldoc

+3

' chomp'もリストに作品を見る

foreach my $x (@data) { chomp $x; system "/granite_api.pl -type update_backdoor -project tgplp -test_id $x -turninid 4206"; } 

(つまり$/に設定され、末尾の文字を削除します)例えばchompを使用して、各$xからそれを削除する必要があります@data); 'は' @ data'のすべての要素をchompします。 – PerlDuck

関連する問題