Perl Program Template
Jump to navigation
Jump to search
A Perl Program Template is a software program template that is a Perl program.
- …
- Counter-Example(s):
- See: Perl Code.
References
#!/usr/bin/perl
########################################
my $PROGRAM = 'templateProgram.pl' ;
my $AUTHOR = 'Gabor Melli' ;
my $VERSION = '1.0.0' ;
my $VERSIONDATE = "2015.02.13" ;
########################################
# system settings and libraries
use strict ;
use warnings ;
use utf8 ;
use Getopt::Long ;
use lib "." ;
# Subroutine templates
sub trim($) ;
# Globals
my $debug = 0 ;
my $printHeader = 0 ;
my $logFH ;
# set from input params if at all
my $inFile ;
my $outFile ;
my $logFile ;
# PROCESS INPUT PARAMETERS
my $help ;
my $verbose = 0 ;
die "ERROR in parameter processing.\n" if not GetOptions (
'f|inFile:s' => \$inFile,
'outFile:s' => \$outFile,
'logFile:s' => \$logFile,
'debug:i' => \$debug,
'verbose+' => \$verbose,
'h|help' => \$help,
# ...
) ;
# compose the USAGE reprot
my $USAGE ;
$USAGE .= "USAGE:\n" ;
$USAGE .= " PARAMS: [--inFile=] [--outFile=] [--logFile=] [--debug=] [--verbose] [--help]\n" ;
$USAGE .= " Example: ./$PROGRAM -inFile=master.txt -outFile=tok.dat -dictFile=syn.dat -d=1\n" ;
$USAGE .= " Program info: Version: $VERSION($VERSIONDATE) Contact: $AUTHOR\n" ;
# begin the debugging
$debug=$debug+$verbose ;
# if the user asked for --help
if (defined($help)) {
print $USAGE ;
exit ;
}
########################################
# create the handle to the log file
my $isSTDOUTlog = 0 ;
# Test the --logFile parameter
if (defined $logFile){
die("\nERROR: --logFile must be a file not a directory. [$logFile]\n") if -d $logFile ;
open $logFH, ">", $logFile or die "ERROR: when opening the log file [$logFile]:\n $!" ;
} else {
$logFH = *STDOUT ;
$isSTDOUTlog++ ;
$logFile="-" ;
}
if ($debug>0) {
print $logFH "DEBUG: Debugging enabled and set to level: $debug.\n" ;
}
#######################################
# create the handle to the input file
my $isSTDIN = 0 ;
my $inputFH ;
# Test the --inFile parameter
if (defined $inFile){
die("\nERROR: --inFile must be a file not a directory. [$inFile]\n") if -d $inFile ;
open $inputFH, “<", $inFile or die "ERROR: when opening the input file [$inFile]:\n $!" ;
} else {
$inputFH = *STDIN ;
$isSTDIN++ ;
$inFile="-" ;
}
########################################
# create the handle to the output file
my $isSTDOUT = 0 ;
my $outputFH ;
# Test the --outFile parameter
if (defined $outFile){
die("\nERROR: --outFile must be a file not a directory. [$outFile]\n") if -d $outFile ;
open $outputFH, ">", $outFile or die "ERROR: when opening the output file [$outFile]:\n $!" ;
} else {
$outputFH = *STDOUT ;
$isSTDOUT++ ;
$outFile="-" ;
}
#############################################################
# For each text string perform the requested transformations
my $lineNum=0 ;
while (<$inputFH>) {
$lineNum++ ;
my $line = trim($_) ;
print $logFH "DEBUG: raw[$line] (minus possible newline)\n" if $debug>=2 ;
next if length($_) <= 0 ;
}
sub trim($) {
my $string = shift;
$string =~ s/^\s+|\s+$//g ;
return $string;
}
#################################################################################
##################################### THE END ###################################
#################################################################################