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

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


у меня тут на днях лог получился >10Gb из-за uninitialized value,
а все из-за того, что не делал проверок на входные параметры функции, правда, я, когда писал этот модуль даже тесты с документацией не делал, но это как раз проинт его переписать

28.10.2011, 18:23, "Nikolay Mishin" <mi на ya.ru>:
> сорри (исправленный вариант)
>
> use 5.01;
> use Carp;
> my %filials;
> $filials{foo} = 300;
> my $ref_hash = \%filials;
> my @test     = qw/444 33a 2 d 300 ffd 22/;
>
> 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';
>     }
>
> }
>
> 28.10.2011, 18:18, "Nikolay Mishin" <mi на ya.ru>:
>
>>  А почему не так
>>
>>  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 mailing list
>>  moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Nikolay Mishin
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

--
Nikolay Mishin


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