[Rio-pm] fazer string ficar undef

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


na duvida analise o retorno com Data::Dumper

ex:

use Data::Dumper;
my $a= <>;
print Dumper $a;
Em 08/01/2013 15:10, "Aureliano Guedes" <guedes_1000 em hotmail.com> escreveu:

>  Renato, o motivo tambem não sei, mas varia de plataforma a plataforma,
> pode ser CR, LF, e CRLF.
>
> Thiago, é apenas curiosidade.
>
> Mas valeu a todos.
>
> ------------------------------
> From: renato.cron em gmail.com
> Date: Tue, 8 Jan 2013 15:05:10 -0200
> To: rio-pm em pm.org
> Subject: Re: [Rio-pm] fazer string ficar undef
>
> o <> faz a leitura e retorna undef apenas se for o final do arquivo,
> geralmente os arquivos de texto terminam com uma linha só com "\n", não
> sei porque motivo!
>
> 2013/1/8 Aureliano Guedes <guedes_1000 em hotmail.com>
>
>  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
>
>
>
>
> --
> Saravá,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron <http://twitter.com/#%21/renato_cron>
>
> _______________________________________________ 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/bf206cd0/attachment.html>


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