我有以下代码:
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
BEGIN {
my $supported = undef;
*compute_factorial = sub { if (eval { require bignum; bignum->import(); 1;}) {
my $num = shift;
my $factorial = 1;
foreach my $num (1..$num) {
$factorial *= $num;
}
return $factorial;
} else {
undef;
} };
};
my $f = compute_factorial(25);
say $f;
我只是在测试一些东西,而不是真正的生产代码......我bignum
的机器上确实有编译指示(完全可以使用 加载use
),我想知道为什么require
不能正常工作(我得到的是指数数字而不是“大数字”)在这种情况下?
谢谢,