我有一个输入文件
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>
)
我找到了另一个没有 if 条件的解决方案,它只是陈述@string = sort grep /^keyword/,<FILE>;
和工作。你能向我解释一下这里发生了什么吗?
/编辑
谢谢你的答案和解释!您认为更好/更优雅的方式是什么?grep 还是 if 条件?