use strict; use warnings; use Math::Factor::XS qw/factors/; use List::Util qw/sum/; for (2 .. 10000) { print "$_ is perfect\n" if (sum(factors($_),0) == $_ - 1); }