Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

makeperl

by Rich36 (Chaplain)
on Oct 17, 2001 at 21:47 UTC ( #119486=sourcecode: print w/ replies, xml ) Need Help??

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 &");

Comment on makeperl
Download Code
Re: makeperl
by NodeReaper (Curate) on Oct 17, 2001 at 21:51 UTC

    Reason: (scain) empty node; author requests delete

    For more information on this node visit: this

(jeffa) Re: makeperl
by jeffa (Chancellor) 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)

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://119486]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2014-12-25 18:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (161 votes), past polls