Красивее код от этого не получается.
Вынести в функцию тоже не особо можно, проверка может быть не только на
==, но и на что-то более сложное.
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 mailing list
[email protected] | http://moscow.pm.org