2012-02-21 69 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

相關問題