http://www.perlmonks.org?node_id=991015


in reply to Re^2: Debugging help!
in thread Debugging help!

Do your files have empty lines which don't match your regexps? Try returning empty list (()) in case the regexp didn't match (map will omit the element in this case):
$ perl -w -MData::Dumper -E'%h = map {if(/(.+)\s+\|\s+(.+)/){$1=>$2}el +se{()}} (<>); print Dumper \%h' Q6GZX4 | PF04947.9 Q96355 | PF01486.12 PF00319.13 Q96356 | PF01486.12 PF00319.13 Q39371 | PF01486.12 PF00319.13 DSFSDF ASD SSSSSSSSSS ^D $VAR1 = { 'Q96355' => 'PF01486.12 PF00319.13', 'Q96356' => 'PF01486.12 PF00319.13', 'Q6GZX4' => 'PF04947.9', 'Q39371' => 'PF01486.12 PF00319.13' };
Edit: return an empty list
Sorry if my advice was wrong.