[英]In Perl, why do I get a syntax error when I try to use string eval?
为什么这不起作用?
eval "$response = $ua->request($r);"
print "$@";
给出:
syntax error at (eval 8) line 1, near "="
一个更好的问题是,为什么要使用字符串eval而不是块eval?
eval { $response = $ua->request($r); }
print "$@";
这是行不通的,因为用双引号引起来的字符串会进行插值,插值将无法顺利进行,因为这些变量已在适当位置扩展。 而且您需要在评估之外使用分号,而在评估中则不需要太多。 像这样尝试单引号:
eval '$response = $ua->request($r)';
一个更好的更好的问题是,为什么首先要使用eval? 我怀疑您正在使用LWP::UserAgent
,除非您实现自己的请求对象,否则'request`方法不太可能消失。
因此,为什么不简单地使用:
$response = $ua->request($r);
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.