如何设置Perl脚本,以便命令行上的输入表示脚本查看的位置(目录)?
示例:
cdm line:>perl text.pl C:/pathtodirectory/
在脚本中,我获得了一个可验证的$ path路径: C:/ pathtodirectory
由于
答案 0 :(得分:4)
命令行参数放在数组@ARGV中。你可以得到它们:
my $path = shift @ARGV;
# or just (shift defaults to using @ARGV outside of any function):
my $path = shift;
答案 1 :(得分:4)
您需要使用@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中。
答案 2 :(得分:1)
@ARGV
预定义变量包含脚本的命令行参数。
答案 3 :(得分:1)
在这种情况下,您可以使用perl的Getopt::Long
模块documented here。
或者您可以简单地解析ARGV
:
$ perl -MData::Dumper -e 'print Dumper \@ARGV;' foo bar