我如何解决这个“在void上下文中无用的变量”的情况?
例如:
my $err = $soap_response->code," ",$soap_response->string,"\n"; return $err;
我收到警告,如“无用的变量在无效的上下文”?为什么?我该如何解决?
解决方法
如果想连接参数,请使用“。”运算符或加入:
my $err = $soap_response->code. " ". $soap_response->string. "\n"; my $err = join '',$soap_response->code,"\n";
接下来是为什么Perl给你警告。
您将分配给标量变量$ err,赋值的右侧以标量上下文计算。
二进制“,”是逗号运算符。在标量上下文中,它评估其在void context中的左参数,将该值抛出,然后在标量上下文中评估其正确的参数并返回该值。
评估一个变量或一个常数并将该值抛弃是无用的。而perl警告你这个。
FYI:您的代码的另一个可能的问题:
my $err = $soap_response->code,"\n";
这个任务的优先级是:
(my $err = $soap_response->code),"\n";
有关更多信息,请参阅Perl operators and precedence和Comma operator。