2008-12-25 39 views
13

我幾年前進入Perl,總是發現它是一種有趣且富有表現力的語言。你正在使用Perl,是什麼讓你進入它?

我發現在Perl編程這讓我非常富有成效得益於其較低的開銷,並在CPAN常見問題的現成解決方案的餘額。

如果您是Perl的新手,是什麼讓您進入的?

+0

什麼是downvotes? 至少說明原因?! – 2008-12-25 15:16:26

+0

我不知道,+1從我:) – leppie 2008-12-25 15:26:24

+0

感謝leppie。我認爲,想知道人們在Perl中如何使他們在今天接受它是完全有效的。 – 2008-12-25 15:30:49

回答

9

隨着Perl(以及TMTOWTDI背後的表現力),編程成爲一項創造性任務。我可以寫if($expr) { $statement; }如果我計劃有許多else語句,或者我可以寫$statement if $expr;如果這更有意義(例如,我喜歡寫作:

sub doSomething { 
    my($toObject, $argument) = @_; 

    die "No object specified" unless defined($toObject); 
    die "Object invalid: $toObject" unless $toObject->ISA('Example'); 

    # Do stuff 
} 

當然,這並不總是最容易的,但是,也是最具表現力的方式;所以我想出了一個更好的方法來完成任務!)。人們抱怨,因爲Perl可以讓你編寫可怕的代碼;我喜歡Perl,因爲它可以讓我編寫代碼,看起來很漂亮對我來說(是的,我可以看到有十幾個不同的程序員用自己的風格寫作的缺點;我會堅持認爲好的作家可以漂亮表達性和可理解性,無論主題有多不同)。使用其他編程語言,我最終不得不考慮通過抽象層的方式(這將如何Map給我的Iterator s我可以用來...等等)。對於Perl,我通常只有一個基本Perl以上的抽象級別。例如,DBI會給我數據庫結果作爲普通的日常Perl標量,列表和哈希值,所以我知道的關於這些簡單的核心數據結構的一切都會傳遞給我將DBI(複雜的數據結構?)這些PostgreSQL的用途!)。

我只用了大約一年的Perl全職工作,但這些對我來說是巨大的勝利,也是我在Java 1.4手中一年之後第一次全職進入Perl的原因, s Collections模型(不要問)。其他編程語言讓我覺得我拼湊了一個七巧板,因爲你排列所有模塊和包恰到好處; Perl感覺就像一個裝滿了樂高積木的盒子,裏面放着一些「特殊」的磚塊(如DBI,CGI.pmTest::*),這是很好的措施。有許多不同的方法可以解決任何問題,並且Perl可以讓你以任何喜歡的方式嘗試任何你喜歡的方法。

4

簡單的語法,強大的win32和unix系統腳本功能,以及完全強大的正則表達式!

我皮卡的Perl上,我不得不寫大量的自動化腳本的電氣工程師礦山數據日誌,並將它們格式化到Excel,有時與SQL Server處理過我的第一份工作。有了Perl,我通常可以很快地完成某些工作,所以在製造業領域都很好。 :P

+0

Perl?簡單的語法?你一定是在開玩笑。 – 2008-12-25 15:47:40

+1

這不是玩笑。 Perl的語法非常簡單。您不需要知道所有事情就可以開始使用它。 – 2008-12-25 17:38:22

+0

但是當你嘗試做一些不平凡的事情時,你不知道會快速咬你。我已經用Perl進行了10年的編程,而我用來描述Perl語法的最後一句話很簡單。 – 2008-12-25 18:01:35

0

服用它。幾年前我不得不在Perl的一個項目中工作,而且我真的不喜歡這種語言。它有一個有時很尷尬的語法和很多瘋狂的陷阱,我發現很難合作。老實說,我認爲Ruby在許多方面已經取代了Perl:它大致相同,但具有更好的功能並且更易於使用。

