To zachowanie nie jest specyficzne dla Math :: BigInt, ale następujący kod jest przerwany w ostatniej linii.Wywołanie metody nie dostarcza kontekstu skalarnego ... wydaje się dziwne
use strict;
use warnings;
use Math::BigInt;
my $a = Math::BigInt->bone;
my $b = Math::BigInt->bone;
print ($a+$b)->bfac;
Kod ten jednak działa dobrze:
use strict;
use warnings;
use Math::BigInt;
my $a = Math::BigInt->bone;
my $b = Math::BigInt->bone;
print scalar($a+$b)->bfac;
Moje pytanie brzmi ... dlaczego nie skalarne kontekst narzuca się automatycznie na lewym argumentem „->”? AFAIK, "->" działa tylko na skalarach i (wyjątkowo) na typeglobach.
To ma sens. Powinienem uważniej przeczytać ostrzeżenie ... Dzięki. –