当前位置:  开发笔记 > 编程语言 > 正文

我应该使用Perl的哪些动态编程功能?

如何解决《我应该使用Perl的哪些动态编程功能?》经验,为你挑选了4个好方法。

我对scipting语言(特别是Perl)很陌生,我编写的大部分代码都是将C代码转换为Perl的无意识的努力.

阅读 关于 Perl的,那是经常提到的最大区别事情之一是,Perl是一种动态语言.因此,它可以在运行时执行其他语言(静态)只能在编译时执行的操作,因此可以更好地处理它,因为它可以访问实时信息.

所有这一切都没关系,但是我应该具备哪些特定功能,并且具有一些C和C++经验,在使用Perl编写代码时要记住它使用它具有的所有动态编程功能,以产生一些非常棒的代码?



1> szbalint..:

这个问题足以填满一本书.事实上,这正是发生的事情!

Mark Jason Dominus的优秀高阶Perl 可在线免费获取.

以下是我在第一次读这本书时从喉咙里抓住我的序言的引用:

大约在1993年我开始阅读有关Lisp的书籍,我发现了一些重要的东西:Perl更像是Lisp而不是像C.如果你拿起一本关于Lisp的好书,会有一个部分描述Lisp的优秀特性.例如,Peter Norvig撰写的"人工智能编程范式"一书中包含了一个题为"使Lisp与众不同的内容"的部分.它描述了Lisp的七个特性.Perl分享了其中六个功能; C没有人分享.这些是重要的重要功能,如一流功能,动态访问符号表和自动存储管理等功能.



2> Chas. Owens..:

一系列C习惯不会延续到Perl 5中:

不要将变量声明在程序/函数的顶部.在需要时声明它们.

在声明它们时,不要将空列表分配给数组和散列(它们已经为空并且需要初始化).

不要使用if (!(complex logical statement)) {},就是这样unless.

不要使用goto破解深嵌套循环,next,last,和redo所有乘坐环路标签作为参数.

不要使用全局变量(这是一般规则,即使对于C,但我发现很多C人都喜欢使用全局变量).

不要创建闭包将执行的函数(特别是回调).请参阅perldoc perlsubperldoc perlref了解更多信息.

不要使用in/out返回,而是返回多个值.

Perl 5活动:

始终使用strictwarningspragma.

阅读文档(perldoc perlperldoc -f function_name).

使用哈希structs在C中使用的方式.


有时它会很好地与代码一起使用,除非.例如`return除非($ foo)`.我通常不会将它用于复杂的逻辑语句.

3> brian d foy..:

通过可维护性,开发时间,可测试性和灵活性的最佳组合,使用可解决问题的功能.在特定应用程序的上下文之外讨论任何技术,样式或库都不是很有用.

您的目标不应该是为您的解决方案找到问题.学习Perl比你计划立即使用(并继续学习).有一天你会遇到一个问题,并想"我记得有些东西可能有助于此".

您可能希望看到其中一些书,但是:

高阶Perl

掌握Perl

有效的Perl编程

我建议您慢慢地逐步将新概念引入编码中.Perl的设计使您不必了解很多内容,但您可以在了解更多信息的同时改进代码.试图同时掌握许多新功能通常会让您在其他方面遇到麻烦.



4> Peter Tillem..:

我认为最大的障碍不是动态方面,而是"电池包含"方面.

我认为perl最强大的方面是

哈希:它们可以让您轻松表达非常有效的数据结构

正则表达式:它们真的很好地集成了.

使用默认变量,如$ _

任何未安装标准的库和CPAN

我注意到C转换的东西是过度使用for循环.可以使用grepmap删除许多

perl的另一个座右铭是"有不止一种方法可以做到".为了攀登学习曲线,你必须经常告诉自己:"必须有更好的方法来做到这一点,我不能成为第一个想做的人......".然后你通常可以转向谷歌和CPAN与其数量众多的库.

perl的学习曲线并不陡峭,但它很长......花时间享受骑行乐趣.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有