Perl の 1 つの変数に多くの行が格納されています。
<> 演算子を使用してこれらの行を読み取ることができるかどうかを知りたいです。
本当に必要な場合は、ファイルハンドルを開くことができます。
use strict;
use warnings;
my $lines = "one\ntwo\nthree";
open my $fh, "<", \$lines;
while( <$fh> ) {
print "line $.: $_";
}
別の方法として、とにかくメモリ内に既にものがある場合は、それを配列に分割することもできます。
my @lines = split /\n/, $lines; # or whatever
foreach my $line( @lines ) {
# do stuff
}
それはおそらく読みやすく、今後も維持しやすいでしょう。
はい。に記載されているようにperldoc -f open
、ファイルハンドルを開いてスカラー変数にすることができます。
my $data = <<'';
line1
line2
line3
open my $fh, '<', \$data;
while (<$fh>) {
chomp;
print "[[ $_ ]]\n";
}
# prints
# [[ line1 ]]
# [[ line2 ]]
# [[ line3 ]]
便利な代替手段を見つけました。
<> は使用しませんが、使用したかのように動作します
for (split /^/, $lines) {
...
}