[SP-pm] Variavel somente leitura

Gabriel Vieira gabriel.vieira em gmail.com
Segunda Abril 28 09:43:35 PDT 2008


 print 'After readwrite: ' . readonly . "\n";

On Mon, Apr 28, 2008 at 12:55 PM, Eden Cardim <edencardim em gmail.com> wrote:

> 2008/4/28 Lucas Mateus <lucasmateus.oliveira em gmail.com>:
> > Achei esse barato aki, o que acham ?
> >
> >  my $host = 'localhost';
> >
> >  Internals::SvREADONLY($host => 1);  # lock $host
> >  print eval { $host = '10.1.1.1' } ?  "O valor de \$host foi alterado\n"
> :
> > "O valor de \$host nao pode ser alterado\n";
> >
> >  Internals::SvREADONLY($host => 0);  # unlock $host
> >  print eval { $host = '10.1.1.1' } ?  "O valor de \$host foi alterado\n"
> :
> > "O valor de \$host nao pode ser alterado\n";
>
> Que tal usar lvalues?
>
>    use warnings;
>    use strict;
>
>    my $foo = 'bar';
>
>    sub readwrite :lvalue { $foo }
>
>    sub readonly { $foo }
>
>    print 'Initial value: ' . readonly . "\n";
>    eval q{ readonly = 'baz' };
>    warn $@ if $@;
>    print 'After readonly: ' . readonly . "\n";
>    readwrite = 'baz';
>    print 'After readwrite: ' . readwrite . "\n";
>
> Inclusive os erros de escrita proibida são pegos em tempo de compilação :)
>
> --
> edenc.vox.com
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Gabriel Vieira
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080428/0375c5ed/attachment.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm