小编Imy*_*lor的帖子

这是Moose Perl的一个很好的替代品吗?

我一直在寻找Moose的替代品(现代面向对象的Perl)因为Moose很慢,我已经看到了几个关于这个问题的帖子关系,我不想那样. 来自同一创作者的示例:https://www.youtube.com/watch?v =ugEry1UWg84&feature = youroutu.be&t = 260

所以我从驼鹿的同一个创造者那里找到了这个替代方案:

https://metacpan.org/pod/MOP#DESCRIPTION MOP - Perl 5的元对象协议

该模块实现了Perl 5的元对象协议,具有最小的开销,并且没有非核心依赖性(最终).

使用UNIVERSAL :: Object:

https://metacpan.org/pod/UNIVERSAL::Object

这是一个很好的选择和替代Moose,有人测试这个软件?

相关文章:https: //www.perlmonks.org/?node_id = 1220917

谢谢.

注意:我忘记提及我知道Moo,鼠标等,也许存在更好的东西?

oop perl moose mop

2
推荐指数
1
解决办法
215
查看次数

perl - 包模块替代模板系统

我构建一个Web服务,而不是使用类似工具包的模板系统我使用这样的包模块:

创建页面网址,根据url之前在路径中创建的独立模块中的每个页面,作为参数传递给每个模块一个唯一的哈希引用,其中包含全局标题,页脚和所有其他数据的变量,每个页面中的数据相同(模块) .

main.pl

use strict;
use warnings;

use Handler;    

my %mvs = (# my variables
     username         => $set{user},
     titleglobal      => '|  web System ',
     ip               => $env->{REMOTE_ADDR}
     .........
     ......... 
   );


for my $module_url (reverse @all_urls_names ) {
  $router->add($module_url, sub {
     $module_url->new(\%mvs);
   })      
} 
Run Code Online (Sandbox Code Playgroud)

在模块页面中,我有一些其他模块加载header.pm,footer.pm但是body.pm直接加载到当前模块页面,在本例中为Handler.pm

Handler.pm

package Handler;

use strict;
use warnings;

use Layout::Head;
use Layout::Footer;


my $layout = sub {

my ($head, $body, $footer) = ( Head::new($mvs), thebody($mvs), Footer::new($mvs) );

return <<THE_HTML;

$head

$body

$footer

THE_HTML
};

 return [ …
Run Code Online (Sandbox Code Playgroud)

perl

-1
推荐指数
1
解决办法
92
查看次数

标签 统计

perl ×2

moose ×1

mop ×1

oop ×1