Вячеслав Матюхин <[email protected]> писал(а) в своём письме Thu, 26 May 2011 16:09:18 +0400:

1. там ref а не isa. это в два раза быстрее но гораздо хуже работает с blessed. 2. там странная логика. _ARRAY([]) вернет undef, нужно использовать _ARRAY0 что не очень логично.

Все уже придумано - http://search.cpan.org/dist/Params-Util/

On May 26, 2011, at 12:01, Анатолий Шарифулин wrote:

Ааааааааа, это новый доклад для Андрея Шитова :)

On Thursday, May 26, 2011, Олег Алексеенков <[email protected]> wrote:
Andrei Fedorov <[email protected]> писал(а) в своём письме Wed, 25 May 2011 22:58:01 +0400:


От: [email protected] [[email protected]] от имени Анатолий Шарифулин [[email protected]]
Отправлено: 25 мая 2011 г. 19:49
Кому: Moscow.pm group
Тема: Re: [Moscow.pm] false



%{$ret||{}} - правильная запись, но лучше писать проще %$ret, зная что в $ret лежит всегда хеш.


Кто сказал, что это правильно?! Такая "правильность" сугубо личное мнение! Если подразумевается, что в $ret могут быть не корректные для обработки данные (undef), то следует также учесть, что $ret может содержаться и скаляр:
Can't use string ("oops") as a HASH ref while "strict refs"

Почему нельзя просто проверить ref переменной $ret на значение HASH, и в зависимости от требований сделать next, return или $ret = {}.


sub is_hash ($) { UNIVERSAL::isa( $_[0], 'HASH' ) }
sub is_hash_size ($) { is_hash( $_[0] ) and %{ $_[0] } }

next unless is_hash_size $ref;
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org


--
С уважением,
Анатолий Шарифулин.
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить