- Проверка: определена ли переменная?, breeze, 14:49 , 07-Авг-11 (1)
Ответ уже сам нашел…A simple Boolean test will not distinguish among undef, zero, the empty string, and "0" , which are all equally false. Если кому интересно, решение работает: sub isDef { return (defined shift) ? 'true' : 'false'; }
- Проверка: определена ли переменная?, XoRe, 23:50 , 07-Авг-11 (2)
Для ключей хеша ещё есть проверка на if(exists $hash{key})
- Проверка: определена ли переменная?, cirus, 01:21 , 10-Авг-11 (3)
- Проверка: определена ли переменная?, anonymous, 19:40 , 14-Авг-11 (4)
> Натуральный быдлокод.А как правильно?
- Проверка: определена ли переменная?, cirus, 02:11 , 03-Сен-11 (5)
Правильно не делать еще одну безполезную функцию. Есть defined и его достаточно.
- Проверка: определена ли переменная?, serg_56, 16:59 , 15-Сен-11 (6)
> Правильно не делать еще одну безполезную функцию. Есть defined и его достаточно.товарищ просто проверял как работает if, а if от 0 дает false, потому и получилось как получилось.
- Проверка: определена ли переменная?, cirus, 00:06 , 17-Сен-11 (7)
Извиняюсь. Действительно не понял авторского замысла. Но все равно пара замечаний.Во-первых, совершенно не понятно из чего исходил автор, когда давал имя функции isDef. Проверяет она на истина/ложь, а не на определено/не_определено. Эта неточность влечет неверные выводы в дальнейших рассуждениях. Во-вторых, Perl мы любим за краткость: sub isTrue { shift ? 'true' : 'false' }
|