[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