Question

Je veux gérer une caractéristique qui me semble presque naturel avec des programmes, et je ne sais pas comment le gérer avec le paquet de Getopt (peu importe Std ot Long).

Je voudrais quelque chose comme:

./perlscript <main option> [some options like -h or --output-file some_name]

Options seront traitées avec - ou -., Mais je veux être en mesure de permettre à l'utilisateur me donner l'option principale et nécessaire sans tirets

est Getopt capable de faire cela, ou dois-je manipuler à la main?

Était-ce utile?

La solution

On dirait que vous parlez non-options - arguments de ligne de commande de base. Ils sont accessibles avec @ARGV. Les modules de Getopt passeront des arguments réguliers jusqu'à votre script sans encombre:

use strict;
use warnings;
use Getopt::Long;

GetOptions (
    'foo'   => \my $foo,
    'bar=s' => \my $bar,
);

my @main_args = @ARGV;

# For example: perl script.pl --foo --bar XXX 1 2 3
# Produces:    foo=1  bar=XXX  main_args=1 2 3
print "foo=$foo  bar=$bar  main_args=@main_args\n";

Autres conseils

Si vous voulez avoir écrit sans -, et il est pas non plus en option (comme vous spécifions), puis par un raisonnement, il est pas du tout, mais un argument . Il vous suffit de vous lire via

my $mainarg = shift

et puis laissez Getopt faire sa chose. (Vous pouvez vérifier $#ARGV après pour vérifier que l'argument principal a été effectivement donné.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top