Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- ##########
- # A couple of cool subroutines for parsing command line arguments.
- # It's been done a thousand, thousand times but this is the first time I did it right.
- ##########
- use Data::Dumper;
- use strict;
- use warnings;
- sub splitArg {
- my $str = shift;
- return split(/=/, $str);
- }
- sub parseArgs {
- my %args = ();
- my $lastarg = "";
- foreach my $arg (@ARGV) {
- if (substr($arg, 0, 2) eq "--") {
- my $temp = substr($arg, 2);
- if ($arg !~ m/=/) {
- $lastarg = $temp;
- } else {
- my ($k, $v) = splitArg($temp);
- $args{$k} = $v;
- }
- }
- elsif (substr($arg, 0, 1) eq "-") {
- my $temp = substr($arg, 1);
- if ($arg !~ m/=/) {
- $lastarg = $temp;
- } else {
- my ($k, $v) = splitArg($temp);
- $args{$k} = $v;
- }
- }
- else {
- if (length($lastarg) > 0) {
- $args{$lastarg} = $arg;
- $lastarg = "";
- }
- }
- }
- return %args;
- }
- my %args = parseArgs();
- print Dumper(%args);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement