[Moscow.pm] Отключение warnings 'uninitialized'

Nikolay Mishin mi на ya.ru
Пт Окт 28 07:18:26 PDT 2011


А почему не так


use 5.01;
use Carp;
my %filials;
$filials{foo} = 300;

#$filials{boo} = 200;
my $ref_hash = \%filials;
my @test     = qw/a 2 d 300 ffd 22/;

#test_var($ref_hash);

for $test_val (@test) {
    $filials{foo} = $test_val;
    test_var( \%filials );
    say $test_val;
}

sub test_var {
    my $r = shift;
    croak("Value ***$r->{foo}*** is not defined or not number")
      if !defined $r->{foo} || $r->{foo} != ~/^\d+$/;

    if ( $r->{foo} > 100 ) {
        say '$r->{foo} > 100';
    }

}

и тогда , если будет ошибка. ты не будешь ломать головку - и где из моих 1000 строк кода она может быть?

28.10.2011, 17:26, "Alexandr Gomoliako" <zzz на zzz.org.ua>:
> On 10/28/11, Alexandr Gomoliako <zzz на zzz.org.ua> wrote:
>
>>  вместо
>>      if ($r->{foo} =~ /^\d+$/ && $r->{foo} > 100)
>
> Я тут наверное даже мало написал, уже забыл:
>      if (defined $r->{foo} && $r->{foo} =~ /^\d+$/ && $r->{foo} > 100)
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

--
Nikolay Mishin


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