<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Valeu gente, agora entendi.<br><br>Mas então a única forma de tornar uma string undef quando não há nada no STDIN é fazendo: $b = undef if $b eq ''; ????<br><br>Ou tem outra forma??<br><br>my $b = <> || undef; não funcionaria, certo??<br><br><div><div id="SkyDrivePlaceholder"></div>> Date: Tue, 8 Jan 2013 14:30:11 -0200<br>> From: jimmy.tty@gmail.com<br>> To: rio-pm@pm.org<br>> Subject: Re: [Rio-pm] fazer string ficar undef<br>> <br>> Saudações Aureliano,<br>> <br>> On Tue, Jan 08, 2013 at 03:43:10PM +0000, Aureliano Guedes wrote:<br>> [...]<br>> > Eu tenho o seguinte:<br>> > <br>> > chomp (my $b = <>);<br>> > $b = undef if $b eq '';<br>> > my $c = 'c';<br>> > my $a = defined($b) ? $b : $c;<br>> > print $a, "\n";<br>> > <br>> > Funciona perfeitamente, mas o que não entendo é porque se eu remover a segunda<br>> > linha ($b = undef if $b eq '';).<br>> > Ja não funciona.<br>> Assim como o Renato Santos já mencionou, uma string vazia é "defined",<br>> logo, se fizermos:<br>> <br>>     my $c = 'c'; <br>>     my $b = ''; <br>>     my $a = defined $b ? $b : $c; <br>>     print '<'.$a.'>';<br>> <br>> o resultado será "<>"<br>> <br>> Para o problema que você mencionou, o que parece querer testar de fato é<br>> se há algum valor na string diferente de "undef" e de vazio:<br>> <br>>     my $c = 'c'; <br>>     my $b = ''; <br>>     my $a = defined $b && $b ne '' ? $b : $c;<br>>     print '<'.$a.'>';<br>> <br>> em outras palavras, qualquer coisa diferente de undef e vazio seriam<br>> atribuídos a "$a".<br>> <br>> -- <br>> "Não manejo bem as palavras<br>> Mas manipulo bem as strings."<br>> ------------------------------<br>> http://tecnoveneno.blogspot.com<br>> _______________________________________________<br>> Rio-pm mailing list<br>> Rio-pm@pm.org<br>> http://mail.pm.org/mailman/listinfo/rio-pm<br></div>                                          </div></body>
</html>