[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