El problema no parece venir del uso del pragma strict, sino de que te 
faltan/sobran (según se quiera ver) paréntesis en la primera condición:

> if ("$f_dir" ne "folks") and ("$f_dir" ne "test") {

que deberías escribir

if ( ("$f_dir" ne "folks") and ("$f_dir" ne "test") ) {

o ya que estamos, sin esos paréntesis de más que no sirven para nada y esos 
entrecomillados de las variables que tampoco hacen nada ahora mismo, porque no 
parece tener mucho sentido interpolarlas :)

if ($f_dir ne "folks" and $f_dir ne "test") {

Este comentario sirve como regla general para el trozo de código que nos has 
mandado. 

Saludetes,

Rafa

-- 
Rafael Porres Molina
Consultoría y Proyectos
Qindel Formación y Servicios S.L.

Móvil: (+34) 678650609
e-mail: [email protected]
Dirección: c/Julián Camarillo 29, Edificio D2, 4ºIzda, 28037 Madrid, SPAIN / 
ESPAÑA





El 29/04/2011, a las 12:35, Francisco Rivas escribió:

> Hola muy buen dia,
> 
> Estoy escribiendo el script para modificar el XML (si el mismo del otro hilo) 
> y ya casi esta listo todo lo que quiero pero tengo una duda debido a que 
> estoy recibiendo estos mensajes :
> 
> $ perl modify_xml.pl 
> syntax error at modify_xml.pl line 72, near ") and"
> Global symbol "$f_dir" requires explicit package name at modify_xml.pl line 
> 74.
> Global symbol "$f_dir" requires explicit package name at modify_xml.pl line 
> 74.
> syntax error at modify_xml.pl line 85, near "}"
> Execution of modify_xml.pl aborted due to compilation errors.
> 
> Por estas lineas :
> 
> foreach my $f_dir(@dirs) {
>   if ("$f_dir" ne "folks") and ("$f_dir" ne "test") {
>     find(sub { push (@files_dir, $_) if -f},"$f_dir");
>     my $zip_filename = substr("$f_dir",2,length("$f_dir"));  #<- linea 74
>     print "Creating ".$zip_filename."\n";
>     my $obj = Archive::Zip->new();
>     foreach my $f(@files_dir) {
>       my $obj->addFile($f);
>     }
>     if ($obj->writeToFileNamed($zip_filename.'zip') != AZ_OK()) {  # write to 
> disk
>       print "Error in archive creation!";
>     } else {
>       print "Archive created successfully!";
>     }
>   }
> }
> 
> Lei en [1] que cuando usas strict debes poner entre comillas cuando quiero 
> usar una variable como string. No estoy del todo seguro si lo estoy haciendo 
> bien, alguno me podria aclarar donde si es que estoy usando mal las reglas de 
> strict?. Estoy dejandome ?algo?
> 
> Muchas gracias de antemano muy buen dia!
> _______________________________________________
> Madrid-pm mailing list
> [email protected]
> http://mail.pm.org/mailman/listinfo/madrid-pm


_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm

Responder a