Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache_Perl_Caching_Catalyst - Fatal编程技术网

Perl 从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache

Perl 从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache,perl,caching,catalyst,Perl,Caching,Catalyst,我正在编写一个构建脚本来构建Catalyst应用程序,显然这是一个较旧的应用程序,因为它使用Catalyst::Plugin::Cache::FileCache,而不是支持FileCache选项的较新Catalyst::Plugin::Cache。当通过Makefile.PL进行构建时,我不能使用cpanm,因为Catalyst::Plugin::Cache::FileCache不再可检索:-( 但事实证明,找到这样做的方法对我来说是有问题的 我想我可以对应用程序进行更改以使用Catalyst:

我正在编写一个构建脚本来构建Catalyst应用程序,显然这是一个较旧的应用程序,因为它使用Catalyst::Plugin::Cache::FileCache,而不是支持FileCache选项的较新Catalyst::Plugin::Cache。当通过Makefile.PL进行构建时,我不能使用cpanm,因为Catalyst::Plugin::Cache::FileCache不再可检索:-(

但事实证明,找到这样做的方法对我来说是有问题的

我想我可以对应用程序进行更改以使用Catalyst::Plugin::Cache,但我觉得文档不够清晰,也没有任何简单的方法

当前应用程序使用此

__PACKAGE__->config( name => 'Stats', cache =>{storage=>'./tmp'} );
是不推荐使用的模块的文档

Catalyst::Plugin::Cache的新文档在这里

在我的一个模型中,我有这个

__PACKAGE__->config(
                schema_class => 'Schema::STATS',
                connect_info => [
                                 'dbi:ODBC:DSN=....;driver=...;Server=...;database=...;RB_CONFIG=...;',
                                 'USER',
                                 'PASS',
                                 {limit_dialect=>'GenericSubQ',
                                  on_connect_do => ['set dateformat ymd'],
                                  cursor_class => 'DBIx::Class::Cursor::Cached'
                                 }
                                ],
               );


sub COMPONENT {
  my $self = shift->NEXT::COMPONENT(@_);
  $self->schema->default_resultset_attributes({ cache_object => Cache::FileCache->
       new({ namespace => 'Schema::STATS' }), cache_for=>3600});
  return $self;
}
我现在希望对这个应用程序进行尽可能少的更改,但是有人知道有什么更简单的方法来进行切换到更新的Catalyst::Plugin::Cache所需的两项更改吗

更糟糕的是,我总是可以打包旧的Catalyst::Plugin::Cache::FileCache源代码并安装它,但我希望有一种更简单的方法来使用新的

非常感谢! 珍妮

删除
Plugin::Cache::FileCache
并添加
Plugin::Cache
应该可以让您达到90%的效果。
$c->Cache
将按照您的预期继续工作,它将是一个普通的
Cache::FileCache
对象

__PACKAGE__->config(
  'Plugin::Cache' => {
    backends => {
      default => {
        class => "Cache::FileCache",
        cache_root => "./tmp",
        namespace => "Pick Something",
    }
  }
);