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 この 3 つの要素が必要でした。ファイルによっては、最後の行が 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" requires explicit package name at new.plx ~~ コンパイル エラーのため、new.plx の実行が中止されました。
上はアドバイスをまとめただけですが… 次のifで始まる行から、修正されるかもしれません。
誰でも私を助けることができますか?.. 私は絶望的です...