Kokeilin verrata, että onko sekä $a, että $b muuttujat nollia, mutta ei vain toimi.
Eli eikös sen pitäisi mennä näin:
if($a && $b eq ""){print "kummatkin on nollia"};
Mitä kieltä tää on?
Perl.
Huomasin juuri, että illalla laitoin viestin väärälle osastolle. (mod. korjasi)
Jos en ihan väärässä ole Perlin suhteen, niin siinä on samanlainen oikova &&-operaattori kuin C-kielessä. Silloin testin
($a && $b eq "")
vasen puoli on $a:n testaaminen. Jos $a on nolla, epätosi, tai jokin näiksi evaluoituva muuttuja, ei toista testiä ikinä suoriteta. Ja-lause on kuitenkin epätosi, jos toinen ehto on epätosi.
Testaapa seuraavia:
($a eq "" && $b eq "")
tai
($a eq $b && $a eq "")
Jälkiselittely: En kyllä osaa Perliä yhtään.
mrkebab kirjoitti:
Eli eikös sen pitäisi mennä näin:
if($a && $b eq ""){print "kummatkin on nollia"};
En tunne Perliä niin hyvin, että voisin sanoa aivan varmasti, mutta yleensä tuollainen ehtolause tulkittaisiin siten, että
jos $a on tosi JA $b yhtäkuin "" niin ...
Ehtolause toimii ainakin silloin oikein, kun se kirjoitetaan
if (($a eq "") && ($b eq "")) then ...
Kiitos.
Aihe on jo aika vanha, joten et voi enää vastata siihen.