想要基本上创建一个perl-module:
我的问题是:这里有许多处理Web请求的不同方法(解码查询字符串),就像(两个值得注意的是:)
$query->{‘somearg’}
或类似我应该如何编写模块,以便与不同的前端一起使用?
思考类似的事情:
pakage MyJSONProducer::Plack; # for Plack based apps
use MyJSONProducer; # My module
my $prod = MyJSONProducer->new();
my $args = decode_plack_request_args($env); #make a hashref from args...
my $json = $prod->run($args); # call with args…
package MyJSONProducer::CGI; # for CGI based ones
use MyJSONProducer;
my $prod = MyJSONProducer->new();
my $args = decode_cgi_args($query); #make a hashref from args...
my $json = $prod->run($args); # call with args...
依旧......
但有点我觉得这不是一个很好的解决方案......
这里有一些推荐的方法如何处理这种情况?任何CPAN模块我应该学习什么?
答案 0 :(得分:2)
只需编写MyJSONProducer :: Plack。然后,如果要在CGI环境中部署应用程序,可以使用Plack::Handler::CGI之类的内容。
这是普拉克和PSGI的观点。如果您将代码编写到PSGI规范中,那么您可以将其部署到任何地方。
答案 1 :(得分:1)
你无能为力。不过,你可以使它更加用户友好。
假设您的模块名为Kobame。然后你将创建一个名为:
的其他几个模块每个都将处理入门的细节,然后将调用您的核心Kobame模块。 Kobame模块必须采用通用的perl数据结构,不应引用Web模块的任何内容。