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