#!/usr/bin/perl use strict; use warnings; use Getopt::Long (); my %opt = ( 'do-stuff' => 0, 'do-more' => 0 ); Getopt::Long::Configure( 'gnu_getopt' ); Getopt::Long::GetOptions( \%opt, 'do-stuff+', 'do-more+' ); my $counter = 1; if ( $opt{ 'do-stuff' } ) { my @stuff_to_do = ( sub { print "some stuff\n"; } ); push @stuff_to_do, sub { print "some more stuff\n"; } if $opt{ 'do-more' }; for my $s ( @stuff_to_do ) { $s->(); } $counter--; } print "$counter\n";