[Cascavel-pm] Envio de imagem jpeg via sendmail sem módulos
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quarta Abril 25 07:21:45 PDT 2007
On Apr 25, 2007, at 3:53 PM, André Garcia Carneiro wrote:
>> On Apr 25, 2007, at 3:32 PM, André Garcia Carneiro wrote:
>>> Pode explicar o q significa +shift por favor?
>>
>> São dois tokens. O shift, se você não conhece, é função do core do
>> perl (perldoc -f shift); O "+" na frente torna o conjunto uma
>> expressão "matemática", o que faz o Perl "sacar" que a melhor saída
>> para o parsing da expressão é considerar "shift" uma função, e não o
>> nome de um pacote (como bareword).
>
> Sim, conheço shift... :-p
>
> Deixa eu ver se eu entendi. Isso "+shift" já "dá uma idéia" para o
> Perl que 'shift' é uma função, assim ele não
> precisa fazer verificações "inúteis", é isso?
>
> Se é assim, é recomendável que se faça isso para toda chamada de
> função ????
Tem umas que o parser "engole" e sabe do que você está falando...
mas tem outras que não. Por exemplo:
package Example;
sub new {
return bless {}, shift;
}
Faz a coisa certa.
Mas se você tentar
our %hash = ( a => 1, b => 2, c => 3 );
sub char_to_num {
return $hash{shift};
}
Vai ganhar "undef" o tempo todo. Neste caso, o parser faz
"burrada" e precisa de um empurrãozinho para funcionar:
sub char_to_num {
return $hash{+shift};
}
Entendeu?
>> Funciona como "shift()" ou "shift @_", mas é muuuuito mais
>> econômico... ;-)
>
> Por quê é mais econômico? Tem algum lugar onde eu possa ler sobre
> isso? Fiquei curioso ... :D
Todas as vezes que você digita "+shift" ao invés de "shift()",
você economizou um caracter ;-)
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 Cascavel-pm