[Rio-pm] fazer string ficar undef
jimmy
jimmy.tty em gmail.com
Terça Janeiro 8 08:30:11 PST 2013
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
Mais detalhes sobre a lista de discussão Rio-pm