while(<>) %HoA=(); next unless /^ATOM\b/; @split_atom_line=split(/\s+/, $_); $chain=$split_atom_line[4]; $position=$split_atom_line[5]; $Zcoordinate=$split_atom_line[8]; if (not exists $HoA{$chain} or $position < $HoA{$chain}[0]) { $HoA{$chain} = [$position, $Zcoordinate]; } for $key ( keys %HoA ) { print "$key: $HoA{$key}[0]\n"; } }