sub expand_keys { my @result; while(@_) { my $key = shift; my $value = shift; if(ref $key) { push @result, $_, $value foreach @$key; } else { push @result, $key, $value; } } return @result; }