构建相当小的脚本

时间:2013-10-25 06:32:03

标签: perl

我写了很多相当小的perl脚本。它们的范围从10行到可能1,000行,但中值大小可能只有大约100行。当我开始编写脚本时,我倾向于将事情分解成块并创建子例程。发生的事情是我最终写了很多类似于

的脚本
sub mkdir {
    ... directory testing logic ...
    ... mkdir ...
}
sub createFile {
    ... check for directory ...
    ... try and create the file, exit if failure ...
}
sub somethingElse {
    .... do stuff with the file that was created ...
}
sub yetAnotherThing {
    ... do even more stuff ...
}

&mkdir;
&createFile;
&somethingElse
&yetAnotherThing

这对我来说一直很奇怪。我喜欢它最终是模块化的,我可以轻松地评论某些任务,但我不确定这是构建这些小程序的最佳方式。

我的问题是:

  1. 有没有任何具体原因我不应该以这种方式构造脚本?我没有看到很多其他人这样做,所以感觉好像我做错了。
  2. 有人能建议更好的方法来构建较小的脚本吗?我是否应该跳过创建子程序并写出我希望我的脚本按顺序执行的操作?我是否想过这个? :)
  3. 谢谢!

2 个答案:

答案 0 :(得分:3)

你所做的是正确的,它被认为是编程的好习惯。它被称为功能分解 - 您将任务分解为更小的功能。

事实上,在行业中,人们开始编写大量的内联代码,然后在变得无法管理的时候开始重构代码,使其变得更像你正在做的事情。

以CPAN中的项目为例。其中大多数都被分解为小功能。事实上,其中大部分都被细分为相关功能的模块。

这是一个很好的第一步。下一步是在代码中编写.pmuse相关函数的文件。之后的下一步是编写面向对象的代码。

答案 1 :(得分:2)

你的方法对我来说看起来很合理,我确实在其他地方看到了类似的脚本。

你的某些方法可能现在已成为一种习惯,你已经成长,并且值得重新思考并有意尝试更高层次的事情。首先,有多少脚本包含几乎相同的5个目录和文件处理逻辑子程序?你有可能:

  • 齐心协力寻找能够缩短或不需要这些例程的CPAN模块。

  • 编写您自己的模块以包含脚本之间共享的代码。

这两件事都可以让你变得更有效率,而且你似乎在编写很多这些脚本,这是值得追求的。