perl模拟有没有办法模拟$?

perl模拟有没有办法模拟$?,perl,unit-testing,mocking,Perl,Unit Testing,Mocking,我正在使用它来测试perl模块。其中一个调用需要检查$?的状态,以获取错误代码并对其进行程序检查 如何模拟$的结果? my $module = Test::MockModule->new('CCUtil'); $mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' }); 测试中的代码如下所示 my $result = CCUtil::cleartool($cmd); if (

我正在使用它来测试perl模块。其中一个调用需要检查
$?
的状态,以获取错误代码并对其进行程序检查

如何模拟
$的结果?

my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' });
测试中的代码如下所示

my $result = CCUtil::cleartool($cmd);

if ( $? != 0 ) {
    confess  "Stream $stream not found( $result) ";
}
api返回字符串并设置$?用于检查状态

正常的方法调用及其返回值使用如下方式更改

my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub {return 'stream not found'});
方法调用现在被模拟。不是--
$?

my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' });