2012-02-21 54 views

回答

7

A 脚本只是一个通常包含在单个文件中的(通常是简短的)程序的名称。这不是一个真正的科学术语,因此非常模糊 - 人们可以在讨论3行快速程序或10000行代码程序时参考“脚本”。

有些人将任何Perl程序称为“脚本” - 请参阅下面的历史原因。有些人说,“Perl脚本”与Perl“程序”相反时,意味着一个相对简单,相对较短的程序,通常不需要使用任何子程序/类/其他代码组织方法就可以构建。再次,没有标准的定义。

另外,Perl程序经常被称为“脚本”的原因是Perl originally was used for writing scripts that perform work in Unix shell,shell脚本语言的使用方式。术语“scripting language”表示用于控制应用程序的语言,在这种情况下是Unix shell。当然,从那时起,Perl已经发展成为一种完全成熟的编程语言,但是这个词/术语仍然存在,有时被惰性使用,有时会被贬义。


subroutine甲(也称为程序,函数,例程,方法,或子程序)是执行特定任务和相对独立于剩余的码的更大程序内的代码的一部分。它通常意味着包含执行任务的代码,这些代码需要在程序中多次执行,甚至可以由多个程序执行。

一个子程序不是一个Perl特定的概念,虽然称它为“子程序”是用很少的语言(大多数使用术语函数,方法或过程)完成的。


作为一个特殊的方面说明,一个“方法” - 在Perl以及其它语言 - 是一个与面向对象的类或类的对象相关的子程序的一个特殊类型。事实上,它仅仅是一个子例程的特例,当然,事实突出表明 - 尽管deepest wishes by "Modern Perl" author chromatic - Perl 5中的方法是用“sub”关键字声明的,与常规子例程相同。


如上所述,一些人,指的是一个Perl程序为“脚本”的时候,意味着它不包含子程序(如任何足够复杂,有一个子程序不再是“脚本“而是”程序“)。但这不是一个被接受的或正式的定义 - 正如所述,不是什么脚本的定义,每个人都使用任何他们想要的方式。

+4

尽管有两个含义,但“子程序”和“方法”不可互换。方法是与类和/或对象关联的子例程。 – ikegami 2012-02-21 06:46:27

+0

@ikegami - 在Perl中是正确的。我不确定其他语言 – DVK 2012-02-21 07:12:15

+0

不只是Perl。方法是一个通用的OOP术语。我没有听说任何盗用它的语言。 – ikegami 2012-02-21 17:41:11

1

脚本通常是一个文件,它可以包含语句和子例程。一个子程序是你在脚本内找到的

子程序在perlsub手册页中有详细描述。

+0

脚本*可以*为文件,但不*必须*为文件。相反,它是一组执行特定小任务的代码集合,通常包含在单个文件中。 – TLP 2012-02-21 05:15:14

+0

我不打算正式定义* script *是什么。我会改变我的答案,使其更加模糊。 – 2012-02-21 05:16:05

+0

最好不要太过于哲学。 :) – TLP 2012-02-21 05:19:23

相关问题