perl 'require' в начальном блоке

У меня есть следующий код:

#!/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не работает так, как должно быть (В этом случае я получаю экспоненциальные числа, а не "большие числа" )?

Спасибо,

5
задан snoofkin 25 July 2012 в 17:22
поделиться