http://www.perlmonks.org?node_id=119486
Category: Utility Scripts
Author/Contact Info Rich Reuter Rich36
Description: A very simple script, but one that I use all the time. I find myself writing a lot of small Perl scripts and I find this to be a convenient method for getting started, saving a little time, and imposing a standard coding structure.

makeperl creates a new file, writes a standard format/template for a Perl script, changes the permissions to be executable, and opens the file in an editor.

I also use this a lot for when I'm trying out code examples from books, online, etc.

This has only been successfully tested on *nix, but should work elsewhere.

#!/usr/bin/perl -w

# makeperl
# Script to create a perl script with the permissions of 755 
# and open an editor

use strict;

if ((@ARGV != 1) || (-e $ARGV[0])) {
    die qq(Please specify the name of one new file to create\nmakeperl
+ <file_name>);
}

# Set up variables
my $file = $ARGV[0];
my $date = localtime();
my $user = (getpwuid($<))[6];


# Remove the time from the date
$date =~ s/\d{2}\:\d{2}:\d{2}\s//g;

open(FILE, ">$file");
print FILE <<EOT;
#!/usr/bin/perl -w


######################################################################
+###########
#
# $file 
# $date
# $user
#
# <Description of file>
#
######################################################################
+###########

#######################################################
# Setup variables and packages
#######################################################
use strict;




#######################################################
# MAIN
#######################################################




#######################################################
# Subroutines
#######################################################

######################################################################
+###########
# subName()
# <Description of Subroutine>
#
######################################################################
+###########


EOT
close FILE;
chmod (0755, $file);

# I usually open an emacs/xemacs editor for my file
# But you can configure this to whatever editor you use
exec("xemacs $file &");
#exec("vi $file &");
Replies are listed 'Best First'.
(jeffa) Re: makeperl
by jeffa (Bishop) on Oct 18, 2001 at 20:20 UTC
    Very nice. You could improve the usability of this script by adding more command line options (try Getopt::Std or Getopt::Long) that will allow the user to customize the resulting template.

    Maybe you don't need the comments, maybe you want to add -T, maybe you actually want to leave out 'use strict'.

    i developed a similar script many moons ago and i find myself always deleting sections and changing this and that. Some simple command line switches would take care of that problem. Just a suggestion :)

    Good job on constructive laziness! :D
    jeffa

      Thanks. Using different options occured to me as well. Something like...
      -c CGI Script (add "use CGI" + -T)
      -d Database (add "use DBI" or whatever database module)
      -m add mail module
      etc.

      I'll post the new version when I get a chance to make some revisions.

      Rich36

Re: makeperl
by demerphq (Chancellor) on Oct 20, 2001 at 19:02 UTC
    You might want to take a look at what happens if you do
    h2xs -Xn Class::Module
    Not quite the same thing but usefull tool.

    Yves
    --
    You are not ready to use symrefs unless you already know why they are bad. -- tadmc (CLPM)