>>>>> "Alexei" == Alexei Znamensky <rus...@gmail.com> writes:
Alexei> 2011/1/14 "Flávio R. Lopes" <flavio.lo...@links.inf.br> Alexei> Em 14-01-2011 23:35, Daniel de Oliveira Mantovani escreveu: Alexei> my $backup_nome = "$destino" . "$prefixo" . "$data_backup" . ".tar.bz2"; Alexei> Que desperdício de processamento :P Alexei> my $backup_nome = "$destino$prefixo$data_backup" . '.tar.bz2'; Alexei> mantovani-- Alexei> 2) Mantovani: eu esperava mais de você a essa altura do Alexei> campeonato. Flávio, os parcos milissegundos que você poderia Alexei> eventualmente ganhar na concatenação das strings não são Alexei> NADA comparados com os vários segundos que você irá esperar Alexei> pelo backup. Enquanto isso, seu código ficará 2x mais Alexei> difícil de ler. Sem contar que, na verdade, interpolação é sempre mais lento que concatenação: bjork:~ edenc$ perl -MO=Concise -le'print "$destino" . "$prefixo" . "$data_backup" . q{.tar.bz2};' f <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v:{ ->3 e <@> print vK ->f 3 <0> pushmark s ->4 d <2> concat[t6] sKS/2 ->e b <2> concat[t5] sKS/2 ->c 8 <2> concat[t3] sK/2 ->9 5 <@> stringify[t1] sK/1 ->6 - <0> ex-pushmark s ->4 - <1> ex-rv2sv sK/1 ->5 4 <$> gvsv(*destino) s ->5 7 <@> stringify[t2] sK/1 ->8 - <0> ex-pushmark s ->6 - <1> ex-rv2sv sK/1 ->7 6 <$> gvsv(*prefixo) s ->7 a <@> stringify[t4] sK/1 ->b - <0> ex-pushmark s ->9 - <1> ex-rv2sv sK/1 ->a 9 <$> gvsv(*data_backup) s ->a c <$> const(PV ".tar.bz2") s ->d = 21 opcodes bjork:~ edenc$ perl -MO=Concise -le'print "$destino$prefixo$data_backup" . q{.tar.bz2};' c <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v:{ ->3 b <@> print vK ->c 3 <0> pushmark s ->4 a <2> concat[t4] sK/2 ->b - <1> ex-stringify sK/1 ->9 - <0> ex-pushmark s ->4 8 <2> concat[t2] sKS/2 ->9 6 <2> concat[t1] sK/2 ->7 - <1> ex-rv2sv sK/1 ->5 4 <$> gvsv(*destino) s ->5 - <1> ex-rv2sv sK/1 ->6 5 <$> gvsv(*prefixo) s ->6 - <1> ex-rv2sv sK/1 ->8 7 <$> gvsv(*data_backup) s ->8 9 <$> const(PV ".tar.bz2") s ->a = 17 opcodes Melhor mesmo seria: my $backup_nome = $destino . $prefixo . $data_backup . '.tar.bz2'; bjork:~ edenc$ perl -MO=Concise -le'print $destino . $prefixo . $data_backup . q{.tar.bz2};' c <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v:{ ->3 b <@> print vK ->c 3 <0> pushmark s ->4 a <2> concat[t3] sKS/2 ->b 8 <2> concat[t2] sKS/2 ->9 6 <2> concat[t1] sK/2 ->7 - <1> ex-rv2sv sK/1 ->5 4 <$> gvsv(*destino) s ->5 - <1> ex-rv2sv sK/1 ->6 5 <$> gvsv(*prefixo) s ->6 - <1> ex-rv2sv sK/1 ->8 7 <$> gvsv(*data_backup) s ->8 9 <$> const(PV ".tar.bz2") s ->a = 15 opcodes O único problema com a abordagem inicial do flávio foi interpolar as variáveis individualmente, que pra esse caso em particular, é desnecessário. -- Eden Cardim Software Engineer +55 73 9986-3963 edencardim.com =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer