[Moscow.pm] Странности и неожиданности Perl
Vladimir V. Perepelitsa
inthrax на gmail.com
Чт Фев 28 22:54:58 PST 2008
Хотите скалярный контекст в списковом? укажите это явно
В случае использования как значения хеша чужих функций я использую
a => scalar aa,
сам я при написании кода всегда использую return без аргументов в void
функциях/методах а также в приведенном случае, с return if.
возврат из функции как return if будет более правильным, нежели return undef.
(return undef будет true в списковом контексте)
более правильно будет сделать так:
sub _ {
croak "Not a scalar context for ..." if wantarray;
...
return if $bad;
return 'something';
}
On Thursday 28 February 2008 13:53, Andrew Fedorov wrote:
> use Data::Dumper;
>
> sub aa {
> my $bad_day = 1;
> return if $bad_day;
> return 'bla-bla-bla';
> }
>
> my $test = {
> a => aa,
> b => 1,
> };
>
> print Dumper($test);
>
> =====================
> $VAR1 = {
> '1' => undef,
> 'a' => 'b'
> };
> =====================
> Очень многие используют return if/unless для выхода и вот к чему это может
> привести. Особенно следует учитывать при использовании чужих библиотек :)
> ______________________________________________________________________
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm
--
Vladimir Perepelitsa aka Mons Anderson
<inthrax на gmail.com> / #99779956
Подробная информация о списке рассылки Moscow-pm