[SP-pm] Variavel somente leitura
Eden Cardim
edencardim em gmail.com
Segunda Abril 28 08:55:09 PDT 2008
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
Mais detalhes sobre a lista de discussão SaoPaulo-pm