You can also check into Getopt::Std or Getopt::Long, both of these modules give you more control over the command line. here is an example usage:
use Getopt::Long;
Configure( \%Config );
if( $Config{help} ){ Syntax(); exit();}
....Code Goes Here.....
sub Configure {
my( $Config ) = @_;
my $Result = 0;
Getopt::Long::Configure( "prefix_pattern=(-|\/)" );
$Result = GetOptions( $Config,
qw(
del|d=i
length|l=i
path|p=s
first|f=s
reports|r=i
help|?|h
) );
if (! scalar $Config->{line}) { $Config->{line}=132;}
if (! scalar $Config->{reports}) { $Config->{reports}=1;}
if (! exists $Config->{path}) { Syntax(); exit; }
if (! exists $Config->{first}) { Syntax(); exit; }
if (exists $Config->{del}) { Delete(); }
$stream = $Config->{line};
$rptpag = $Config->{reports};
$dir = $Config->{path};
$firstln = $Config->{first};
}
sub Syntax
{
print <<EOT;
ansi.pl
-------
Used for Adding/Removing ANSI printer control characters.
Syntax:
ansi.pl [-l length] [-p path] [-f first] [-r reports] [-d del]
-l..........Defines length of each line in the files. [default
+=132]
-p..........Specifies the directory path to process. [must be
+defined]
(Directory must end with a \\)
-f..........Defines the first line of a report. [must be defin
+ed]
-r..........Set the number of reports per page. [default=1]
-d..........Deletes defined number of characters from beginnin
+g of
each line. [optional]
-h..........This help screen.
*(looks for all *.dat in specified directory, saves original t
+o *.bak)
EOT
}