perl dancer – 如何向方法处理器子程序传递额外的参数?

前端之家收集整理的这篇文章主要介绍了perl dancer – 如何向方法处理器子程序传递额外的参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法将其他变量传递给方法处理程序子例程?我通常不喜欢在子程序范围之外使用全局变量.我有数据库连接和类实例,我希望处理程序可以访问,而不使用全局变量.使用调试到控制台,对于每个处理程序调用,@ _看起来都是空的.
#!/usr/bin/perl

use strict;

use Dancer;
use Data::Dumper;

set('logger' => 'console');

my $somevar = SomeClass->new();

get('/' => sub{
  debug(Dumper(@_));
  debug($somevar);
  return('hello world');
});

解决方法

一种方法是使用Dancer提供的vars哈希.这里我使用before hook来设置数据库句柄:
use strict;
use warnings;
use Dancer;
use DBI;

hook 'before' => sub {
    var dbh => DBI->connect_cached(...);
};

get '/' => sub { 
    my $qry = vars->{dbh}->prepare("sql");
    ...
    return "Something,something,query results";
};

猜你在找的Perl相关文章