[SP-pm] Melhor forma de escrever

breno breno at rio.pm.org
Mon Feb 9 10:46:16 PST 2009


2009/2/9 Pedro Anisio <pedroanisio em gmail.com>:
> Vou verificar como fica assim, de qualquer forma ainda gostaria de saber
> como fazer essa substituição usando apenas uma regexp?
>
> my @tmp = split("/",$eachFile);
> $result_data_hash_pointer->{$dir_count_int}->{name_str} = $tmp[-1];
>

Opa,

Vc pode trocar o seu split por uma regexp, como:

my $filename = $1 if $eachFile =~ m{/([^/]+)$};

mas o split me parece mais rápido:

--------------------------------8<------------------------------
              Rate         regexp       split
regexp 149701/s         --          -22%
split     193050/s        29%         --
-------------------------------->8------------------------------

Finalmente, por uma questão de portabilidade, acho melhor fazer algo como:

use File::Spec;
my (undef, undef, $filename) = File::Spec->splitpath($eachFile);

Mas para buscar dentro de diretórios e pegar apenas o nome "final" dos
arquivos, a solução do Nelson me parece a mais elegante e eficiente.


[]s

-b


More information about the SaoPaulo-pm mailing list