use Data::Alias qw( alias ); my ($ident, $value) = @_[0,1]; alias $_[1] = $VALUES{ $ident ); $_[1] = $value if defined($value); splice(@_, 0, 2);