my %d; foreach (@ARGV) { my ($k, $v) = split (m/=/, $_, 2); $d{$k} = (defined $v ? $v : ""); } #this is for checking only.. foreach (keys %d) { print "$_:" . $d{$_} . "\n"; } #### my $defaults = {}; %defaults = map {(($_ =~ /([^\=]+)\=(.+)/)?($1 => $2):($_ => ''))} @ARGV; print join(",", keys %defaults);