【发布时间】:2012-05-08 07:12:08
【问题描述】:
我正在尝试编写持久/缓存脚本。代码看起来像这样:
...
Memoize('process_fille');
print process_file($ARGV[0]);
...
sub process_file{
my $filename = shift;
my ($a, $b, $c) = extract_values_from_file($filename);
if (exists $my_hash{$a}{$b}{$c}){
return $my_hash{$a}{$b}{$c};
}
return $default;
}
将在循环中从 shell 脚本中调用,如下所示
value=`perl my_script.pl`;
有没有一种方法可以让我调用这个脚本来保持它的状态。从一个电话到另一个电话。让我们假设初始化 '%my_hash' 和调用 extract_values_from_file 都是昂贵的操作。
谢谢
【问题讨论】:
-
IMO 这取决于脚本的使用频率。如果它只是不时运行,请使用序列化技术。如果它不止于此——例如,它正在服务于某种关键的、可能是实时的相对目的——让它成为一个持久的后台服务器/使用 IPC。