直感で作業して、\r
入力行の最後に追加しようとしましたが、確かに、入力の最後の行だけがファイルに出力されるという錯覚を引き起こします。テストするコードは次のとおりです。
use strict;
use warnings;
my @result = map "$_\r", 'A' .. 'Z';
open (OUT, "> myFile.txt") or die("Couldn't open output file: $!");
foreach (@result) {
print OUT ;
}
おそらくあなたが行ったことはchomp
、別のオペレーティング システム (DOS、Windows) のファイルの行に対して実行されたものであり、\r
行末が取り除かれていません。したがって、行が印刷されると、行は互いに上書きされます。
これが間違っている場合、解決策は、dos2unix
ツールを使用してファイルを修正するか、次を使用することです。
s/\s+\z//;
改行を削除します。
Data::Dumper
オプションを使用して、モジュールを使用して入力を検査できますUseqq
。たとえば、次のようになります。
use Data::Dumper;
$Data::Dumper::Useqq = 1;
print Dumper \@result;
これらの空白文字が出力に含まれている場合、それらは表示されます。