use Getopt::Long; use Data::Dumper; { local @ARGV = ("configs", "--force=all", "--out", "out.txt", "-v", "-a"); GetOptions(\my %opts, "force=s", "out=s", "v", "a"); print Dumper \%opts; print Dumper \@ARGV; }