我有一个文本文件,其格式为..
***** yz = 1.4333 ******
结果= 3.58e-01
******* ayf = 25.00 **** yz = 1.34
结果= 3.24e-01
我想提取结果和放大器旁边的值。将它推入阵列。
答案 0 :(得分:0)
您在示例中没有提供更多代码吗?像结果数组的输出?否则有一些事情需要考虑:
result
从行的开头开始。一般而言,如果您希望在可能出现的空格方面更加灵活,请在相应位置插入\s*
。对于扩展代码:
use strict;
和use warnings;
open
的3参数模式和可能的词汇文件处理程序(my $fh
而不是FH
)。 3参数模式确保您不会忘记指定打开文件的实际模式(读/写等)等。close(FH)
文件处理程序,然后将其用于其他文件例如,不关闭IN2
似乎是代码中的一个问题。
答案 1 :(得分:0)
这可能有效:
open my $fh, '<', $filename or die;
my @array;
/result\s*=\s*(\S+)/i and push @array, 0+$1 while <$fh>; # 0+$1 or just $1
close $fh;