[Perl] AYUDA....

Adrian Galindo agalindo@liceaga.facmed.unam.mx
Mon, 01 Jul 2002 17:22:21 -0500


Luis Medrano Zaldivar wrote:

>Tengo una bronca estoy corriendo un script de perl y me esta marcando es=
te error cuando lo corro:
>
>Backslash found where operator expected at linkshtm.pl line 13, near ""\=
(\'http\:\/\/\".$maindomain; # " \"
>        (Missing operator before  \?)
>syntax error at linkshtm.pl line 13, near ""\(\'http\:\/\/\".$maindomain=
; # " \"
>Can't find string terminator "'" anywhere before EOF at linkshtm.pl line=
 13.
>
>
>Estas son las lineas que me estan dando bronca:
>
>$bodyuno=3D"<BODY onLoad\=3D\"javascript\:popUp";
>$bodyuno=3D$bodyuno."(\'http\:\/\/\".$maindomain."\')\">";
>
>Nose si me estoy quedando ciego o que ondas porque no puedo ver donde es=
ta el error. Les agradecere si me pueden ayudar con esto.
>
No es necesario que escapes tantos caracteres. Mientras esten dentro de=20
comillas y no sean $, @, o %, puedes ponerlos como un caracter m=E1s.

Quedar=EDa as=ED, seg=FAn yo:

$bodyuno=3D'<BODY onLoad=3D"javascript:popUp';
$bodyuno.=3D"('http://$maindomain')\">";

En la primera, si no metes variables, puedes usar comilla sencilla y ya=20
no necesitas escapar la doble.
En la segunda, si usas la doble, porque est=E1s interpolando $maindomain,=
=20
as=ED no es necesario escapar las sencillas,  solo escapas la doble que=20
cierra el javascripazo.

O en su defecto:
$bodyuno=3D'<BODY onLoad=3D"javascript:popUp(\'http://'.$maindomain.'\')"=
>';


Saludos.
Adri=E1n.