The problem looks to be with your call to new(). When you don't have new() defined in the current name space, and you call
new class, @args
Perl guesses that class::new() is defined and tries that. But you havn't given it a class name, you've given it a variable. You might try
$class->new( @args )
I've had some luck with that in the past. By the way, 'pointy' is the preferable way to invoke methods on objects and classes, as it eliminates the uncertainty of who's method is being called. Also, make sure that $class has been
required, and actually is compiled.