我正在使用Test :: More,并且我的助手功能需要一段时间才能运行。我需要在几个测试脚本中使用它。我想保存运行此函数的结果,以便所有脚本都可以访问该状态。对于每个测试,调用函数的结果都不会改变。
我创建了一个像这样的模块:package Helper;
our $_global_state = under;
sub helper {
if ( !defined( $_global_state)) {
#insert magic here to set the _global_state
print STDERR "Inside magic\n";
}
return $_global_state;
}
return 1;
但是,如果我从多个测试脚本中调用此函数,则每次都会重做“魔术”。我试图避免这种情况。
可以使用以下方法解决:
使用Storable
:
use strict;
use warnings;
use Storable;
our $state_file = 'global.state';
sub helper {
# Check to see if file last modified in 10 minutes.
if (-e $state_file && -M $state_file < 1/24/6) {
return retrieve($state_file);
}
#insert magic here to set the _global_state
my $global_state = {'a'..'d'};
store $global_state, $state_file;
return $global_state;
}
use Data::Dump;
dd helper();
1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句