#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw(min max);
use Set::IntervalTree;
use GenomeLookupUtil;
my $chromCol = 0;
my $startCol = 0;
my $endCol = 0;
if($ARGV[2] eq "VSC") {
$chromCol = 0;
$startCol = 1;
$endCol = 2;
} else {
$chromCol = 1;
$startCol = 2;
$endCol = 3;
}
open (IN2,"$ARGV[0]") || die "counldn't open";
print STDERR "Read mask file \n";
my @masklines = ();
my $i = 0;
my %mask_hash = ();
my $current_chr = '01';
my $current_snp_ranges = Set::IntervalTree->new();
while (<IN2>){
my @masklines = split ("\t", $_);
if ($masklines[1] ne $current_chr) {
$mask_hash{$current_chr} = $current_snp_ranges;
$current_snp_ranges = Set::IntervalTree->new();
}
$current_chr = $masklines[$chromCol];
$current_snp_ranges->insert(
[ $masklines[$startCol], $masklines[$endCol] ],
$masklines[$startCol],
$masklines[$endCol]
);
}
$mask_hash{$current_chr} = $current_snp_ranges;
close (IN2);
ファイルである不要な引数を含むコードを実行しているとき、エラーが次のように表示されます
Use of uninitialized value in subroutine entry at mytest.pl line 47, <IN2> line 100.
すべての変数を初期化しましたが、コードでもサブルーチンを使用していません。47行目は
$current_snp_ranges->insert(
[ $masklines[$startCol], $masklines[$endCol] ],
$masklines[$startCol],
$masklines[$endCol]
);