Ввод командной строки Perl? - PullRequest
1 голос
/ 14 марта 2011

Как мне настроить скрипт Perl, чтобы ввод в командной строке обозначал, что / где скрипт смотрит (какой каталог)?

пример:

cdm line:>perl text.pl C:/pathtodirectory/

Вскрипт Я получаю доступный $ path путь к: C: / pathtodirectory

Спасибо

Ответы [ 4 ]

4 голосов
/ 14 марта 2011

Вам необходимо использовать массив @ARGV.

Так в вашем text.pl:

my $path = shift(@ARGV);

или

my $path = shift; # @ARGV is the default in the main part of your script

@ARGV - это каждый элемент в командной строке, начиная с индекса 0 ... так что, если у вас есть дополнительные параметры, такие как

text.pl some/path some_other_option

some_other_option будет доступен как $ARGV[1]

Для более сложной обработки пути взгляните на модули Getopt::Std или Getopt::Long (по умолчанию они должны быть включены в Perl.

4 голосов
/ 14 марта 2011

Аргументы командной строки помещаются в массив @ARGV. Вы можете получить их как:

my $path = shift @ARGV;
# or just (shift defaults to using @ARGV outside of any function):
my $path = shift;
1 голос
/ 14 марта 2011

В этом случае вы можете использовать Getopt::Long модуль perl *, задокументированный здесь .

Или вы можете просто проанализировать ARGV:

$ perl -MData::Dumper -e 'print Dumper \@ARGV;' foo bar
1 голос
/ 14 марта 2011

Предопределенная переменная @ARGV содержит аргументы командной строки для скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...