Domanda

Perché non funziona?

eval "$response = $ua->request($r);"
print "$@";

dà:

syntax error at (eval 8) line 1, near "=" 
È stato utile?

Soluzione

Non funziona perché la stringa tra virgolette doppie è soggetta all'interpolazione, che non andrà bene, con quelle variabili che vengono espanse in posizione. E hai bisogno di un punto e virgola fuori dal tuo giudizio, non tanto al suo interno. Prova virgolette singole in questo modo:

eval '$response = $ua->request($r)';

Altri suggerimenti

Una domanda migliore è perché stai usando una stringa eval, invece di una block eval?

eval { $response = $ua->request($r); }
print "$@";

Una domanda ancora migliore è perché stai usando eval in primo luogo? Ho il sospetto che tu stia usando LWP :: UserAgent e, a meno che tu non implementi il ??tuo oggetto richiesta, è improbabile che il metodo 'request` muoia.

Quindi, perché non usare semplicemente:

$response = $ua->request($r);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top