为了在 Perl 中扩展我的“grep”模拟器,我添加了对一个-r
开关的支持,该开关可以在子目录中进行递归搜索。现在命令行调用看起来像这样:
perl pgrep.pl -r <directory> <expression>
-r
和参数都是可选的(directory
目录默认为'.')。到目前为止,我只需检查第一个参数是否是-r
,如果是则设置适当的标志,然后使用移位操作扫描其余两个参数。-r
如果出现在参数列表的末尾或更糟 - 在目录名称和搜索表达式之间,这显然会是一个问题。
一种解决方法是简单地从 @ARGV 数组中删除该-r
项目,这样我就可以简单地将剩余的参数移入,但我无法找到一种方法来做到这一点,而不会在我的奇数位置获得“undef”大批。欢迎您使用任何建议或不同的策略。