[Moscow.pm] if $var and $var==

Михаил Монашёв postmaster на softsearch.ru
Пн Дек 23 14:45:54 PST 2013


Здравствуйте, Nick.

Проблема в подходе. Надо таки организовывать работу с переменными,
чтобы условия писались так:

 if($ha->[$i]->{is_main})

Если Вам сложно работать с тремя значениями (0,1 и undef), то
работайте с двумя: 0 и 1 и всегда инициализируйте переменные.

> Сейчас, чтобы не было варнингов (и если отключать их не допускается)
> приходится добавлять во все условия проверку на существование
> переменной. В итоге я имею кучу строчек вида

> $foo = 0 if $ha->[$i]->{is_main} and $ha->[$i]->{is_main}==0;

> И это еще простой пример, $ha бывает очень вложенным и развесистым и это
> бывает не единственная переменная в условии.

> Как можно коротко и красиво переписать этот кусок?
> $ha->[$i]->{is_main} and $ha->[$i]->{is_main}==0

> Можно предполагать, что меня устроит, что отсутствие переменной и её
> равенство undef даст одно и то же в результате проверки.



-- 
С уважением,
 Михаил                          mailto:postmaster на softsearch.ru



Подробная информация о списке рассылки Moscow-pm