use strict; use warnings; use Data::Dumper; ## my $inGeneDat=$ARGV[0] || "genes.dat"; open(IN,"<",$inGeneDat) || die "cannot open $inGeneDat\n"; ## my %HoNms; { local $/ = '//'; while(my $record=) { my %values = $record =~ /^(\S+)\s+-\s+(\S+)/mg; next unless exists $values{'UNIQUE-ID'} and exists $values{'ACCESSION-1'}; # Your code using $values{'UNIQUE-ID'} and other values here my $cycID=$values{'UNIQUE-ID'}; my $cycLoc=$values{'ACCESSION-1'}; my $ECKLoc=$values{'ACCESSION-2'}; my $EGLocL=$values{'DBLINKS'}; $EGLocL=~/"(EG\S+)"/; my $EGLoc=$1; my $Nm=$values{'COMMON-NAME'}; # $HoNms{$cycID} = { 'acc1' => $cycLoc, 'acc2' => $ECKLoc, 'EG'=> $EGLoc, 'nm' => $Nm }; } } print Dumper(%HoNms); close(IN);