在Perl,为什么我得到一个语法错误,当我尝试使用字符串的eval?
题
为什么不是这方面的工作?
eval "$response = $ua->request($r);"
print "$@";
给出:
syntax error at (eval 8) line 1, near "="
解决方案
这是行不通的,因为你的双引号字符串受到插值,这是不会顺利,用这些变量代替正在扩大。你需要一个分号你的eval之外,里面没有那么多。尝试像这样单引号:
eval '$response = $ua->request($r)';
其他提示
有一个更好的问题是为什么你正在使用的不是块的eval字符串的eval,?
eval { $response = $ua->request($r); }
print "$@";
一个更好的更好的问题是为什么要首先使用eval?我怀疑你正在使用LWP::UserAgent
,除非你实现你自己的请求对象中,“request`方法不可能做死。
因此,为什么不能简单地用:
$response = $ua->request($r);
不隶属于 StackOverflow