• Publicidad

Presentación y, como no, problemilla

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Presentación y, como no, problemilla

Notapor enhiro » 2008-03-03 16:24 @725

Hola a todos, tengo un par de proyectos en mente que, con el empujoncito de un atalayero amigo me he decidido a implementar en perl. Por eso estoy tanteando un poco el terreno y me he encontrado con un problema que, aunque a buen seguro es una tontería, no acabo de desentrañar. Estoy probando con un archivo nmea (protocolo de comunicaciones de sistemas nauticos que entre otros usan los GPS) y lo primero que he probado es a quedarme con el primer campo de todas las lineas, que están separadas por comas. Pues bien, con este código:


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

while (<>){
    @sentencia=split ",",$_;
    $codigo=@sentencia[0];
    print "$codigo \n"
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


todo va sobre ruedas, sin embargo con este otro:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# Lista el los códigos distintos de fuente nmea
#!/usr/bin/perl

open $fh, "<", $ARGV[0] or die "No puedo abrir el fichero. Error $!\n";

while (<$fh>) {
    @sentencia=split ",",$_;
    $codigo=@sentencia[0];
    print "$codigo \n";
}

close $fh;
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Obtengo los siguientes errores:

No se pudo conseguir un descriptor de fichero referido a la consola
No se pudo conseguir un descriptor de fichero referido a la consola
./cuenta_codigos.pl: line 6: error de sintaxis cerca de token no esperado `)'
./cuenta_codigos.pl: line 6: `while (<$fh>){'


Sobre todo me preocupa el tema del descriptor de fichero, porque el resto sospecho que es por usar una especificación más moderna de perl que la que uso JJ Merelo en su Perl para apresurados.

Gracias y saludos a todos en el foro, que espero frecuentar tanto para preguntar como para, en un futuro, ayudar.
enhiro
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-03-03 14:36 @650

Publicidad

Notapor enhiro » 2008-03-04 03:29 @187

Me respondo, había algún carácter oculto en el shebang, lo he reescrito y todo ha funcionado.
enhiro
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-03-03 14:36 @650

Notapor Chino » 2008-03-04 07:33 @356

De todas formas, ¿no debería ser?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# Lista el los códigos distintos de fuente nmea
#!/usr/bin/perl

open FH, "<", $ARGV[0] or die "No puedo abrir el fichero. Error $!\n";

while (<FH>) {
    @sentencia=split ",",$_;
    $codigo=$sentencia[0];
    print "$codigo \n";
}

close FH;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


?

($fh por FH y @sentencia[0] por $sentencia[0])
Chino
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-02-26 06:28 @311

Notapor explorer » 2008-03-04 17:14 @760

Chino, se puede usar tanto $fh como FH.

De hecho, hacerlo como $fh tiene alguna ventaja.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados