消除重复的表达

0 perl

如何消除$e->{aa}{$_}下面表达式中的重复术语?

my $e = {aa=>{aa=>1,bb=>2,c=>undef}};
my $s = " ". (defined $e->{aa}{$_} ? $e->{aa}{$_} :'null') ." ";
Run Code Online (Sandbox Code Playgroud)

amo*_*mon 5

从v5.10开始,你可以使用定义或运算符//来测试定义而不是真,就像||那样.然后:

my $s = ($e->{aa}{$_} // 'null') . ' ';
Run Code Online (Sandbox Code Playgroud)