foreach my $key (sort keys %csa_hash) { #print "$key\n"; # ok we now need to split up the key in the hash my $pdb = substr($key, 0, 4); my $chain = substr($key, 5, 1); my $res = substr($key, 7, 6); #print "$pdb $chain $res\n"; # works great. using substring as I dont really want to create an array my $pdbchain = "$pdb" . "$chain"; # concatenate together so to compare with domain data # print "$pdbchain\n"; # works fine # lets be on the safe side and remove white space # for domchain and pdbchain $res =~ s/\s//g; #$domchain =~ s/\s//g; $pdbchain =~ s/\s//g; #chomp($domchain); chomp($pdbchain); if($dom_hash{$pdbchain}{$res}) { print "$pdbchain $res\n"; } }