use strict; use warnings; my $foo = undef; GetOptions( 'foo:s' => \$foo, ); my $sn = $ARGV[0]; if ($foo and $foo ne undef) { print "foo option used with optional value: $foo \n"; } elsif ($foo) { print "foo option used with no optional value \n"; } else { print "foo option not used at all \n"; }