Unable to parse command line long options

command-line-arguments, getopt-long, perl

Solution

I believe the `-s` command line option you include on your she-bang line is biting you. According to the perlrun documentation, the `-s` command line option:

enables rudimentary switch parsing for switches on the command line after the program name but before any filename arguments (or before an argument of --).

If you remove that option, things should work as you expect. I would also recommend removing the `-w` since you are already using the `use warnings` directive (the `use warnings` directive is much more fully featured, essentially replacing the `-w` option).

So, long story short, make your first line:

#!/usr/bin/perl

Problem

``` #!/usr/bin/perl -sw use strict; use warnings; use Getopt::Long; my $remote = 0; my $test = 0; GetOptions ('remote' => \$remote, 'test' => \$test); print "$remote:$test\n"; ``` perl test.pl --remote --test The above prints "0:0". I am new to Perl so I have been unable to determine why this isn't working. I also ran the "Simple Options" section from http://perldoc.perl.org/Getopt/Long.html#Simple-options and that didn't produce anything either.

Original source