$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 mailing list
[email protected] | http://moscow.pm.org

Ответить