|
Тема
|
Проблем с променлива "" == 0
|
|
Автор |
bira_more (бира) |
Публикувано | 25.08.06 23:35 |
|
Код
if($result == 0){
print DebugOUT "$callerid DoMenu got 0 -$result-\n";
}
Резултат
DoMenu got 0 --
Интересното е че само по някога сравнението сработва. Тоест при
$result="";
Много често $result != 0, но макар и рядко се случва да е равно.
Не мога да вдяна защо.
Така де ако все връщаше 0 - ясно, ако винаги е различно от нула пак ясно.
ПП
В същност имам
$result=PlayWaveBuf($wavefile);
Ама PlayWaveBuf($wavefile) - връща 1..9,*,# - а ако е нула - "".
Bеer? Mоre?
| |
Тема
|
Re: Проблем с променлива "" == 0
[re: bira_more]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 28.08.06 12:16 |
|
А това не върши ли работа?
if ("" eq $result)
{
dowhatever;
}
RTFM!
--sdg
| |
Тема
|
Re: Проблем с променлива "" == 0
[re: bira_more]
|
|
Автор | novobranec (Нерегистриран) |
Публикувано | 28.08.06 21:46 |
|
А данеби това което се връща да не просто 0..9 ами да има още някой гаден символ и perl да решава че е стринг и да не ще да му прави numeric comparsion. Пусни го с -w и виж да не плюе няква грешка?
| |
|
Описаната ситуация е за един скрипт, който се извиква от Астериск (софтуерна централа). Съответно има Asterisk Gatewave Interface (AGI). Интерфейса е през STDIN/STDOUT.
Тоест PlayWaveBuf - си комиуникира с Астериск през един клас създаден от добри хора, а отговора задължително минава през мен. И когато имам 49 - $result=1; А ако по някаква причина $result==0 - $result="";
Заобиколих проблема ама се чудя дали е бъг на Perl, или по вероятно е нещо което не трябва да правя :)
Bеer? Mоre?
| |
Тема
|
Re: Проблем с променлива "" == 0
[re: bira_more]
|
|
Автор |
Britt (Aes Sedai :))) |
Публикувано | 26.09.06 19:55 |
|
string-a '' ti se konvertira v 0 :(
tuj kato izpolzvash operacia sravnenie na chislovi danni
| |
Тема
|
Re: Проблем с променлива "" == 0
[re: bira_more]
|
|
Автор | priest (Нерегистриран) |
Публикувано | 08.10.06 03:10 |
|
e to tova e shibaniq Perl, nqma string.empty? uslovnost, da ne govorim, che Perl e naj-malkoto zlo, whatever, spored men si pod nqkakva ligava OS, zatova polzvaj
$|++
i ne pishi gluposti ot sorta na "" a q{} - zatova pone sym syglasen s Damian.
i posledno - ako naistina iskash da znaesh answer na Perl Q: perlmonks.org, a ne tezi neshtastnici tuk.
| |
|
|
|
|