[Cascavel-pm] Várias Variações de Variáveis... [WasRe: EXPLICAÇÃO SOBRE: PUSH, SPLIT e FOREACH.]

Luis Motta Campos luismottacampos em yahoo.co.uk
Sexta Junho 22 09:44:23 PDT 2007


On Jun 22, 2007, at 3:40 PM, Nilson Santos Figueiredo Junior wrote:
> On 6/22/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
>> # PERGUNTA: Como saber que Not::My::Problem suporta um determinado
>> método, se ela implementa AUTOLOAD?
>
> A forma correta de se utilizar o AUTOLOAD é também sobrescrever o  
> método can().
>
> Por isso, a sintaxe UNIVERSAL::can($obj, 'method') é considerada não
> recomendada, o correto é utilizar $obj->can('method'). Isso tem um
> problema porque você não pode chamar métodos sobre algo que não seja
> um objeto.
>
> Dessa maneira, a forma correta e segura de checar se um método  
> existe é:
>
>   use Scalar::Util qw/blessed/;
>
>   if (blessed $obj and $obj->can('method')) {
>       $obj->method();
>   }
>
> Se o pacote implementa métodos gerados pro AUTOLOAD mas não
> sobrescrever o método can(), o problema é no pacote.

   Nilson, você está 100% certo, mas o pacote já diz tudo:  
Not::My::Problem: "Não É Meu Problema". Eu tenho apenas de usar, e me  
segurar para dizer palavrões apenas nas línguas que o desenvolvedor  
original do pacote entenda... ;-)

   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