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

Анатолий Гришаев 0body0 на rambler.ru
Пн Дек 23 07:48:13 PST 2013


$foo = 0 if grep defined $_ && $_ == 0, $ha->[$i]{is_main};  # :-)

grep можно вкладывать :)

23.12.2013 19:09, Nick Knutov пишет:
> Сейчас, чтобы не было варнингов (и если отключать их не допускается)
> приходится добавлять во все условия проверку на существование
> переменной. В итоге я имею кучу строчек вида
>
> $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 даст одно и то же в результате проверки.
>



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