【发布时间】:2013-07-30 23:02:09
【问题描述】:
我有一个输入文件
words;
yadda yadda;
keyword 123;
yadda;
我只想将值 123 保存为变量。我尝试了here的解决方案:
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 条件?
【问题讨论】:
-
您的
grep问题基本上是不相关的,因为它不能解决这个精确的问题。请一题一题;如果您仍然希望得到答案,请发布一个单独的问题,因为您已经在此处接受了答案,因此将您的问题标记为已解决。
标签: perl if-statement grep