的Perl仍然有CPAN,雖然,這甚至紅寶石無法比擬的(儘管Ruby有很多有用的庫,太)。

18

我的編碼PHP爲生,然後聽取他們::變更爲\作爲一個名稱空間分隔符。我真的不是在開玩笑,或者說是惡意,但那真的是真的是是什麼讓球滾動。

不是精英主義者,但我突然意識到我必須與誰合作的人知道PHP對編程概念的理解非常少,這使我感到沮喪,因爲他們怎麼可能如此失明,IRC的房間裏的人對於我的問題不再是幫助的來源,而且我通常會花更多時間回答問題並等待某人回答我的問題。通常我最終自己解決它。 大部分時間我都意識到人們以越來越糟的方式一遍又一遍地重新解決同樣的問題。

我發現PHP中有問題的行爲違背了邏輯和推理(如array_merge_recursive系列),並發現未記錄的函數如何使用它們,當我在函數中報告錯誤時,我的錯誤被標記爲「虛假「,我被期望是通靈。

我有一個朋友的人不斷宣揚的Perl的善良,所以我基本上給了它一個鏡頭,現在我迷上像一個癮君子。另外,我在其他高階動態類型語言(JavaScript和Ruby,是的,JavaScript在語言特性方面比PHP更強大的語言)方面的經驗給我留下了許多解決問題類型的方法的知識,但受到這種限制,我無法使用這些強大的功能。 Perl滿足了這個需求。

爲什麼Perl而不是Ruby?我已經玩了一下Ruby,但是我的經驗告訴我支持和文檔很少,語言很慢並且不成熟。不錯,它可能是,但它仍然在對抗Perl的能力上減少我所看到的。 它共享PHP的一個重大缺陷,即它有一個龐大的用戶羣,其中包括所有新手都以錯誤的方式做事,我真的不想處理那麼多。

成爲精英主義者並不好,但是一旦你試圖向30人解釋同樣的事情(每次都要花一個小時讓一個簡單的概念進入他們的頭腦),它就會受到挫折。 (我不能應付'有人在互聯網上是誰是錯'的情況,如果我不能SEE它,它不會發生)

6

Perl是它的社區,這就是原因在社交和實踐層面使用它。 (請參閱CPAN和Perlmonks,這可能對SO有所啓發。)

4

我曾經使用過awk幾次shell腳本的方式,回想當時的情況。在一個古老的項目中,我們需要實現TELNET協議連接,所以我在Perl 4中編寫了一個快速版本。它運行得非常好,我開始非常喜歡這種語言。

後來,我用Perl 5編寫了一個完整的商業Web應用程序,完成了它自己的框架和數據庫。我小心不要使用Perl的許多更深奧的功能,所以代碼看起來更像C而不是Perl。它工作得很好,性能很好,代碼很容易擴展。

最近我一直在使用Java,但我經常發現自己錯過了Perl的寬鬆輸入,以及它比Java更好的封裝能力。我最喜歡的功能是能夠將Perl數據結構(數組和散列)和代碼直接放置在配置文件中並執行它們,以及將代碼綁定到像數組這樣的語法的能力。兩者都導致一些非常漂亮的代碼。

Paul。

-3

Perl並不像我想的那麼糟糕。大約一年前,我曾經在幾個客戶腳本中使用過它,甚至漸漸喜歡它。然後,我再也沒有錯過它。

原因?它主要是一種只寫語言。超過100線的解決方案讓我對自己的代碼保持警惕,這肯定不是一個好的結果。與其他語言,酒吧是相當高(可能1000或10000行)。

我看不出有任何理由去Perl的新項目,新的用戶,在2009年-soon-

9

我還沒有那麼長的時間在Perl社區,什麼我首先帶來的是拉里·沃爾的幽默和智慧。誠然,Perl有它的怪癖,但是語言來自對我非常接近的事物的理解,所以我對Python和Ruby的程度不太滿意。

