package MissingModules; my %missing = (); BEGIN { push( @INC, sub { my ( $code, $mod ) = @_; $mod =~ s#/#::#g; $mod =~ s/\.pm$//; $missing{ $mod }++; open( my $fh, '+>', undef ); print {$fh} "package $mod;\n1;\n"; seek( $fh, 0, 0 ); return $fh; } ); } INIT { if ( my @list = keys %missing ) { warn "Please install CPAN modules: cpan -i @list\n"; exit; } } 1; #### #!/usr/bin/perl use MissingModules; use CGI; use Foo; use Bar; use Baz; 1; #### % perl test.pl Please install CPAN modules: cpan -i Bar Baz Foo