在Perl 6中如何在命令行传递任意列表参数?

8
我知道如何将单个和命名参数传递到Perl 6脚本的命令行,但是如何传递任意数量的参数呢?
例如,
script.pl6 fileA.txt fileB.txt

然后使用以下命令运行:

script.pl6 fileC.txt fileD.txt .. fileZ.txt
1个回答

12

原始的命令行参数可以在@*ARGS中找到。

你也可以使用一个带有 slurpy 参数的子程序&MAIN,例如:

sub MAIN(*@args) { ... }

请注意,这将拒绝传递标志的调用。如果您也想捕获它们,请使用

sub MAIN(*@args, *%flags) { ... }

有没有办法在 : 中使用 slurpy?这就是我想要的。 - CyberSkull
1
第二个代码块中,在 *%flags 之前缺少逗号。 - CIAvash
@CIAvash:谢谢;@CyberSkull:你所说的“slurpy with :”是什么意思? - Christoph
@CIAvash 我的意思是使用命名参数,就像命令行中的“--list1”一样。 - CyberSkull
2
@CyberSkull,正如@Christoph所提到的,您可以使用%flags(当您将*%flags用作MAIN参数时)来访问它们。因此,例如,“--list1”可以通过%flags<list1>访问。您还可以将其作为MAIN参数特别添加,如下所示:sub MAIN(:$list1,*@args,*%flags){...} - CIAvash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接