问题是我有n个命令行参数。总会有至少2,但是最大数目是无限制的。第一个参数指定操作模式,第二个参数指定要处理的文件。第3到第n个是对文件执行的操作(可能为空,因为用户可能只想清除文件(如果您仅向其传递2个参数就可以完成此操作))。

我正在研究Perl中可用于数组的方法,但是我不确定从项目3到数组末尾的“Perlish”迭代方式是什么。

我见过的一些选项:

  • 从数组的末尾弹出,直到找到一个不以“-”开头的元素(因为文件路径不是以“-”开头,尽管我认为它可能会出现问题)。
  • 移动数组两次以删除前两个元素。无论剩下什么,只要大小至少为1,就可以进行迭代。

  • 我喜欢第二个选项,但我不知道它是否是Perlish。而且由于我正在尝试学习Perl,所以我不妨学习在Perl中做事的正确方法。

    最佳答案

    除了使用Sinan编写的Getopt模块之外,我可能还会使用:

    my ( $operation, $file, @things ) = @ARGV;
    

    然后您可以:
    for my $thing_to_do ( @things ) {
    ...
    }
    

    10-06 14:26
    查看更多