Perl命令行输入?

发布于 2024-10-21 22:03:01 字数 221 浏览 1 评论 0原文

如何设置 Perl 脚本,以便命令行上的输入表示脚本查看的内容/位置(哪个目录)?

示例:

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

在脚本中,我得到一个可验证的 $path 设置为:C:/pathtodirectory

谢谢

How do I setup a Perl script so that the input on the command line denotes what/where the script looks at (what directory)?

example:

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

In the script I get a veriable $path to be set to: C:/pathtodirectory

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

分开我的手 2024-10-28 22:03:01

您需要使用@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< /code> 将作为 $ARGV[1] 提供。

有关更高级的路径处理,请查看 Getopt::StdGetopt::Long code> 模块(默认情况下它们应该包含在 Perl 中。

You need to use the @ARGV array.

So in your text.pl:

my $path = shift(@ARGV);

or

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

@ARGV is each item on the command line starting from index 0 ... so if you had more options like

text.pl some/path some_other_option

some_other_option would be available as $ARGV[1]

For more advanced path processing take a look at the Getopt::Std or Getopt::Long modules (they should be included with Perl by default.

第几種人 2024-10-28 22:03:01

命令行参数放置在数组@ARGV 中。你可以像这样得到它们:

my $path = shift @ARGV;
# or just (shift defaults to using @ARGV outside of any function):
my $path = shift;

Command line arguments are placed in the array @ARGV. You can get them like:

my $path = shift @ARGV;
# or just (shift defaults to using @ARGV outside of any function):
my $path = shift;
極樂鬼 2024-10-28 22:03:01

@ARGV 预定义变量包含脚本的命令行参数。

The @ARGV predefined variable contains the command-line arguments to the script.

眼藏柔 2024-10-28 22:03:01

在这种情况下,您可以使用 Perl 的 Getopt::Long 模块记录在此处。

或者你可以简单地解析 ARGV

$ perl -MData::Dumper -e 'print Dumper \@ARGV;' foo bar

In this case you can use perl's Getopt::Long module documented here.

Or you can simply parse ARGV:

$ perl -MData::Dumper -e 'print Dumper \@ARGV;' foo bar
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文