#!/usr/bin/perl -w use strict; use Switch; if (!@ARGV) { die "Usage: args.pl [args]\n -s : An argument that accepts no value\n -l : An argument that accepts a value\n --verbose= : A long format argument that accepts a value\n"; } while (my $a = shift) { switch ($a) { case '-s' { print 'arg -s passed'; } case '-l' { if ($a = shift) { print 'arg -l passed with value '.$a; } else { print "No value passed to -l!\n"; exit; } } case /--verbose=.*/ { print 'arg --verbose passed with value '.substr($a, index($a, '=') + 1); } } print "\n"; }