Home >> Blog >> 什麼是 Perl?

什麼是 Perl?

Perl 是一個程式語言家族,在語法上與C語言相似。它是一種較舊的、開源的、通用的、解釋性語言。

Perl 的開發考慮到了可用性。其高效的設計讓開發人員只需少量程式碼即可完成很多工作。它的綽號是互聯網的“瑞士陸軍電鋸”。

Perl 比C 和 C++ 等結構化語言更易於學習和編寫程式碼。然而,該語言用於開發高級程式。該語言經常用於開發通用網關介面 ( CGI ) 程式,因為它具有良好的文案操作能力和處理二進製文件的能力。

Perl的設計和特點

Perl 包括流行的Unix工具,例如 sed、awk 和 tr。作為一種解釋型語言,程式碼可以按原樣運行,指令的執行無需先將整個程式編譯成機器語言指令。

但是,Perl 可以在執行之前編譯成 C 程式碼或跨平台字節碼。編譯後,Perl 程式幾乎與完全預編譯的 C 語言程式一樣快。某些伺服器(例如Apache )可以使用外掛,將 Perl 永久加載到內存中。這減少了編譯時間並加快了 CGI Perl script的執行時間。

以下是額外的 Perl 功能:

  • 膠水語言glue language。作為一種膠水程式碼語言,Perl 使程式設計師更容易集成其他不兼容的介面和組件。它具有資料庫集成介面,支持第三方資料庫,如 MySQL、Oracle、Postgres 和 Sybase。
  • 嵌入。Perl 可以嵌入到資料庫伺服器和 Web 伺服器中。
  • 文案處理。它包括強大的文案處理工具,使其能夠使用標記語言,如超文案標記語言和可擴展標記語言。

Perl 語法和程式碼示例

與所有程式語言一樣,Perl 遵循編寫程式碼的基本語法。它包含關鍵字和變量,用於存儲執行程式邏輯的表達式和語句。

Perl 程式總是以這行程式碼開始:

#!/usr/bin/perl

之後,用戶可以寫一個基本的“你好,世界!” script:

print "嗨,世界!\n"

輸出如下:

“你好,世界!”

用戶還可以聲明一個變量。在 Perl 中,變量由變量指示符預定義—— $、@或%。這些定義了數據類型:

  • 存儲數字、字符串和引用的標量數據類型以$開頭。
  • 存儲標量有序列表的數組以@開頭。
  • 存儲鍵值對集合的散列以%開頭。

要聲明一個簡單的字符串,它是一個標量數據類型,應該使用$ :

$str = "我叫山姆";
打印“$str\n”

在這裡,輸出將如下:

“我的名字叫山姆”

Perl 也有許多特殊變量,它們通過改變普通變量指示符來表示,如下表所示。

下面是來自 Perl.org 的更高級程式的示例。該程式使用 Perl script發送電子郵件:

#!/usr/bin/perl
使用嚴格;
使用警告;
#
使用 Email::MIME 創建電子郵件消息;
我的 $note = Email::MIME->create(
header_str => [
From => ' bill@fakeemail.com ',
To => ' ted@fakeemail.com ',
Subject => '新年快樂!',
],
attributes => {
encoding => 'quoted-printable',
charset => 'ISO-8859-1',
},
body_str => "祝你新年快樂!\n",
);
# 發送郵件
使用 Email::Sender::Simple qw(sendmail);
發送郵件($note);


使用 Perl 的優缺點

Perl 有幾個優點,也有一些缺點。

優點

Perl 的優點包括:

  • 選項。用戶在如何使用 Perl 編寫程式或解決問題方面有很多選擇。
  • 靈活的。該語言的設計和語法讓用戶可以使用自己的程式風格進行程式。
  • 開源。Perl 是免費的,任何人都可以在各種平台上訪問、開發和使用。
  • 可用性。它被預裝在很多地方,並且在綜合 Perl 存檔網絡上提供了超過 25,000 個 Perl 模塊。它也在大多數操作系統上實現。

