Mam fragment w tej postaci:W Perlu, czy istnieje zgrabny sposób ręcznie przekonwertować undef na 0?
my $a = $some_href->{$code}{'A'}; # a number or undef
my $b = $some_href->{$code}{'B'}; # a number or undef
$a = 0 unless defined($a);
$b = 0 unless defined($b);
my $total = $a + $b;
rzeczywistość jest jeszcze bardziej niechlujny, ponieważ więcej niż dwie zmienne są zainteresowane.
Co naprawdę chcę napisać to:
my $total = $some_href->{$code}{'A'} + $some_href->{$code}{'B'};
i nie undef prawidłowo ocenić na 0, ale pojawia się te ostrzeżenia w niemal każdym biegu:
Use of uninitialized value in addition (+) at Stats.pm line 192.
Jaki jest najlepszy sposób, aby te wiadomości odejdą?
NB: Używam ścisłego "i" stosuj ostrzeżenia ", jeśli jest to istotne.
Jest to istotne. W takim przypadku włączono ostrzeżenie, na które nie masz wpływu. – jrockway