while ($_ = $ARGV[0]) { SWITCH: { /^(-V|-?-verbose)$/o and do{shift; $verbose=1; ...; last SWITCH}; /^(-v|-?-negate)$/o and do{shift; $negate=1; ...; last SWITCH}; ... /^--?$/o and do{shift; ...; last SWITCH}; } }