#!/usr/bin/perl -l use strict; use warnings; use lib sub { pop eq 'Foo.pm' && do { my $mod = join "\n", (map <<".EOM", 'A'..'Z'), "1;\n"; # -------------------- package Foo::$_; sub new { print __PACKAGE__; bless [], shift; } # -------------------- .EOM open my $fh, '<', \$mod or die $!; $fh; }; }; use Foo; Foo::J->new; Foo::A->new; Foo::P->new; Foo::H->new; __END__