perl - 命令行参数变量@ARGV

标签 perl arguments argv

我的任务是将脚本从 Perl 转换为 PowerShell。

我读到了 Perl 的命令行参数:@ARGV。据我所知,在脚本执行时,传递的任何参数都将被这个特殊的数组变量捕获。我们可以读取 @ARGV 并使用以下方法为标量变量赋值:

($var1,$var2) = @ARGV;

我需要了解下面的语句在做什么:

($var1,$var2,@ARGV) = @ARGV;

在我的脚本中,我对 @ARGV 中的值有一个 if 条件,并且基于 @ARGV 值,相应的子例程是接到电话。

根据我的理解,如果@ARGV中有两个以上的值,那么括号语句左侧将更改ARGV的值/用于重写@ARGV还有剩余值吗?

最佳答案

它从 @ARGV 中删除前两个参数并将它们放入 $var1 和 $var2 中。

就我个人而言,我会把它写成:

$var1 = shift @ARGV;
$var2 = shift @ARGV;

但这只是品味问题。

关于perl - 命令行参数变量@ARGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32864209/

相关文章:

Perl 将 sub 标记为 Public 或 Private

c - C 函数中未指定数量的参数 - void foo()

c - 用 "argv[2]"替换一个字符

将 argv 的每个值与字符串连接起来

perl - 检测 HTTP::Response 中的重复 header

windows - Perl 不接收命令行参数?

file - Bash:逐行传递文件中的参数

javascript - ES6解构函数参数-命名根对象

c - 如何将 Printf 之类的格式字符串与 argv 一起使用

perl - 向Perl应用程序添加动态代码的最佳方法