我应该如何为此Perl哈希中的两个不同键分配相同的值?

ado*_*ado 2 perl

当我有2个数据结构意味着相同的东西时,ex:

$c->req->cookies->{app1} = $c->req->cookies->{general};
$c->req->cookies->{app2} = $c->req->cookies->{general};
Run Code Online (Sandbox Code Playgroud)

我可以写:

( $c->req->cookies->{app1}, $c->req->cookies->{app2} ) = $c->req->cookies->{general};
Run Code Online (Sandbox Code Playgroud)

另外,我可以写:

   $c->req->cookies->{app1} =  $c->req->cookies->{app2 } = $c->req->cookies->{general};
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 7

第二种形式是可能的,有些人经常使用它

$x = $y = $z;
Run Code Online (Sandbox Code Playgroud)

第一种形式不能满足你的需要.它只为第一个变量赋值.

($x, $y) = $z;
Run Code Online (Sandbox Code Playgroud)

您还需要右侧的两个成员列表:

($x, $y) = ($z) x 2;
Run Code Online (Sandbox Code Playgroud)

更新: 在您的情况下,x只有在涉及的方法为两个调用返回相同的值时才能使用运算符,否则,您可以使用

($x, $y) = map $obj->method, 1, 2;
Run Code Online (Sandbox Code Playgroud)