perl哈希分配如果

时间:2015-12-04 05:07:03

标签: perl hash

我正在为这样的哈希值分配值:

 my $hashdt = {
            a      => $p,
            b      => $q->r,
            c      => $y,
           };

我想更改此设置,以便只有在定义了另一个变量$ x时,c才会获取值。如果未定义$ x,则为c指定值$ y。我可以将该任务作为单独的代码行。有没有办法在这里做到这一点?其他键必须继续获取现在的值。

2 个答案:

答案 0 :(得分:2)

试试这个:

my $hashdt = {
            a      => $p,
            b      => $q->r,
            c      => defined($x)?$x:$y,   #you can also use '$x||$y'
           };

答案 1 :(得分:1)

以下也可以 -

my $hashdt = {
            a      => $p,
            b      => $q->r,
            c      => $x || $y,
           };