At a previous workplace, I created a standard python runtime (BootingPython) and now I want to do the same thing for perl, so that any script written conforms to a base level of sanity (pragmas, libraries, available objects). Using Chromatic's Modern::Perl as a guide, I came up with the following boilerplate that gives you the basic idea, allowing you to drop in whatever modules you deem required.

 
#!/usr/bin/env perl
=head1 Standardized Perl Runtime

We import the following pragmas and modules into every
program to create a standardized runtime.

Invoke as the first lines in your program as
     use File::Basename;
     use lib dirname($0) . '/../../lib'; 
     use Boot;

The "use lib" adds the local source code repository which the
"use Boot" then accesses.	

Thanks to Chromatic for Modern::Perl and Damian Conway for Toolkit which
provided the background for this module.

 
=cut
package Boot;
use warnings;
use strict;
use English;
use Carp qw(carp cluck croak confess);
use Fatal qw(:void open close unlink rename);

sub import {
	warnings->import();
	strict->import();
	English->import();
	Carp->import( qw(carp cluck croak confess) );
	Fatal->import( qw(:void open close unlink rename) );
}


#####
# all required perl must end on a positive note
#
return 1;

What modules would you load?


use strict; use Carp; use Data::Dump qw/dump/; #for debugging These are my standards. So with your Boot module, if I'm understanding correctly, it automatically imports all of those modules? -- Cal

Yup. Actually, I would use a setup like look() in PerlInspectors to load Data::Dumper because you don't want to load modules that you don't need in production. -- Patrick

Yup. Actually, I would use a setup like look() in PerlInspectors to load Data::Dumper because you don't want to load modules that you don't need in production. -- Patrick