Neden Aşağıdaki kod yok "bir ARRAY referans olarak tanımlanmamış bir değer kullanılamaz":Tutarsız davranışlar
use strict;
use warnings;
no warnings 'uninitialized';
use Data::Dumper;
my $user;
foreach my $enterprise(@{$user->{ENTERPRISES}}) {
print qq{Enterprise:}, $enterprise;
}
print Dumper($user), qq{Done!\n};
:
use strict;
use warnings;
no warnings 'uninitialized';
use Data::Dumper;
my $user;
my @data = @{$user->{ENTERPRISE}}; # Error on this line
print Dumper($user), qq{Done!\n};
, hatayı "Can't use an undefined value as an ARRAY reference
" atın aşağıdaki kodla ederken
şey atmak yok mu, bunun yerine döndürür:
$VAR1 = {
'ENTERPRISES' => []
};
Done!
Hem kusurlu morina var İçlerinde e, ancak sadece bir hata atıyor.
Olası Cevap: Burada doğru yoldaPerl's autovivification?
Am I? Girdiniz için teşekkürler.
Aslında ne yapmaya çalışıyorsunuz? Bunu yapmak için uyarıları kapatmış olmanız, iyi bir fikir olmaması için gerçekten iyi bir uyarı zili olmalıdır. – Sobrique
Sadece Perl'in hatayı bir yere atmak için ne yaptığını anlamaya çalışıyorum, aynı kod için başka bir yerde değil. İlk kod bloğu, hatayı atan ve düzeltilmesi gereken eski koddan, ikinci kod bloğunun ise daha yeni bir kod olması gerektiğinden endişeleniyorum, ama sanırım hata bulmuyormuş gibi görünmüyor geçmişte. – Morrowind789