1
\ tで区切られたファイルで、chrXまたはchrYを持ち、4列目が陽性の行のみを印刷しようとしています。タブで区切られたファイルの行を選択する
入力
1373 NM_016303 chrX + 103356451 10335846
1059 NM_015666 chr20 + 62183024 62202754
116 NM_015340 chr3 + 45388582 45548836
10 NM_001206850 chrY - 14522607 14843968
出力
1373 NM_016303 chrX + 103356451 10335846
私のコード
#!/usr/bin/perl
use strict;
use warnings;
print "type in the path of the file\n";
my $file_name = <>;
chomp($file_name);
open (FILE, $file_name) or die "#!";
my @line;
my @array1;
while(<FILE>){
@line = split(/\t/);
$array1[2]=$line[2];
$array1[3]=$line[3];
}
my $positive;
my $chr;
#select only positives
if ($line[3] =~ m/\+/i) {
$positive = $array1[3];
}
#only chrX or chrY
elsif ($line[2] =~ m/chrX/i or $line[2] =~ m/chrY/i) {
$chr = $array1[2];
}
else {
print "no chrY or chrX\n";
}
print "$chr $positive\n";
close(FILE);
exit;
が、私はエラー
Use of uninitialized value $chr in concatenation (.) or string at file.pl line 34, <FILE> line 61287.
を取得
私はいくつかの変更を試みたが、それは唯一の
chrX +
ではなく、全体のラインを印刷しました。私は何を変えるべきですか?ありがとう。