我想开始为perl6准备一些perl5代码.特别是,我喜欢声明我的变量应该是什么类型的想法.perl6定义Bool,Int,Array,Hash,Num,Complex,Pair和Str.所以我本质上想要现在做相当于C预处理器#define Int /**/.如果它会检查数据类型会更好,但我可以没有它.
简单?硬?不可能?
小智 7
您必须编写一个可以解析Perl 5的解析器.除非您的代码非常简单,否则硬度范围相当高.
另外,我发现我构建的Perl 6程序与Perl 5代码非常不同.在将Perl 5移植到Perl 6时,您可以在技术上保持非常接近1:1的顺序,但是当您完全切换到Perl 6时,结果将不会惯用,缓慢且难以维护.仅添加空宏将无济于事你很多,因为你犯的每一个错误都被忽略了.当您想要将程序移植好时,这实际上可能会增加负担.
这个想法很有吸引力,但你可能只是增加你的工作量而没有真正的收获.
有几个Perl 5模块朝这个方向发展.对于面向对象,您可以使用Moose和MooseX::Method::Signatures.
对于声明子和方法,有Method::Signatures,Sub::Signatures和Kavorka.
另请查看Perl6CPAN上的命名空间.