use warnings; use strict; use Getopt::Long qw(GetOptions); my %opt = (logdir => 'foo'); GetOptions(\%opt, qw(logdir=s)) or die; print "logdir=$opt{logdir}\n"; __END__ Run it like: myprog.pl -logdir bar Output: logdir=bar