Perl はたまにしか使わないからいつまでたっても覚えない。のでメモ。
ファイルから1行だけ読み込むには:
use strict; use warnings; my $file = shift; open(my $fh, '<', $file) or die "$file: $!"; my $line = <$fh>; print $line;
実行結果:
^o^ > type sample.txt sun mon tue wed thu fri sat ^o^ > perl read_line.pl sample.txt sun
スカラー変数じゃなくて配列変数に代入すると、ファイル全体が1行ずつの配列になる。
use strict; use warnings; my $file = shift; open(my $fh, '<', $file) or die "$file: $!"; my @lines = <$fh>; foreach my $line (@lines) { print $line; }
実行結果:
^o^ > perl read_lines.pl sample.txt sun mon tue wed thu fri sat
1行ずつ読み込みながら処理するには、while ループと一緒に使う:
use strict; use warnings; my $file = shift; open(my $fh, '<', $file) or die "$file: $!"; while (my $line = <$fh>) { print uc($line); }
実行結果:
^o^ > perl read_lines_loop.pl sample.txt SUN MON TUE WED THU FRI SAT