El 29/04/2011, a las 13:46, Francisco Rivas escribió:

> Ahora que lo veo con mas calma lo comprendo. Es que me fije en la primera 
> linea que comentas pero luego cuando leo desde el "ya que estamos..." y veo 
> la linea que me comentas lo comprendi. 
> 
> Rafael muchisimas gracias! :D

No problemo!

Un comentario adicional. Es posible q encuentres el módulo File::Find::Rule

http://search.cpan.org/~rclamp/File-Find-Rule-0.32/

bastante más fácil de utilizar que File::Find, que tiene un interfaz un tanto 
particular.

Por otra parte, creo que algunas de tus dudas de sintaxis encontrarán buenas 
respuestas en este libro (q te puedes descargar gratis):

http://www.onyxneon.com/books/modern_perl/index.html

No es largo, y cada una de sus páginas contiene enseñanzas realmente 
interesantes. A mi me hubiera encantado encontrarlo antes :)

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

> 
> 2011/4/29 Rafael Porres Molina <[email protected]>
> ¿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
> 
> _______________________________________________
> 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