En Perl, se puede obtener una lista de los archivos que coinciden con un patrón:¿Cómo puedo usar el valor de una variable como un patrón glob en Perl?
my @list = <*.txt>;
print "@list";
Ahora, me gustaría pasar el patrón como una variable (porque se pasa a una función). Pero eso no funciona:
sub ProcessFiles {
my ($pattern) = @_;
my @list = <$pattern>;
print "@list";
}
readline() on unopened filehandle at ...
¿Alguna sugerencia?
Nunca, nunca, nunca, nunca hacer esto . El operador 'glob' es la respuesta correcta. – friedo
Tienes razón, glob es una respuesta mucho mejor. Gracias por la corrección. ¿Por qué "nunca, nunca, nunca, nunca" hacer esto? –
Robert, debes evitar string 'eval' siempre que sea posible; quién sabe qué datos nefastos podrían terminar en '$ pattern', especialmente si eso se deriva de la entrada del usuario. Incluso si no es malicioso, las cosas raras que encuentran su camino en un "eval" pueden ser la causa de muchos errores molestos. – friedo