#!/usr/bin/perl -w # $Header$ # use strict; use Getopt::Long; use File::Basename; use constant EXIT_SUCCESS => 0; use constant EXIT_FAILURE => 1; my $prog = basename $0; my $version = undef; # program version (RCS revision if undefined) # prototypes sub usage(); sub warning(@); sub error(@); sub fatal(@); sub debug(@); sub verbose(@); # unbuffer the output my $oldfh = select(STDERR); $| = 1; select(STDOUT); $| = 1; select($oldfh); # parse options my %opts; Getopt::Long::Configure("require_order"); Getopt::Long::Configure("no_ignore_case"); unless (GetOptions(\%opts, "debug|d", "help|h|?", "verbose|v", "version|V")) { usage(); exit EXIT_FAILURE; } if ($opts{help}) { usage(); exit EXIT_SUCCESS; } my $do_verbose = $opts{verbose}; my $do_debug = $opts{debug}; if ($opts{version}) { unless ($version) { $version = q/$Revision: 0.0 $/; $version =~ s/\$.evision:\s*(\S*)\s*\$$/$1/; } print "$prog $version\n"; exit EXIT_SUCCESS; } unless (@ARGV == 1) { usage(); exit EXIT_FAILURE; } my @lt = localtime(); my $dtag = ($lt[5] + 1900) . ($lt[4] + 1) . "$lt[3]-$lt[2]$lt[1]$lt[0]"; my $TMPDIR = $ENV{TMPDIR} || (-d "/usr/tmp" ? "/usr/tmp" : "/tmp"); <<< insert your code here >>> exit EXIT_SUCCESS; sub warning(@) { print STDERR "$prog: WARNING: @_\n"; } sub error(@) { print STDERR "$prog: ERROR: @_\n"; } sub fatal(@) { error "@_"; exit EXIT_FAILURE; } sub debug(@) { print "DEBUG: " . (caller(0))[0] . ":" . (caller(0))[2] . ": @_\n" if $do_debug; } sub verbose(@) { print "@_\n" if $do_verbose; } sub usage() { print " Usage: $prog [options] $prog $prog supports the following options: --verbose, -v - verbose mode --debug, -d - debug mode --version, -V - display program version --help, -h - show this help screen "; }