我不會用WxPerl做web應用程序的更多GUI,它工作得很好。我對語言也很感興趣,比如說因素,噓聲,rebol等等,但總的來說,我是Perl的選擇。這是因爲混合了強大的語法(如果你喜歡它,可以是非常實用的),當然還有社區,CPAN,以及像我以前說的那樣,因爲舒適的感覺處在正確的位置。

11

作爲'腳本語言'課程的一部分,我在計算機科學的第三年開始學習Perl。我有一位朋友正在研究生物技術,並幫助她處理蛋白質數據庫(解析文本文件,正則表達式,簡單完整性檢查)的一些數據挖掘腳本。在Perl中這是非常自然的事情。

然後我得到了我的第一個兼職工作,只好專業使用它。我負責開發一組處理公司業務邏輯的批處理腳本。這是Perl揭示其全部潛力的任務。需要從數據庫中獲取數據? - 沒問題,只要去CPAN。需要自動化維基 - 沒問題,去CPAN。已經創建的模塊的數量是巨大的,你可以肯定,你總能找到你在CPAN需要什麼。

總結。對我來說,Perl是一種瑞士軍刀的腳本語言。一切都可以在其中完成,即使對於非常奇特的任務,它也有大量額外的模塊。順便說一下,我提到了REGEXPS嗎?

6

在Perl編碼時有很多自由;你可以寫一些邪惡的,瘋狂的,無法讀懂的黑客,但是一旦你瞭解了這門語言(並且學會了如何使用perltidy :-)),在你意識到寫得很好的Perl代碼看起來不錯漂亮。

這很有趣;在大學學習我的系統管理員類型的工作後,我最終成爲一名全職Perl程序員;現在這是我最強的技巧。我會堅持使用Perl一段時間,因爲到目前爲止,這種語言可以隨我一起發展。我用Perl編寫了很多系統軟件,並決定選擇網絡編程以獲得樂趣,Catalyst在那裏等着我。我想嘗試一種新的語言範式嗎? Perl可能會支持它。相比之下,當我用PHP編寫一段時間時,我立刻感覺到我緊挨着玻璃天花板。

0

去年我考慮過學習Perl。

這是我主動決定不學習的唯一技術。這與語言本身沒有任何直接關係,我似乎已經晚了10年來參加這個聚會。它對於設計的shell腳本任務非常有用,但對於我個人而言,我更喜歡具有更強連貫性的語言。

Perl 6看起來好像處於無限期的中斷狀態,即使它到了,我也不認爲它會使語言更深刻地引人注目。

另外,拉里沃爾嚇到我了。

對於我的情況Perl不是正確的選擇,那就是爲什麼。

5

我是俄亥俄州南部一個大型組織的技術疑難解答人。我不得不學習Perl來保持一些自動化的網絡文本處理系統正常運行,並最終對它有點興奮。我最終認爲自己是一名開發人員,並編寫了一些程序來分析一些數據庫數據,並讓一些人的生活變得更加輕鬆。但在閱讀本網站上的一些帖子並聽取了stackoverflow播客,甚至開始從某人的建議閱讀列表中閱讀代碼完成之後,我不再有任何妄想,因爲我是Perl或任何其他語言的開發人員。不過,也許有一天我會成爲。

1

當我看到DBI並意識到我可以在五分之一的時間編寫我當時正在編寫的ESQL/C程序時,是什麼使我接觸到Perl的。

使我使用Perl的原因是,其他兩種可能取代它的語言都是強類型的。也就是說

print "10" + 5; 

是一種錯誤,而不是15

2

我開始使用Perl,以增強我們的嵌入式開發構建過程。我們需要根據交叉編譯的有效載荷開發不同的輸出,而Perl非常適合。

我們的增強功能包括浮點到十六進制轉換,S記錄後處理和校驗和修改。

不是說這種工作不能用其他許多工具完成,但我肯定會推薦Perl用於構建相關工作。

相關問題