$template->param( some_var => 10, (some_var => $hash{some_possibly_undefined_key}) x!! exists($hash{some_possibly_undefined_key}), ); #### $template->param( some_var => exists $hash{some_possibly_undefined_key} ? $hash{some_possibly_undefined_key} : 10; ); #### { package MyTemplate; use base Template; use Params::Validate qw (validate); sub param { my $self = shift; my %p = validate(@_, { some_var => { default => 12, } }); $self->SUPER::param(%p); } }