gpt4 book ai didi

perl - 是否可以在不执行其语句的情况下使用或要求 Perl 脚本?

转载 作者:行者123 更新时间:2023-11-28 19:40:12 24 4
gpt4 key购买 nike

我需要对一些旧的脚本进行单元测试,脚本基本上都是以下形式:

#!/usr/bin/perl

# Main code
foo();
bar();

# subs
sub foo {

}
sub bar {

}

如果我尝试在单元测试中“要求”此代码,代码的主要部分将运行,因为我希望能够单独测试“foo”。

有什么方法可以在不将 foo,bar 移动到单独的 .pm 文件的情况下做到这一点?

最佳答案

假设您没有安全问题,将其包装在 sub { ... } 中并对其进行评估:

use File::Slurp "read_file";
eval "package Script; sub {" . read_file("script") . "}";

is(Script::foo(), "foo");

(注意 eval 不在脚本将关闭的任何词法范围内)。

关于perl - 是否可以在不执行其语句的情况下使用或要求 Perl 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/232475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com