Что slickest путь состоит в том, чтобы программно считать из stdin или входного файла (если обеспечено) в Perl?
while (<>) {
print;
}
будет читать либо из файла, указанного в командной строке, либо из stdin, если файл не указан
Если вам нужна эта конструкция цикла в командной строке, то вы можете использовать опцию -n
опция:
$ perl -ne 'print;'
Здесь вы просто помещаете код между {}
из первого примера в ''
во втором
Вам нужно использовать оператор <>:
while (<>) {
print $_; # or simply "print;"
}
Который можно сжать в:
print while (<>);
Произвольный файл:
open F, "<file.txt" or die $!;
while (<F>) {
print $_;
}
close F;
if(my $file = shift) { # if file is specified, read from that
open(my $fh, '<', $file) or die($!);
while(my $line = <$fh>) {
print $line;
}
}
else { # otherwise, read from STDIN
print while(<>);
}