Perl에서 String Eval을 사용하려고 할 때 왜 구문 오류가 발생합니까?

StackOverflow https://stackoverflow.com/questions/1227605

  •  22-07-2019
  •  | 
  •  

문제

왜 이것이 작동하지 않습니까?

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);

?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top