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

Nick Knutov mail на knutov.com
Пн Дек 23 07:55:14 PST 2013


Красивее код от этого не получается.
Вынести в функцию тоже не особо можно, проверка может быть не только на
==, но и на что-то более сложное.

23.12.2013 21:48, Анатолий Гришаев пишет:
> $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 даст одно и то же в результате проверки.
>>
> 

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130


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