加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中解析命令行开关?

发布时间:2020-12-15 23:30:51 所属栏目:大数据 来源:网络整理
导读:为了在Perl中扩展我的 “grep” emulator,我增加了对-r开关的支持,它可以在子目录中进行递归搜索.现在命令行调用看起来像这样: perl pgrep.pl -r directory expression -r和目录参数都是可选的(目录默认为’.’).到目前为止,我只是检查第一个参数是否为-r,
为了在Perl中扩展我的 “grep” emulator,我增加了对-r开关的支持,它可以在子目录中进行递归搜索.现在命令行调用看起来像这样:

perl pgrep.pl -r <directory> <expression>

-r和目录参数都是可选的(目录默认为’.’).到目前为止,我只是检查第一个参数是否为-r,如果是,则设置相应的标志,并使用shift操作扫描其余两个参数.如果-r出现在参数列表的末尾或者更糟糕的是 – 在目录名称和搜索表达式之间,这显然会是一个问题.

一个解决方法是简单地从@ARGV数组中删除-r项目,这样我就可以简单地移入其余的参数,但我无法找到一种方法来做到这一点而不会在奇数位置获得’undef’在我的阵列中.欢迎您使用任何建议或不同的策略.

解决方法

您应该使用 GetOpt::Long.这将按照描述执行您需要的所有操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读