Perl에서 String Eval을 사용하려고 할 때 왜 구문 오류가 발생합니까?
문제
왜 이것이 작동하지 않습니까?
eval "$response = $ua->request($r);"
print "$@";
제공 :
syntax error at (eval 8) line 1, near "="
해결책
이중 인용 문자열에는 보간이 적용되기 때문에 작동하지 않습니다. 이는 변수가 확장되어 잘 진행되지 않을 것입니다. 그리고 당신은 당신의 평가 외부에 세미콜론이 필요합니다. 그렇게 같은 단일 따옴표를 시도하십시오.
eval '$response = $ua->request($r)';
다른 팁
더 좋은 질문은 블록 평가 대신 문자열 평가를 사용하는 이유는 무엇입니까?
eval { $response = $ua->request($r); }
print "$@";
더 나은 질문은 처음에 Eval을 사용하는 이유는 무엇입니까? 나는 당신이 사용하고 있다고 생각합니다 LWP::UserAgent
또한 자신의 요청 객체를 구현하지 않으면 '요청'방법이 죽지 않을 것입니다.
따라서 간단히 사용하지 않는 이유는 무엇입니까?
$response = $ua->request($r);
?
제휴하지 않습니다 StackOverflow