我需要在perl中实现以下功能
printmsg(@val1, $msg1) if @val1;
printmsg(@val2, $msg2) if @val2;
printmsg(@val3, $msg3) if @val3;
printmsg(@val4, $msg4) if @val4;
printmsg(@val5, $msg5) if @val5;
printmsg(@val6, $msg6) if @val6;
Run Code Online (Sandbox Code Playgroud)
所以我写了下面的代码片段
for(my $i=1; $i < 6; $i++ ) {
printmsg(@val$i, $msg$i) if @val$i;
}
Run Code Online (Sandbox Code Playgroud)
它不起作用并且会出错.
在PHP中,我可以写:
$vname = 'phone';
$$vname = '555-1234';
print $phone;
Run Code Online (Sandbox Code Playgroud)
...脚本将输出"555-1234".
Perl中有任何等价物吗?
有没有办法限制$phone本地区块的范围,就像我写的那样my $phone?使用my $$vname给了我"不能在我的...中声明标量解除引用"错误.