aleph:~ [19:27:57]$ perl -wMData::Dumper -e 'print Dumper {undef() => undef}' Use of uninitialized value in anonymous hash ({}) at -e line 1. $VAR1 = { '' => undef }; #### my %h = map { defined ? $_ : $default } map { chomp; (split /\s+/, $_, 2)[0,1] } ; #### my %pairs = map { chomp; my($k,$v)=(split ' ', $_, 2)[0,1]; defined $k ? ($k => $v // $default) : () } ; #### my %pairs = map { chomp; map @{ ([], [@$_, $default], $_)[scalar @$_] }, [split ' ', $_, 2] } ;