[SP-pm] Variavel somente leitura

Lucas Mateus lucasmateus.oliveira em gmail.com
Segunda Abril 28 09:46:28 PDT 2008


Bom encontrei outra solução simples com Typeglob. Que acham dessa ?
Particularmente acho que não carece de OO para essa solução.

use vars qw/$host/;

*host = \'localhost';

print eval { $host = '10.1.1.1' } ?  "O valor de \$host foi alterado\n" :
"O valor de \$host nao pode ser alterado\n";
print eval { *host = \'10.1.1.1' } ?  "O valor de \$host foi alterado\n" :
"O valor de \$host nao pode ser alterado\n";



2008/4/28 Gabriel Vieira <gabriel.vieira em gmail.com>:

>  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
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080428/1cab34cb/attachment-0001.html 


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