[SP-pm] Novidade Perl 5.10
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quarta Novembro 21 09:17:14 PST 2007
Solli Honorio wrote:
> Hummm posso tentar entender o quê rola neste código ...
:)
>> __PERL__
>>
> ... bom, aqui você coloca todo o conteúdo de um arquivo na variável,
> pouco recomendável para arquivos grandes, no meu teste o 'return
> <$fh>;' retornava uma mensagem de erro, deixei apenas o <$fh> e
> funcionou, acho que o Damian Conway não aprovaria esta parte do
> código ...
:) sem comentarios...
Desculpe pelo bug do return(), o Otavio me chamou a atencao para isso no
MSN hoje de manha...
>> my $text = do { local $/ = undef; open my $fh, '/path/to/file.txt'
>> or die $!; <$fh>; # nao precisa dizer close($fh) };
>>
>> my %hash;
>>
>> study $text; # opa! uma cerveja para quem souber o que faz isso!
>>
> ... você esta ficando famoso em apostar cerveja e não pagar, será que
> teremos que ir à Europa cobrar ?!?!
:D Solli, eu jah disse que voce eh bem vindo, eu tenho quarto de
hospedes. Vem, traz a tua mulher, a sogra, o cachorro e o gatinho.
> Pelo o quê eu compreendi na documentação, aqui você pede para o
> engine do regex avaliar a possibilidade de criar um índice com os
> matches desejado, que poderá resultar em ganho de performance. Eu não
> conhecia este cara, mas me parece que isto poderia melhorar bastante
> o desempenho de parse dos meus longos arquivos de logs, carregando
> blocos do log e efetuando o parse como vc está mostrando aqui ...
Essa eh a ideia. :)
>> while ( my ( $campo, $que, $eu, $quero ) =
>>
> ... aqui eu acho que ficaria melhor receber num array 'while ( my
> @campos_que_eu_quero = ' ...
Nao, por que o array nao ajuda a documentacao. Eu quero saber o que eh
cada coisa, entao tenho de usar variaveis, ou um hash-slice. Entre
variaveis e um hash-slice assim
my $hash;
while( @{ $hash }{ qw( campos que eu quero ) } ) { # ...
eu achei mais didatico usar as variaveis... :)
>> $text =~ m{ $REGEXP_AQUI }mxs ){
>>
>> # Feio, muito feio! Alguem tem uma ideia melhor?
>>
> ... com certeza, como pode um 'santo' escrever coisas deste tipo ?
> Mas antes me explica uma coisa, o que é '$$_'?
Se eu escrever ${$_} voce compreende que eu estou usando o nome em $_
como o nome de um escalar, e pegando o valor dele? Pois eh, eh isso.
> Uma melhor alternativa seria
>
> for (@campos_que_eu_quero) { push @{ $hash{ $_ } }, $$_ } }
OK, ok, por este map() o Damian Conway ia me xingar... ;)
>> map { push @{ $hash{ $_ } }, $$_ }, qw( campo que eu quero );
>>
>> }
>>
>> undef $text; __END__
Solli, a cerveja (mais uma) eh tua, meu caro...
Se voce tiver mais perguntas, por favor...
E eu vou pagar as minhas dividas mais para o meio do ano, precisa
apenas encontrar outro boteco que tenha guinness, mas nao deve ser assim
tao complicado. Eu acho que a gente nunca foi no Finnegan's, que foi uma
sugestao muito velha do Nelson Ferraz... acho que pode ser a oportunidade.
Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
Mais detalhes sobre a lista de discussão SaoPaulo-pm