[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