in reply to "Can't locate object method 'new' but the package IS 'used'

Do your modules use each other (circularity)? I've seen similar things happen when you attempt to use methods prior to them being defined in the compile phase. I get a similar error with:

Foo.pm

package Foo; use Bar; sub new { return bless {}, shift; } 1;

Bar.pm:

package Bar; use Foo; sub new { return bless {}, shift; } my $foo = Foo->new(); 1;

script.pl:

#!/usr/bin/perl use strict; use warnings; use Foo;