[Madrid-pm] Duda con use strict
Francisco Rivas
franciscojrivash en gmail.com
Vie Abr 29 04:24:03 PDT 2011
Gracias!
Algo curioso, esto funciona :
foreach my $f_dir(@dirs) {
if ($f_dir ne "folks" && $f_dir ne "test") {
find(sub { push (@files_dir, $_) if -f},$f_dir);
my $zip_filename = substr $f_dir,2,length($f_dir);
print "Creating ".$zip_filename.".zip\n";
my $obj = Archive::Zip->new();
foreach my $f(@files_dir) {
$obj->addFile($f_dir.'/'.$f);
}
if ($obj->writeToFileNamed($zip_filename.'.zip') != AZ_OK) { # write to
disk
print "Error in archive creation!";
} else {
print "Archive created successfully!";
}
}
last;
}
No comprendo, pero esta resuelto como lo necesito.
Muy buen dia.
2011/4/29 Rafael Porres Molina <rafael.porres at qindel.com>
> 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 at 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.plline 74.
> Global symbol "$f_dir" requires explicit package name at modify_xml.plline 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 at pm.org
> http://mail.pm.org/mailman/listinfo/madrid-pm
>
>
>
>
>
> _______________________________________________
> Madrid-pm mailing list
> Madrid-pm at pm.org
> http://mail.pm.org/mailman/listinfo/madrid-pm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/madrid-pm/attachments/20110429/849826c2/attachment-0001.html>
Más información sobre la lista de distribución Madrid-pm