Bini -- -21.89753 -20.47853 -20.27835 -18.34952 -16.23454
Bini -- -16.89753 -14.47853 -13.27835 -12.34952 -11.23454
Bini -- -10.09014
私のファイルには上記のような配列があります。そして、Bini で始まるこの配列は複数行の配列ですが、ここでは 3 行しか表示していません。私が試したかったのは、最後の 2 行から最後の 3 つの要素を抽出することです。つまり、-12.34952 -11.23454 -10.09014 この 3 つの要素が必要でした。ファイルによっては、最後の行に 2 から 5 の要素がある場合があります。しかし、ここでは、最後の行から 1 つの要素しかありません。
私が試したことは次のとおりです
while(my $line = <FILE>) {
if($line =~ /Bini/) { #extract last 3, 2, 1 element
my @entries = split(/Ws+/,$line);
$element1 = (pop@entries);
$element2 = (pop@entries);
$element3 = (pop@entries);
}
その結果、-10.09014 である element1 が表示されましたが、残念ながら要素 2 と要素 3 は取得できませんでした。..
元のスクリプトを保持したい。つまり、result.txtの作成手順と、出力形式である「log」の開き方です。
引用符
#!/usr/bin/perl use warnings;
use strict;
use File::stat;
open (OUT, ">", "result\.txt") or die "cannot open file\,\n"; #from this plx, I want to creat result.txt
foreach my $answer (glob "*.log") { # format of reading file will be "log"
open (FILE, "<", "$answer") or die "Cannot open file\.\n";
my @file = split ('\.', $answer);
引用符
ファイルを開く方法がエラーを誘発しました( my @array = read_file('input.txt') スクリプトから my $line = 0 から始まるスクリプトを使用するにはどうすればよいのでしょうか。txtの形式をログに変更しましたが(例input.log)、それでもエラー メッセージが表示されました (read_file 'input.txt' - sysopen: No such file or directory at text.plx line 6)
.....