#!./perl -w no strict; BEGIN { if ($ENV{PERL_CORE}) { @INC = '../lib'; chdir 't'; } } use Getopt::Long qw(GetOptionsFromString :config no_ignore_case); my $want_version="2.3501"; die("Getopt::Long version $want_version required--this is only version ". $Getopt::Long::VERSION) unless $Getopt::Long::VERSION ge $want_version; print "1..14\n"; my $args = "-Foo -baR --foo"; @ARGV = qw(foo bar); undef $opt_baR; undef $opt_bar; print (GetOptionsFromString($args, "foo", "Foo=s") ? "" : "not ", "ok 1\n"); print ((defined $opt_foo) ? "" : "not ", "ok 2\n"); print (($opt_foo == 1) ? "" : "not ", "ok 3\n"); print ((defined $opt_Foo) ? "" : "not ", "ok 4\n"); print (($opt_Foo eq "-baR") ? "" : "not ", "ok 5\n"); print (!(defined $opt_baR) ? "" : "not ", "ok 6\n"); print (!(defined $opt_bar) ? "" : "not ", "ok 7\n"); print ("@ARGV" eq "foo bar" ? "" : "not ", "ok 8\n"); $args = "-Foo -baR blech --foo bar"; @ARGV = qw(foo bar); undef $opt_baR; undef $opt_bar; { my $msg = ""; local $SIG{__WARN__} = sub { $msg .= "@_" }; my $ret = GetOptionsFromString($args, "foo", "Foo=s"); print ($ret ? "not " : "ok 9\n"); print ($msg =~ /^GetOptionsFromString: Excess data / ? "" : "$msg\nnot ", "ok 10\n"); } print ("@ARGV" eq "foo bar" ? "" : "not ", "ok 11\n"); $args = "-Foo -baR blech --foo bar"; @ARGV = qw(foo bar); undef $opt_baR; undef $opt_bar; { my $ret; ($ret, $args) = GetOptionsFromString($args, "foo", "Foo=s"); print ($ret ? "" : "not ", "ok 12\n"); print ("@$args" eq "blech bar" ? "" : "@$args\nnot ", "ok 13\n"); } print ("@ARGV" eq "foo bar" ? "" : "not ", "ok 14\n");