私のタスクは、次のデータ ファイルから平均を計算することですLab1_table.txt
。
retrovirus genome gag pol env
HIV-1 9181 1503 3006 2571
FIV 9474 1353 2993 2571
KoRV 8431 1566 3384 1980
GaLV 8088 1563 3498 2058
PERV 8072 1560 3621 1532
このファイルを開いて読み取り、内容を配列に分割して各行を読み取り、数値の平均 ( genome
、gag
、 ) を計算しpol
、env
それぞれの平均を新しいファイルに書き込むスクリプトを作成する必要があります。前述のコラム。
最初の行または最初の列を考慮しない方法を見つけようと最善を尽くしてきましたが、コマンドラインで実行しようとするたびに「明示的なパッケージ名」エラーが発生し続けます。
Global symbol @average requires explicit package name at line 23.
Global symbol @average requires explicit package name at line 29.
Execution aborted due to compilation errors.
@
これにはとが含まれることを理解して$
いますが、エラーを変更できなかったことを知っていても.
これは私のコードですが、先週始めたばかりの初心者であることを強調します。
#!/usr/bin/perl -w
use strict;
my $infile = "Lab1_table.txt"; # This is the file path
open INFILE, $infile or die "Can't open $infile: $!";
my $count = 0;
my $average = ();
while (<INFILE>) {
chomp;
my @columns = split /\t/;
$count++;
if ( $count == 1 ) {
$average = @columns;
}
else {
for( my $i = 1; $i < scalar $average; $i++ ) {
$average[$i] += $columns[$i];
}
}
}
for( my $i = 1; $i < scalar $average; $i++ ) {
print $average[$i]/$count, "\n";
}
洞察をいただければ幸いです。また、必要に応じて、各ステップで行っていることをリストに番号を付けてお知らせいただければ幸いです。私は学びたいと思っており、誰かのプロセスが何であるかを読むことができれば、それは私にとってより理にかなっています.