I tried to incorporate it as follows:
#!/usr/bin/perl
use strict;
use warnings;
my %info; # here we collect all information
my @columns = qw(gi version cds); # The name and order of the columns
+we want to print
my $data = '/DATA/GenBankFile.gb'; # GenBank file is located at C:\DAT
+A
open INFILE, '<', $data or die "Cannot open file!\n";
while (<INFILE>) {
if (m!GI:(\d+)!) {
if ($info{cds}) { # we are in a CDS block
$info{gi} = $1;
};
} elsif (m!^\s+CDS\s+(.*)!) {
# a new gene information has started
flush_info();
# now remember the CDS
$info{cds} = $1
} elsif (m!^VERSION.*\w:(\d+)! ) {
$info{ version } = $1;
} else {
warn "Ignoring unknown line [$_]\n";
};
};
# Output any leftover information:
flush_info();
sub flush_info {
# print out all information:
print join '*', @info{@columns}; #Line 34
# and forget the collected information
%info = ();
};
This always prints out the Ignoring unknown value. And it gives an error for line 34 (Use of uninitialized value) |