[Madrid-pm] Duda con use strict

Rafael Porres Molina rafael.porres en qindel.com
Vie Abr 29 03:58:54 PDT 2011


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: rafael.porres en qindel.com
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
> Madrid-pm en pm.org
> http://mail.pm.org/mailman/listinfo/madrid-pm


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.pm.org/pipermail/madrid-pm/attachments/20110429/1fd3cb98/attachment.html>


Más información sobre la lista de distribución Madrid-pm