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