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"; }