use strict; use warnings; use IO::File; my @units = qw(foo bar); foreach my $unit(@units){ my $source = do{ my $fh = IO::File->new; $fh->open("$unit.pm", "r") or die $!; read($fh, my $buffer, -s $fh); $fh->close; "package $unit;\n".$buffer; }; eval "$source"; $unit->foo(); # FQN: Der Name der Package ist das erste Argument! }