pra q vc quer fazer isso? if e while entendem '' e undef como false Em 08/01/2013 15:03, "Aureliano Guedes" <[email protected]> escreveu:
> Valeu gente, agora entendi. > > Mas então a única forma de tornar uma string undef quando não há nada no > STDIN é fazendo: $b = undef if $b eq ''; ???? > > Ou tem outra forma?? > > my $b = <> || undef; não funcionaria, certo?? > > > Date: Tue, 8 Jan 2013 14:30:11 -0200 > > From: [email protected] > > To: [email protected] > > Subject: Re: [Rio-pm] fazer string ficar undef > > > > Saudações Aureliano, > > > > On Tue, Jan 08, 2013 at 03:43:10PM +0000, Aureliano Guedes wrote: > > [...] > > > 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. > > Assim como o Renato Santos já mencionou, uma string vazia é "defined", > > logo, se fizermos: > > > > my $c = 'c'; > > my $b = ''; > > my $a = defined $b ? $b : $c; > > print '<'.$a.'>'; > > > > o resultado será "<>" > > > > Para o problema que você mencionou, o que parece querer testar de fato é > > se há algum valor na string diferente de "undef" e de vazio: > > > > my $c = 'c'; > > my $b = ''; > > my $a = defined $b && $b ne '' ? $b : $c; > > print '<'.$a.'>'; > > > > em outras palavras, qualquer coisa diferente de undef e vazio seriam > > atribuídos a "$a". > > > > -- > > "Não manejo bem as palavras > > Mas manipulo bem as strings." > > ------------------------------ > > http://tecnoveneno.blogspot.com > > _______________________________________________ > > Rio-pm mailing list > > [email protected] > > http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/rio-pm >
_______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
