• Publicidad

Corre bien en Ubuntu y se tira en Win7

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

Corre bien en Ubuntu y se tira en Win7

Notapor tarkano » 2012-08-28 17:11 @757

Bueno la cosa es que tengo un script que me corre buenísimo en Ubuntu y me sale un montón de errores en Win7.

Tengo las mismas versiones de Perl en ambos S.O. Al hacer correr perl -v me sale "This is perl 5, version 14, subversion 2 (v5.14.2)" solo que mi Ubuntu es 32 bits y el Win7 es 64 bits.

En Win7 estoy utilizando ActivePerl.

A continuación se puede ver los errores que me saltan cuando en Win7 le doy perl crear1.pl a mi programa en línea de comando.

Unquoted string "case" may clash with future reserved word at crear1.pl line 30.

Number found where operator expected at crear1.pl line 30, near "case 1"
(Do you need to predeclare case?)
Unquoted string "case" may clash with future reserved word at crear1.pl line 96.

Number found where operator expected at crear1.pl line 96, near "case 2"
(Do you need to predeclare case?)
Unquoted string "case" may clash with future reserved word at crear1.pl line 121
.
Number found where operator expected at crear1.pl line 121, near "case 1"
(Do you need to predeclare case?)
Unquoted string "case" may clash with future reserved word at crear1.pl line 140
.
Number found where operator expected at crear1.pl line 140, near "case 2"
(Do you need to predeclare case?)
"my" variable $enter masks earlier declaration in same scope at crear1.pl line 1
55.
Unquoted string "case" may clash with future reserved word at crear1.pl line 159
.
Number found where operator expected at crear1.pl line 159, near "case 3"
(Do you need to predeclare case?)
Unquoted string "case" may clash with future reserved word at crear1.pl line 212
.
Number found where operator expected at crear1.pl line 212, near "case 4"
(Do you need to predeclare case?)
"my" variable $enter masks earlier declaration in same scope at crear1.pl line 2
20.
Unquoted string "case" may clash with future reserved word at crear1.pl line 224
.
Number found where operator expected at crear1.pl line 224, near "case 5"
(Do you need to predeclare case?)
"my" variable $enter masks earlier declaration in same scope at crear1.pl line 2
32.
Unquoted string "case" may clash with future reserved word at crear1.pl line 235
.
Number found where operator expected at crear1.pl line 235, near "case 6"
(Do you need to predeclare case?)
Unquoted string "case" may clash with future reserved word at crear1.pl line 293
.
Number found where operator expected at crear1.pl line 293, near "case 7"
(Do you need to predeclare case?)
"my" variable $enter masks earlier declaration in same scope at crear1.pl line 3
01.
syntax error at crear1.pl line 29, near ")
{"
syntax error at crear1.pl line 96, near "case "
syntax error at crear1.pl line 120, near ")
{"
syntax error at crear1.pl line 138, near "}"
syntax error at crear1.pl line 157, near "}"
syntax error at crear1.pl line 209, near "}"
syntax error at crear1.pl line 222, near "}"
syntax error at crear1.pl line 234, near "}"
syntax error at crear1.pl line 291, near "}"
syntax error at crear1.pl line 303, near "}"
crear1.pl has too many errors.


Agradecido de antemano...

¡¡Saludos!!
tarkano
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2012-08-22 09:18 @429

Publicidad

Re: Corre bien en Ubuntu y se tira en Win7

Notapor explorer » 2012-08-28 18:54 @829

Bueno, entonces si funciona en Linux pero no en Windows, ¿cuál es el problema? Dejas de usar Windows y ya está.

Los mensajes de errores son muy claros: no sabe lo que es 'case 1'. Desde luego, eso no pertenece a la sintaxis del lenguaje Perl.

¿Seguro que estás ejecutando un programa Perl?

¿Podrías publicar algo del código, alrededor de la línea 30?

¿No estarás usando el infame módulo Switch?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Corre bien en Ubuntu y se tira en Win7

Notapor tarkano » 2012-08-29 08:27 @394

¡Ja,ja,ja...! Lo que pasa es que el usuario final esta en Win7.

Pude corregir algunos errores, era simple escritura. ¡Qué raro que en Ubuntu corra perfecto y en Win7 salten errores como estos, como si fuera otro compilador.

Ahora me sale estos errores...

syntax error at crear1.pl line 29, near ")
{"
syntax error at crear1.pl line 95, near "case "
syntax error at crear1.pl line 119, near ")
{"
syntax error at crear1.pl line 137, near "}"
syntax error at crear1.pl line 155, near "}"
syntax error at crear1.pl line 207, near "}"
syntax error at crear1.pl line 220, near "}"
syntax error at crear1.pl line 232, near "}"
syntax error at crear1.pl line 289, near "}"
syntax error at crear1.pl line 301, near "}"
crear1.pl has too many errors.


Y sí, sí estoy usando Switch... No programo hace mucho tiempo y para este caso me pareció la mejor opción ya que es un simple menú de opciones básicas: alta, baja y modificación para cuentas de un servidor Zimbra. Las conexiones al servidor son sobre SSH.

Claro... el código lo comparto, está medio enredado pero funciona ¡je,je! :D

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. {
  2. use feature "switch";
  3. print "***** MENU *****\n";
  4. print "1.- Crear cuenta\n";
  5. print "2.- Modificar cuenta\n";
  6. print "3.- Ver cuenta\n";
  7. print "4.- Ver bandejas\n";
  8. print "5.- Ver grupos\n";
  9. print "6.- Salir\n";
  10. print "Opcion:";
  11. $bf="@";
  12. $doble_comilla='"';
  13. $bfservidorZimbra=$bf."servidorZimbra";
  14. $entidad=$bf."com";
  15. $comilla="'";
  16. chomp($opcion=<>);
  17. print "\n\n";
  18. switch ($opcion)
  19. {
  20.         case (1) {
  21.         print "Datos CREACION\n";
  22.         print "----------------\n\n";
  23.         print "Cuenta en la forma nombre.apellido:\n";
  24.         chomp($cuenta=<>);
  25.         $cuenta=$cuenta.$bf."com";
  26.         print "\n";
  27.         print "Nombre y Apellido:\n";
  28.         chomp($nombre=<>);
  29.         print "\n";
  30.         print "Cargo:\n";
  31.         chomp($cargo=<>);
  32.         print "\n";
  33.         #print "Nombre a mostrar:\n";
  34.         #chomp($nombre_mostrar=<>);
  35.         #print "\n";
  36.         $nombre_mostrar=$nombre;
  37.         $grupo_mostrar="grupo".$bf."com";
  38.         print "Recopilando lista de grupos .....\n";
  39.         $lista_grupos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov getAccountMembership listas$entidad | grep -v via$doble_comilla";
  40.         system($lista_grupos);
  41.         print "\n";
  42.         print "Grupo de la forma $grupo_mostrar:\n";
  43.         chomp($grupo=<>);
  44.         print "\n";
  45.         print "Tamaño bandeja (bajisimo, bajo, medio, nacional, alto):\n";
  46.         chomp($bandeja=<>);
  47.         print "\n";
  48.         $pass="entidad";
  49.        
  50.         print "Creando cuenta .....\n";
  51.         $crear1 = "ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ca $cuenta password displayName $comilla$nombre_mostrar    $comilla givenName $comilla$nombre$comilla l $comilla$cargo$comilla title $comilla$cargo$comilla street $comilla$cargo$comilla$doble_comilla";
  52. #       print "Crear1: $crear1\n\n";
  53.         system($crear1);
  54.         $crear2 = "ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov adlm $grupo $cuenta$doble_comilla";
  55. #       print "Crear2: $crear2\n\n";
  56.         system($crear2);
  57.         $crear3 = "ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov sac $cuenta $bandeja$doble_comilla";
  58. #       print "Crear3: $crear3\n\n";
  59.         system($crear3);
  60.         $crear4 = "ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov sp $cuenta $pass$doble_comilla";
  61. #       print "Crear4: $crear4\n\n";
  62.         system($crear4);
  63.         $crear5 = "ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta zimbraPasswordMustChange TRUE$doble_comilla";
  64. #       print "Crear5: $crear5\n\n";
  65.         system($crear5);
  66.  
  67. #       $crear = "$doble_comilla/opt/zimbra/bin/zmprov ca $cuenta password displayName $comilla$nombre_mostrar$comilla givenName $comilla$nombre$comilla street $comilla$cargo$comilla adlm $grupo $cuenta$doble_comilla sac $cuenta $bandeja$doble_comilla sp $cuenta $pass ma $cuenta zimbraPasswordMustChange TRUE$doble_comilla";
  68.  
  69.         print"Se creo la cuenta ***** $cuenta\n";
  70.         print"A nombre de *********** $nombre\n";
  71.         print"Con el cargo ********** $cargo\n";
  72.         print"Dentro del grupo ****** $grupo\n";
  73.         print"Con bandeja tipo ****** $bandeja\n";
  74.         print"Y password ************ entidad\n";
  75.         my $enter=<>;
  76.         print "\n\n";
  77.  
  78.         # Logs sobre la creación dirigidos a correosnuevos.log
  79.         $FECHA = `date +%d%b%Y_%H:%M:%S`;
  80.         chomp($FECHA);
  81.         open(LOG,">>correosnuevos.log");
  82.         $bitacora = "$FECHA --> $cuenta, $nombre_mostrar, $cargo.";
  83.         print LOG "$bitacora\n";
  84.         }
  85.         case (2){
  86.         do
  87.         {
  88. aqui1:
  89.         print "***** Modificar Cuenta *****\n";
  90.         print "1.- Nombre\n";
  91.         print "2.- Cargo\n";
  92.         print "3.- Grupo\n";
  93.         print "4.- Activar cuenta\n";
  94.         print "5.- Cerrar cuenta\n";   
  95.         print "6.- Modificar bandeja\n";
  96.         print "7.- Reseteo de Password\n";
  97.         print "8.- Salir\n";
  98.         print "Opcion:";
  99.         chomp($opcion2=<>);
  100.         my $sig="\$";
  101.         my $p2=$sig."2";
  102.         my $p3=$sig."3";
  103.         my $p4=$sig."4";
  104.         my $p5=$sig."5";
  105.         my $p6=$sig."6";
  106.         print "\n\n";
  107.         #use Switch;
  108.         switch ($opcion2)
  109.         {
  110.                 case (1){
  111.                 print "Cuenta a modificar:";
  112.                 chomp($cuenta_mod=<>);
  113.                 print"\n";
  114.                 print"Nombre actual: ";
  115.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mod | grep -e displayName$doble_comilla|awk {'print $p2$doble_comilla $doble_comilla$p3$doble_comilla $doble_comilla$p4$doble_comilla $doble_comilla$p5$doble_comilla $doble_comilla$p6'}";
  116.                 system($cos);
  117.                 print"\n";
  118.                 print"Nombre nuevo: ";
  119.                 chomp($nombre_mod=<>);
  120.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod$entidad givenName $comilla$nombre_mod$comilla displayName $comilla$nombre_mod$comilla$doble_comilla";
  121.                 system($cos);
  122.                 print"\nNombre modificado a :";
  123.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mod | grep -e displayName$doble_comilla|awk {'print $p2$doble_comilla $doble_comilla$p3$doble_comilla $doble_comilla$p4$doble_comilla $doble_comilla$p5$doble_comilla $doble_comilla$p6'}";
  124.                 system($cos);
  125.                 my $enter=<>;
  126.                 print "\n\n";
  127.                 }
  128.                 case (2){
  129.                 print "Cuenta a modificar:";
  130.                 chomp($cuenta_mod=<>);
  131.                 print"\n";
  132.                 print"Cargo actual: ";
  133.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mod | grep title:$doble_comilla|awk {'print $p2$doble_comilla $doble_comilla$p3$doble_comilla $doble_comilla$p4$doble_comilla $doble_comilla$p5$doble_comilla $doble_comilla$p6'}";
  134.                 system($cos);
  135.                 print"\n";
  136.                 print"Cargo nuevo: ";
  137.                 chomp($nombre_mod=<>);
  138.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod$entidad l $comilla$nombre_mod$comilla title $comilla$nombre_mod$comilla$doble_comilla";
  139.                 system($cos);
  140.                 print"\nCargo modificado a :";
  141.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mod | grep title:$doble_comilla|awk {'print $p2$doble_comilla $doble_comilla$p3$doble_comilla $doble_comilla$p4$doble_comilla $doble_comilla$p5$doble_comilla $doble_comilla$p6'}";
  142.                 system($cos);
  143.                 my $enter1=<>;
  144.                 print "\n\n";
  145.                 }
  146.  
  147.                 case (3){
  148.                 do
  149.                 {
  150.                 print"***** Modificar Grupos *****\n";
  151.                 print"1.- Agregar grupo\n";
  152.                 print"2.- Eliminar grupo\n";
  153.                 print"3.- Ver todos los grupos existentes\n";
  154.                 print"4.- Salir\n";
  155.                 print"Opcion:";
  156.                 chomp($opcion3=<>);
  157.                 print "\n\n";
  158.                
  159.                         if($opcion3 eq "1")
  160.                         {
  161.                         print "Cuenta a modificar:";
  162.                         chomp($cuenta_mod=<>);
  163.                         print"\n\nGrupos a los que esta registrado $cuenta_mod:\n";
  164.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gam $cuenta_mod | grep -v via$doble_comilla";
  165.                         system($cos);
  166.                         $cuenta_mod1=$cuenta_mod.$entidad;
  167.                         print"\n\nA que grupo desea subscribir la cuenta $cuenta_mod: ";
  168.                         chomp($grupo_agregar=<>);
  169.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov adlm $grupo_agregar $cuenta_mod1$doble_comilla";
  170.                         system($cos);
  171.                         print"\n\nLa cuenta $cuenta_mod ahora esta subscrita a los siguientes grupos:\n";
  172.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gam $cuenta_mod | grep -v via$doble_comilla";
  173.                         system($cos);
  174.                         }
  175.                         elsif($opcion3 eq "2")
  176.                         {
  177.                         print "Cuenta a modificar:";
  178.                         chomp($cuenta_mod=<>);
  179.                         print"\n\nGrupos a los que esta registrado $cuenta_mod:\n";
  180.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gam $cuenta_mod | grep -v via$doble_comilla";
  181.                         system($cos);
  182.                         $cuenta_mod1=$cuenta_mod.$entidad;
  183.                         print"\n\nQue grupo desea eliminar de la subscripcion a la cuenta $cuenta_mod: ";
  184.                         chomp($grupo_quitar=<>);
  185.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov rdlm $grupo_quitar $cuenta_mod1$doble_comilla";
  186.                         system($cos);
  187.                         print"\n\nLa cuenta $cuenta_mod ahora esta subscrita a los siguientes grupos:\n";
  188.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gam $cuenta_mod | grep -v via$doble_comilla";
  189.                         system($cos);
  190.                         }
  191.                         elsif($opcion3 eq "3")
  192.                         {
  193.                         print "Listado general de grupos:\n";
  194.                         $lista_grupos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov getAccountMembership listas$entidad | grep -v via$doble_comilla";
  195.                         system($lista_grupos);
  196.                         }
  197.                 } while ($opcion3 < "4");
  198.                 }
  199.        
  200.                 case (4){
  201.                 print "Cuenta a activar:";
  202.                 my $cuenta_activar;
  203.                 chomp($cuenta_activar=<>);
  204.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_activar$entidad zimbraAccountStatus active$doble_comilla";
  205.                 system($cos);
  206.                 print "\n\n";
  207.                 print "Cuenta $cuenta_activar esta ahora ACTIVADA";
  208.                 my $enter2=<>;
  209.                 print "\n\n";
  210.                 }
  211.                
  212.                 case (5){
  213.                 print "Cuenta a cerrar:";
  214.                 my $cuenta_cerrar;
  215.                 chomp($cuenta_cerrar=<>);
  216.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_cerrar$entidad zimbraAccountStatus closed$doble_comilla";
  217.                 system($cos);
  218.                 print "\n\n";
  219.                 print "Cuenta $cuenta_cerrar esta ahora CERRADA";
  220.                 my $enter3=<>;
  221.                 print "\n\n";
  222.                 }
  223.                 case (6){
  224.                 print "Cuenta a la que desea modificar bandeja: ";
  225.                 chomp($cuenta_mod_bandeja=<>);
  226.                 print"\n\n";
  227.                 print "Bandejas disponibles:\n";
  228.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gac$doble_comilla";
  229.                 system($cos);
  230.                 print"\n\n";
  231.                 print "Que bandeja desea cambiarle a la cuenta $cuenta_mod_bandeja: ";
  232.                 chomp($bandeja_mod=<>);
  233.                 if($bandeja_mod eq "alto")
  234.                 {
  235.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId b90f78df-e5ba-41fa-8833-33ea069fb6f6 $doble_comilla";
  236.                         system($cos);
  237.                 }
  238.                 elsif($bandeja_mod eq "bajo")
  239.                 {
  240.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId ff866903-c2ac-43da-bb9c-45154abe4a81 $doble_comilla";
  241.                         system($cos);
  242.                 }
  243.                 elsif($bandeja_mod eq "default")
  244.                 {
  245.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId e00428a1-0c00-11d9-836a-000d93afea2a $doble_comilla";
  246.                         system($cos);
  247.                 }
  248.                 elsif($bandeja_mod eq "ejecutivosnal")
  249.                 {
  250.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId 3783b932-b715-4dab-be75-29ba46dd9a10 $doble_comilla";
  251.                         system($cos);
  252.                 }
  253.                 elsif($bandeja_mod eq "medio")
  254.                 {
  255.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId 0bab89d1-0299-482c-b15c-0e8d18b3c6ef $doble_comilla";
  256.                         system($cos);
  257.                 }
  258.                 elsif($bandeja_mod eq "nacional")
  259.                 {
  260.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId 9ffe50bc-f7f4-45f3-9a05-a749fcf6ba89 $doble_comilla";
  261.                         system($cos);
  262.                 }
  263.                 elsif($bandeja_mod eq "nulo")
  264.                 {
  265.                         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ma $cuenta_mod_bandeja$entidad zimbraCOSId c04d3503-ca4d-4384-8ffb-3d76e0d08214 $doble_comilla";
  266.                         system($cos);
  267.                 }              
  268.                 else
  269.                 {
  270.                         print"\n\nNo ingreso una bandeja correcta, intente de nuevo";
  271.                         my $enter=<>;
  272.                         print"\n\n";
  273.                         goto aqui1;
  274.                 }              
  275.                
  276.                 print"\n\nCambio de bandeja realizado";
  277.                 my $enter4=<>;
  278.                 print"\n\n";
  279.                 }
  280.        
  281.                 case (7){
  282.                 print "Centa para reseteo de password:";
  283.                 my $cuenta_reseteo;
  284.                 chomp($cuenta_reseteo=<>);
  285.                 $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov sp $cuenta_reseteo$entidad entidad$doble_comilla";
  286.                 system($cos);
  287.                 print "\n\n";
  288.                 print "Cuenta $cuenta_reseteo con password reseteado a entidad";
  289.                 my $enter5=<>;
  290.                 print "\n\n";
  291.                 }
  292.  
  293.  
  294.  
  295.         }
  296.         } while ($opcion2 < "8");
  297.         }
  298.                
  299.         case (3){
  300.         my $sig="\$";
  301.         my $p2=$sig."2";
  302.         my $p3=$sig."3";
  303.         print "Cuenta a mostrar:";
  304.         my $cuenta_mostrar;
  305.         chomp($cuenta_mostrar=<>);
  306.         print "\n\n";
  307.         print "--- Caracteristicas generales ---\n";
  308.         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mostrar | grep -e displayName: -e title: -e zimbraAccountStatus$doble_comilla";
  309.         system($cos);
  310.         print "\n";
  311.         print "--- Bandeja en MB ---\n";
  312.         print "Cuota Usado\n";
  313.         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gqu localhost|grep $cuenta_mostrar$doble_comilla|awk {'print $doble_comilla$doble_comilla$p2/1048576$doble_comilla   $doble_comilla$p3/1048576'}";
  314.         system($cos);
  315.         print "Tipo de bandeja:";
  316.         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov ga -e $cuenta_mostrar | grep zimbraCOSId$doble_comilla| awk {'print $p2'}";    
  317.         my $ret = qx($cos);
  318.         $ret=~s/\s+//g;
  319.         if($ret eq "b90f78df-e5ba-41fa-8833-33ea069fb6f6")
  320.         {
  321.                 print "alto";
  322.         }
  323.         elsif($ret eq "ff866903-c2ac-43da-bb9c-45154abe4a81")
  324.         {
  325.                 print "bajo";
  326.         }
  327.         elsif($ret eq "e00428a1-0c00-11d9-836a-000d93afea2a")
  328.         {
  329.                 print "default";
  330.         }
  331.         elsif($ret eq "3783b932-b715-4dab-be75-29ba46dd9a10")
  332.         {
  333.                 print "ejecutivosnal";
  334.         }
  335.         elsif($ret eq "0bab89d1-0299-482c-b15c-0e8d18b3c6ef")
  336.         {
  337.                 print "medio";
  338.         }
  339.         elsif($ret eq "9ffe50bc-f7f4-45f3-9a05-a749fcf6ba89")
  340.         {
  341.                 print "nacional";
  342.         }
  343.         else
  344.         {
  345.                 print "nulo";
  346.         }
  347.         print "\n\n";
  348.         print "--- Grupos pertenece ---\n";
  349.         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gam $cuenta_mostrar | grep -v via$doble_comilla";
  350.         system($cos);
  351.         my $enter=<>;
  352.         print "\n\n";
  353.         }
  354.  
  355.         case (4){
  356.         print "Tipos e bandejas:\n";
  357.         $cos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov gac$doble_comilla";
  358.         system($cos);
  359.         my $enter=<>;
  360.         print "\n\n";
  361.         }
  362.  
  363.         case (5){
  364.         print "Grupos:\n";
  365.         $lista_grupos="ssh cur$bfservidorZimbra.com $doble_comilla/opt/zimbra/bin/zmprov getAccountMembership listas$entidad | grep -v via$doble_comilla";
  366.         system($lista_grupos);
  367.         my $enter=<>;
  368.         print "\n\n";
  369.         }
  370. }      
  371. } while ($opcion < "6");
  372. exit 0;
Coloreado en 0.009 segundos, usando GeSHi 1.0.8.4



Gracias por la ayuda... ¡Saludos!
tarkano
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2012-08-22 09:18 @429

Re: Corre bien en Ubuntu y se tira en Win7

Notapor explorer » 2012-08-29 10:57 @498

Yo no veo que estés usando el módulo Switch. Por eso salen los errores, porque tienes desconectado el módulo, en la línea 107.

Lo que tienes activado, en la línea 2, es la característica "switch", que está presente en los Perl >= v5.10, donde las palabras clave no son switch/case, sino given/when.

Más información en perlsyn.

Ahora miro el código, pero sigue siendo gracioso lo de la "$doblecomilla" ...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Corre bien en Ubuntu y se tira en Win7

Notapor tarkano » 2012-08-30 08:26 @393

Bueno, como decía en Linux funciona perfecto cuando le activo usando "use Switch;", pero en Win7 bajo ActivePerl me da error, y viendo por allí vi que hay que poner "use feature "switch";" como dice la línea 2. Pero todavía me dan errores de sintaxis.

syntax error at crear1.pl line 29, near ")
{"
syntax error at crear1.pl line 95, near "case "
syntax error at crear1.pl line 119, near ")
{"
syntax error at crear1.pl line 137, near "}"
syntax error at crear1.pl line 155, near "}"
syntax error at crear1.pl line 207, near "}"
syntax error at crear1.pl line 220, near "}"
syntax error at crear1.pl line 232, near "}"
syntax error at crear1.pl line 289, near "}"
syntax error at crear1.pl line 301, near "}"
crear1.pl has too many errors.


¡Ja,ja!... Sí, la "doble_comilla" es para pasar el comando por ssh.

Probaré con given / when a ver cómo sale...

¡Saludos!
tarkano
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2012-08-22 09:18 @429

Re: Corre bien en Ubuntu y se tira en Win7

Notapor explorer » 2012-08-30 10:25 @476

tarkano escribiste:Bueno, como decía en Linux funciona perfecto cuando le activo usando "use Switch;", pero en Win7 bajo ActivePerl me da error, y viendo por allí vi que hay que poner "use feature "switch";" como dice la línea 2. Pero todavía me dan errores de sintaxis.
Porque son cosas distintas. El primero es un módulo externo, y el segundo es un pragma que activa características nuevas del lenguaje. Y cada uno tiene una sintaxis distinta.

Los mensajes de error indican que, o bien el módulo Switch no está cargado, o bien la versión de Perl es tan nueva que destroza la forma de trabajo de Switch.

tarkano escribiste:¡Ja,ja!... Sí, la "doble_comilla" es para pasar el comando por ssh.
Pues ya te conté como evitarlo...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "Recopilando lista de grupos .....\n";
  2. $lista_grupos = qq(ssh cur$bfservidorZimbra.com "/opt/zimbra/bin/zmprov getAccountMembership listas$entidad | grep -v via");
  3. system($lista_grupos);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Incluso se puede abreviar más...

tarkano escribiste:Probaré con given / when a ver cómo sale...
Yo no probaría mucho... en estos momentos hay una fuerte discusión en el seno de los desarrolladores de Perl v5, de si merece la pena seguir con given(), y dejar solo when(), por lo que una estructura switch/case se debería escribir dentro de un foreach():

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
foreach ($opcion) {
    when (1) {
        ...;
    }
    when (2) {
        ...;
    }
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Ya he visto el código. Calculo que se le podría quitar un 40% :wink:
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
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: Google [Bot] y 1 invitado

cron