缺點

Perl 的主要缺點是它在很多方面都是一種相對混亂的語言:

  • 難以閱讀。一些開發人員聲稱 Perl 難以閱讀,並且不如Python等新語言精簡。因為編寫 Perl 程式的方法有很多,所以可能會導致程式碼雜亂無章。
  • 難以調試。因為 Perl 程式碼可能晦澀難懂或混亂,調試和修復問題可能很困難。
  • 性能缺陷。使 Perl 用戶受益的相同靈活性也可能導致它變慢。這是因為這種靈活性會導致效率低下和冗餘,需要更長的時間來編譯。

Perl 與 Python

Perl 和 Python 有著共同的歷史。兩者都是為了簡化script而發明的。Perl 的開發目的是為 Unix script提供類似 C 的結構。Python 的發明是為了使 C 更簡單,並且可以編寫script。

Perl 和 Python 在語法上相似,從 Perl 到 Python 的翻譯相對容易,只需要一些主要的語法變化。

但是,這裡有四個主要區別:

  1. 用 Perl 編寫的行以分號結尾。
  2. Perl 包含花括號和縮進;Python 沒有。
  3. Perl 中的變量名稱使用變量指示符來設置樣式,例如$x、%x和x。Python 中的變量名的樣式沒有變量指示符,例如x。
  4. Python 中的print語句在輸出的末尾添加了一個新行。

什麼是 Perl?

這些程式碼示例顯示了 Python 和 Perl 之間的語法差異。其中最值得注意的是使用 $ 來指示變量的數據類型。

其他差異包括以下內容:

  1. Perl 可能很混亂,而 Python 更精簡。
  2. 在 Perl 中有很多做事的方法,而 Python 旨在為任何給定函數提供一條清晰的路徑。
  3. Python 比 Perl 更容易閱讀。
  4. Python 被認為是最好的程式語言之一,也是新手SEO開發人員最容易學習的語言之一。
  5. Python 是一種比 Perl 更新的語言。
  6. Perl 與 Web 應用程式源程式碼集成在一起。
  7. Python 作為一種動態程式語言而享有盛譽,它具有廣泛的應用程式——從 Web 開發到機器學習——使其成為一種流行的語言。
  8. 開源開發者社區更支持 Python。

Perl 的歷史和未來

程式設計師Larry Wall於 1987 年創建了 Perl 的第一個版本。據說 Perl 最初代表“實用提取和報告語言”,但該名稱已不再使用。Wall 更喜歡將“Perl”用於語言本身,將“perl”用於該語言的任何解釋器或編譯器。

Perl 5 於 1994 年首次面世。根據 Perl.org 的說法,Perl 的最新穩定版本是 5.34.0。

Perl 6 根植於與 Perl 5 相同的祖先語言,但它是一種獨立的程式語言。它有自己的開源志願者設計團隊。

Perl 6 項目始於 2000 年 Perl 大會之後,但該語言的第一個正式版本 6.c 直到 2015 年 12 月才可用。Perl 6 於 2019 年更名為 Raku。

今天,Perl 指的是 Perl 5。Perl 7 的工作始於 2020 年。預計將於 2021 年推出。

了解有關Perl 和其他四種程式語言的更多信息,這些語言仍然具有影響力,但在未來十年可能會過時。

繼續閱讀關於 Perl

  • 企業級的函數式程式範式
  • 為什麼 Java 開發人員應該切換到 Python 或 R 進行數據科學
  • 為 DevOps 工作流選擇最佳程式語言
  • 不要努力學習新的程式語言
  • Python 和 Ruby 有什麼區別?

相關術語

字節碼

字節碼是電腦目標程式碼,解釋器將其轉換為二進制機器程式碼,以便電腦硬件可以讀取它... 查看完整定義

電腦教學

電腦指令是電腦程式向電腦處理器發出的命令。 查看完整定義

內存管理

內存管理是控制和協調電腦主內存的過程。 查看完整定義