Change (for posterity). Another reason for this, and perhaps the most common reason, is that there is a circular relationship between the modules you use.
Check out Rebat/Store.pm for tips. Your log says that the reboot attempt was aborted. It is possible that Rebat already importing Rebat::Store , and Rebat::Store has some scope check for the package to be downloaded twice.
This code demonstrates the kind of situation that I have in mind:
# m1.pl: use M1; use M1::M2; M1::M2::x(); # M1.pm package M1; use M1::M2; 1; # M1/M2.pm package M1::M2; our $imported = 0; sub import { die "Attempt to reload M1::M2 aborted.\n" if $imported++; } sub x { print "42\n" } 1;
$ perl m1.pl Attempt to reload M1::M2 aborted. BEGIN failed--compilation aborted at m1.pl line 3.
The code will compile (and print 42) if you simply delete the line use M1::M2 in m1.pl In your case, you may not need to explicitly use Rebat::Store in your program.
source share