[Rio-pm] fazer string ficar undef

Tiago Peczenyj tiago.peczenyj em gmail.com
Terça Janeiro 8 09:05:12 PST 2013


pra q vc quer fazer isso?

if e while entendem '' e undef como false
Em 08/01/2013 15:03, "Aureliano Guedes" <guedes_1000 em hotmail.com> 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: jimmy.tty em gmail.com
> > To: rio-pm em pm.org
> > 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
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20130108/23ce0afd/attachment.html>


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