my $defaults = {}; %defaults = map {(($_ =~ /([^\=]+)\=([^\s]+)/)?("$1" => "$2"):())} @ARGV; print join(",", keys %defaults); #### $_ =~ /([^\=]+)\=([^\s]+)/ #### $_ =~ /([^\=]+)\=([[^\s]|[\\\s]]+)/) #### $_ =~ /([^\=]+)\=([^[[^\\]\s]]+)/