%{$self->{info}} = map {@$_} grep {$_->[1]} map {chomp; [split '=', $_, 2];} <$fh>; #### %{$self->{info}} = map {chomp; my ($k, $v) = split '=', $_, 2; $v ? ($k => $v) : (); } <$fh>; #### # assuming default values are in %defaults %{$self->{info}} = map {chomp; my ($k, $v) = split '=', $_, 2; $k => $v || $defaults{$k}; } <$fh>;