Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error al usar switch y given

Estas en el tema de Error al usar switch y given en el foro de Programación General en Foros del Web. Buenas, Cuando intento usar el siguente script me da error, sabéis como puedo solucionarlo? Can't locate feature.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 ...
  #1 (permalink)  
Antiguo 25/06/2010, 09:43
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Error al usar switch y given

Buenas,

Cuando intento usar el siguente script me da error, sabéis como puedo solucionarlo?

Can't locate feature.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./perl_first_webstats.sh line 68.
BEGIN failed--compilation aborted at ./perl_first_webstats.sh line 68.


Código PERL:
Ver original
  1. sub Crear_Nuevas_Stats {
  2.     print colored(" - Selecciona el hosting donde apunta la web: ('q' para salir)",'cyan'),"\n";
  3.     print "\t1) HosAPA01\n";
  4.     print "\t2) HosAPA02\n";
  5.     print "\t3) HosIIS01\n";
  6.     print "\t4) HosIIS02\n";
  7.     print "\t5) HosIIS03\n";
  8.  
  9.     chop ($host = <STDIN>);
  10.     print $host;
  11.     #use feature 'say'; say 'which?'
  12.     use feature qw(switch say);
  13.     given ($host) {
  14.         when ('1') {
  15.             say "Seleccionaste HOSAPA01\n";
  16.         }
  17.         when ('2') {
  18.             say "Seleccionaste HOSAPA02\n";
  19.         }
  20.     }
  21. }

Lo probé de dos formas distintas
use feature 'say'; say 'which?'
use feature qw(switch say);

¿Me falta algun modulo?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 25/06/2010, 16:55
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: Error al usar switch y given

switch y otras 'features' son a partir del Perl v5.10.

El Perl v5.8.8 que estás usando no las tiene.

Ese Perl es de ¡principios del 2006...!


Otra cosa... el código que pones está lleno de print() con "\n", que podrían ser sustituidos por say(), pero eso sí, cuando tengas el Perl v5.10 o superior.

En la calle ya está el Perl v5.12.1 desde el mes pasado.
__________________
JF^D Perl Programming en Español
  #3 (permalink)  
Antiguo 27/06/2010, 23:58
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Error al usar switch y given

Cita:
Iniciado por jferrero Ver Mensaje
switch y otras 'features' son a partir del Perl v5.10.

El Perl v5.8.8 que estás usando no las tiene.

Ese Perl es de ¡principios del 2006...!


Otra cosa... el código que pones está lleno de print() con "\n", que podrían ser sustituidos por say(), pero eso sí, cuando tengas el Perl v5.10 o superior.

En la calle ya está el Perl v5.12.1 desde el mes pasado.
Si fuese mi máquina ya tendría la última versión, créeme ;)
Lo que pasa es que se trata de un servidor antiguo en la empresa, al cual ya tiene unos años y no puedo instalarle una versión superior.

Para la versión que ves, la 5.8.8, no existe una forma alternativa de hacer el switch?

Muchas gracias de antemano
  #4 (permalink)  
Antiguo 28/06/2010, 02:41
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: Error al usar switch y given

Existe el módulo Switch en CPAN: http://search.cpan.org/~rgarcia/Switch-2.16/Switch.pm aunque siempre puedes hacerlo con una batería de if(){}elsif(){}else{}
__________________
JF^D Perl Programming en Español
  #5 (permalink)  
Antiguo 28/06/2010, 06:00
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Error al usar switch y given

Cita:
Iniciado por jferrero Ver Mensaje
Existe el módulo Switch en CPAN: http://search.cpan.org/~rgarcia/Switch-2.16/Switch.pm aunque siempre puedes hacerlo con una batería de if(){}elsif(){}else{}
Muchas gracias lo conseguí de la siguiente forma:

switch ($host) {
case "1" { print "Seleccionaste HOSAPA01\n" }
case "2" { print "Seleccionaste HOSAPA02\n" }
case "3" { print "Seleccionaste HosIIS01\n" }
case "4" { print "Seleccionaste HosIIS02\n" }
case "5" { print "Seleccionaste HosIIS03\n" }
else { print "Selecciona una opcion valida\n" }
}

Etiquetas: switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.