¿Qué es lo que no comprendes? :) -- 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 13:24, Francisco Rivas escribió: > 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 <[email protected]> > 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 > > _______________________________________________ > 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
