Bini -- -10.09014
cidi
Bini -- -21.89753 -21.47853 -20.27835 -20.34952 -17.23454
Bini -- -16.89753 -12.47853 -11.27835 -11.34952 -10.23454
Bini -- -09.09014
light is 3.4
我的文件有一个如上所示的数组。我想尝试的是从最后 2 行中提取最后 3 个元素。所以,-12.34952 -11.23454 -10.09014 这三个元素是我想要的。有时,最后一行可能以 1 到 5 个元素结束,具体取决于文件。但在这里,它只有最后一行的 1 个元素。所以我想要的格式如下。
名称 H1 H2 H3 H4
文件名 -09.09014 -10.23454 -11.34952
H4 将是我想从打开的文件中提取的其他元素。以下是我所做的..实际上,从推送中,我迷路了。连我都不知道是什么意思……当你发表评论的时候,即使是简短的建议也很好。
块引用
use warnings;
use strict;
use File::stat;
open (OUT, ">", "result\.txt") or die "cannot open file\,\n";
printf OUT " code H1 H2 H3 H4[A\.U\.]\n";
foreach my $answer (glob "*.log") {
open (FILE, "<", "$answer") or die "Cannot open file\.\n";
my @file = split ('\.', $answer);
my $name = $file[0];
my @entries; #
while(my $line = <FILE>) {
next if $line !~ /Bini/; # take H1 H2 H3
push @entries, grep /\d/, split /\s+/,$line;
}
elsif ($line =~ /light/) { # take take H4
@entries_h3 = split(/\s+/,$line);
$element4 = $entries_h3[3];
}
else {
next;
}
}
}
PRINT:
printf OUT "%10s %12.3f %12.3f %12.3f %12.3f,$name, $element1, $element2, $element3, $element4;
close (FILE);
}
close (OUT);
块引用
大多数情况下,它显示如下错误消息:全局符号“@entries”需要在 new.plx 处显式的包名称 ~~ 由于编译错误,new.plx 的执行中止。
以上只是我从建议中结合...从下一个 if 开始的行,它可能会被纠正。
有人可以帮助我吗?.. 生无可恋...