[Perl] Sentencia q no funciona bien

Ing. Ricardo Cumberbatch L. (PANNet - URC) rcumber@utp.ac.pa
Wed, 19 Feb 2003 08:02:22 -0500 (GMT)


Gracias por sus sugerencias, ya resolvi el problema con esta forma:

if ($cedula =3D~ /$linea[2]/i) {

Ya me funciona perfectamente

Gracias

On Tue, 18 Feb 2003, Bolo Lacertus wrote:

> Saludos!
>=20
> Creo que el problema est=E1 en la igualdad, ya que si usas =3D=3D para ca=
denas=20
>   estas se interpretan como n=FAmeros (seguramente en 0).
>=20
> Ing. Ricardo Cumberbatch L. (PANNet - URC) escribi=F3:
> >  while ($_ =3D <LECTOR>) { #PRIMER WHILE
> >   =09chomp;
> >  =09@linea =3D split;
> >  =09#$ced =3D split (/\//, $linea[2]);
> >  if ($cedula =3D~ $linea[2]) {
> >  Digamos que $cedula tiene el valos de 8-456-789 y $linea[2] tambien lo
> >  mismo el resultado se despliega sin ningun problema.
> >  Pero cuando $cedula =3D PE-456-987 y $linea[2] supuestamente tiene lo =
mismo
> >  el script no me hace nada y para mi esta extranio eso.
>=20
> En el if, estas usando $linea[2] como expresi=F3n regular, lo que puede=
=20
> dar resultados inprevistos. Yo te recomiendo compararlos como cadenas=20
> con "eq" y vigilar que $ced no tenga caracteres como "\n" al final=20
> cuando lo comparas.
>=20
> En casos como esos correr el programa en modo Debugger es muy =FAtil, no=
=20
> dejes de darle un vistazo.
>=20
> Daniel Sol
>=20
>=20