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

我如何模拟Perl的内置backticks操作符?

发布时间:2020-12-15 22:00:55 所属栏目:大数据 来源:网络整理
导读:我想单元测试一个使用反引号的我的Perl程序.有没有办法模拟反引号,以便它们执行与执行外部命令不同的内容? Another question shows what I need,但在Ruby.不幸的是,我不能选择在这个项目中使用Ruby,也不想避免反驳. 解决方法 您可以*模拟内置的 readpipe 功
我想单元测试一个使用反引号的我的Perl程序.有没有办法模拟反引号,以便它们执行与执行外部命令不同的内容?

Another question shows what I need,但在Ruby.不幸的是,我不能选择在这个项目中使用Ruby,也不想避免反驳.

解决方法

您可以*模拟内置的 readpipe功能.当Perl遇到反引号或qx表达式时,Perl会调用你的mock函数.
BEGIN {
  *CORE::GLOBAL::readpipe = &;mock_readpipe
};

sub mock_readpipe {
  wantarray ? ("foon") : "foon";
}

print readpipe("ls -R");
print `ls -R`;
print qx(ls -R);
$perl mock-readpipe.pl
foo
foo
foo

* – 如果您有perl version 5.8.9或更高版本.

(编辑:李大同)

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

    推荐文章
      热点阅读