是否可取,将perl中另一个文件中的所有公共子例程分开?

qui*_*kxi 1 perl require subroutine

我想将另一个文件中的所有公共子例程分开,以节省一些空间并整理每个文件.然后使用require()来调用子例程.

对于前

sub greet{
     print "Hi there\n";
}
Run Code Online (Sandbox Code Playgroud)

我在Script1.pl,Script2.pl和Script3.pl中添加和调用的.

将子程序分离到另一个文件的专家和骗子是什么?

对不起我的语法.希望你能帮助我理解.

Fli*_*mzy 5

每当您拥有多个脚本使用的代码时,通常应将其拆分为库,如您所述.有很多方法可以做到这一点,每种方法都有自己的优点和缺点,超出了您的具体问题的范围.

因此,为了解决关于将功能移动到库中的优缺点的具体问题,让我们先来看看

优点

  1. 因为您的重复代码较少,所以更容易
    • 调试代码(存在错误的地方更少)
    • 更新您的代码(您不必在10个地方编辑相同的功能)
  2. 它使您可以更轻松地与其他人或其他项目共享您的库功能
  3. 通过模块化思考,它鼓励更好的设计
  4. 节省空间(一个非常小的点,使用现代存储介质)

缺点

  1. 分发代码更加困难 - 您还必须确保分发所有必需的文件.
  2. 一次看到整个代码并不容易 - 只是小项目的问题,你甚至可以选择将整个项目安装在屏幕上(或在你的头脑中)

一般经验法则:除了非常小和/或自包含的项目,使用库.

  • 经验法则重申:干 - 不要重复自己 (2认同)