my %file1; while(){ chomp; (my $id, my $number) = split /\t/; if ($id=~ m/^(CLS_S3_Contig[0-9]+)([-]?)([0-9]+)([_]?)([0-9]+)$/i) { $file1{$1} = [$3-8, $5+7]; # or should it be $5+8? } } print "Processed $. lines from $ARGV[0] file\n"; close(INPUT1);