入力ファイルがあります
words;
yadda yadda;
keyword 123;
yadda;
変数として保存された値 123 を取得したいだけです。ここから解決策を試しました:
my $var;
open(FILE,$data.dat) or die "error on opening $data: $!\n";
while (my $line = <FILE>) {
if (/^keyword/) {
$var = $1;
print $line;
last;
}
}
close(FILE);
これは機能せず、次のエラーが表示されます: Use of uninitialized value $_ in pattern match (m//) at ./script.pl line 91, <FILE> line 384.
(これは のすべての行で発生します<FILE>
)
私は、単に述べ@string = sort grep /^keyword/,<FILE>;
て機能するif条件のない別の解決策を見つけました。ここで何が起こっているのか説明してもらえますか?
/編集
回答と解説ありがとうございます!より良い/よりエレガントな方法は何だと思いますか? grep または if 条件?