my @valid = qw/buttons action foo bar xyz/; my %args = ( buttons => [], action => 'parse.cgi', @_ ); foreach my $k (@valid) { next if not exists $args{$k}; my $v = $args{$k}; $v = @$v if ref $v eq 'ARRAY'; print "$k => $v\n"; }