# package 'Factory', exports function 'fab' (short for "fabricate") package Factory; use base 'Exporter'; @EXPORT = qw( fab ); use Carp qw(croak); use strict; use warnings; sub fab($$@) { my $class_name = shift; my $ctor_name = shift; $class_name =~ /[^\w:]/ and croak; eval 'require '.$class_name; $class_name->$ctor_name(@_) } 1; #### perl -MFactory -le "my $x = fab 'My::Very::Long::Module', 'new', foo => 42; print $x->get_foo;"