veja bem undef é um estado e não um valor.
uma variavel não inicializada tem o seu valor indefinido. entretanto existem algumas convenções: $ perl -MData::Dumper -e 'my $x; print Dumper($x),"x=>",$x,"\nstring x=> ($x)","\n+0 =>",$x+0,"\n"; print "x is false" unless ($x)' $VAR1 = undef; x=> string x=> () +0 =>0 x is false convenção: undef, ao tentar stringificar, vira string vazia. undef, no contexto numerico, vira zero undef, no contexto booleando, é falso perceba que vc pode tornar uma variavel indefinida novamente fazendo undef $variavel; POIS undef é um operador unario, como - no caso de -1 e SEMPRE retorna valor undefined. por isso vc pode fazer $variavel = undef; e outras operações. 2013/1/8 Aureliano Guedes <guedes_1...@hotmail.com> > Ola monges, > > Quanto tempo, ne?! A paz reinava aqui sem minha ignorância. hahaha > > Desejando de cara um ótimo ano a todos venho trazer mais uma simples > dúvida. > > Eu tenho o seguinte: > > chomp (my $b = <>); > $b = undef if $b eq ''; > my $c = 'c'; > my $a = defined($b) ? $b : $c; > print $a, "\n"; > > > Funciona perfeitamente, mas o que não entendo é porque se eu remover a > segunda linha ($b = undef if $b eq '';). > Ja não funciona. > > Se eu inserir algum valor em $b $a devera assumir o valor de $b, mas se > não inserir devera assumir o valor de $c. > > Se eu fizer apenas: > chomp (my $b = <>); > my $c = 'c'; > my $a = defined($b) ? $b : $c; > print $a, "\n"; > > Não da certo. > > > Sim, eu sei que as formas abaixo funcionam, mas é apenas uma questão de > estudo mesmo. > > chomp (my $b = <>); > my $c = 'c'; > my $a = $b ? $b : $c; > print $a, "\n"; > > > chomp (my $b = <>); > my $c = 'c'; > my $a = $b || $c; > print $a, "\n"; > > daria certo, mas minha intenção é estudo apenas > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm