テキストファイルのような行列が与えられているので、3番目の列(pos 2)に値> 60、値> 80を含むすべての行(\t
は区切り記号です) 6番目(pos 5)に出力して別のファイルに出力してください。これまでのところ私は次のようになりました:Perl:行列ファイルから特定の値を抽出する
#!/usr/bin/perl;
use strict;
use warnings;
use diagnostics;
open(my $in, "file.txt")or die $!;
my $line = <$in>;
my $count;
while (<$in>) {
chomp;
my @element = split (/\t/,$_);
if ($element[2] >= 60 && $element[5] > 80){
$count++;
}
}
close $in;
print $count;
何が問題なのですか?ありがとうPS。私は同様の質問を見つけましたが、私の低レベルのPerlスキルは解決策を抽出できませんでした。
されるのではなく$カウントをインクリメントするの、あなたが印刷「$ _ \ n」を単に行うことができます。行を画面に印刷します。そうすれば、if文から正しい行が得られているかどうかを確認することができます。あなたが要素の数を取得していない分割に問題がある場合は、別のバックスラッシュでバックスラッシュをエスケープする必要があります。 – Glenn