1

私はこのスクリプトを持っています

open (DICT,'file 0 .csv'); 

my @dictio = <DICT>;
chomp @dictio;
print @dictio;

私のファイル 0 .csv は次のようになります:

AAAA , a
AAAT , b
AAAC , c

したがって、chomp を使用して新しい行の文字を削除したいのですが、印刷すると配列が消えます。chomp を使用せずに配列を印刷すると、最初のファイルのように印刷されます。

では、chomp コマンドのどこが間違っているのでしょうか?

ありがとう

4

2 に答える 2

0
open (my $DICT, '<', 'file 0 .csv') or die "cannot open file ";
while ( my $line = <$DICT> ) {
    chomp $line;
    my @line = split( ',' , $line );
}
close($DICT);

現在のコードは、ファイル全体を配列に読み込みます。このようにするとズルズルだと思います。その結果、chomp は期待どおりに機能しません。Chomp は通常、上記で使用したようにスカラー変数と共に使用され、各行の '\n' を切り取ります。

上記のコードは、ファイルの現在の行の各フィールドを含む、@line を呼び出すために選択した配列にファイルを 1 行ずつ読み取ります。これにより、一度に 1 行ずつ処理できます。

于 2013-11-06T15:03:01.347 に答える
0

これを試して

open (my $DICT, '<', 'file 0 .csv') or die "cannot open file "; 

my @dictio = <$DICT>;
chomp @dictio;
print @dictio;
于 2013-11-05T09:11:05.147 に答える