2009-01-27 12 views
5

Kendimi PHP'de oldukça akıcı buluyorum ve neredeyse tüm önemli yönlerin ve kullanımların yanı sıra, kendi notları hakkında bilgi sahibi oldum. Bu akılda kalırsa, Perl'i ele almanın en büyük probleminin sözdizimi ile olacağını düşünüyorum. Bunun yanı sıra (küçük bir engel, aslında, Perl'lerin çok daha okunabilir olması gerçeğinden daha çok satıldığı gibi), dilden önce kendimi bilmem gerektiğini düşündüğüm önemli farklılıklar nelerdir?Bir PHP geliştiricisi olarak Perl'i ikincil güçlü bir takım haline getirme düşüncesi olarak, neyi bilmem gerekiyor?

+0

Her şey eşittir, PHP'den biraz daha farklı bir şeylere dalmanızı öneririm. Açıkçası farklı diller ve farklılar ama neden Python veya RoR gibi bir şeyi denemiyorsunuz? –

+0

(Önyargılı olabilirim çünkü Perl/PHP arka planım var ve geçen hafta bir Python kitabını aldım ve kool yardımını içiyorum) –

+0

Evet, aynı şeyi önerecektim ama Çok çok perl ve çok pro Python. Hexagon, Perl'in okunabilirliğini düşünmüyormuş gibi görünüyor, bu yüzden o kadar eğimli ise onunla birlikte gidebilir. –

cevap

18

bazı farklı şeyler değerinde bir okuma hakkında:

  • paketleri
  • sözcük kapsamları
  • düzenli ifade sözdizimi
  • karmaları, diziler ve listeler (Perl tüm farklı, PHP hepsi aynı)
  • CPAN
+0

Ayrıca, öğrenmesi ve hatırlaması kolay olsa da, farklı imzaların neyi temsil ettiğini öğrenmenizi tavsiye ederim. Doğru hatırlamıyorsam, PHP sadece '$', perl '$' ek olarak birden fazla sigili var. – gpojd

+0

iyi nokta! $ a vs @ a vs $ a [1] vs% a vs $ a {foo} – Cal

3

Perl dosya pro için mükemmeldir duraklama, ekstraksiyonlar, regex. Her türlü metin işleme için seçeceğim ilk araçtır.

Ters sözdizimi Perl'i okumayı oldukça zorlaştırmasına rağmen, dahili ifadesinin ve dosya işlemenin gücü, geleneksel dillerde çok daha büyük olacak küçük programlar için uygun hale getirir.

+1

Okuma zorluğuna neden olan sözdizimi tersine çevirmiyor, bu söz dizimi gibi doğal bir dil. – singingfish

+1

Bu onun gücünü ve onu güçlü kılan sözdizimi gibi doğal bir dildir. Bazı Perl kodlarının okunmasını zorlaştıran şey, herhangi bir dilde olduğu gibi, onu yazan programcıdır. – MkV

4

Herhangi bir PHP yapmadan önce çok uzun bir süre Perl kullanmıştım ve geçişi oldukça kolay buldum.

Sözdizimi PHP ile Perl arasında çok benzer. Açıkçası, farklılıklar var ve yeni bir kütüphane seti öğrenmelisiniz (CPAN'ın çoğu kullanım için modülleri vardır, bu yüzden herhangi bir yeni aracı uygulamaya koymadan önce CPAN'a bir göz atın).

Düzenli ifadeler Perl'de kullanımı daha az ayrıntılı ve imo biraz daha kolaydır. Diğer yandan, PHP'deki sınıflar, diğer OO dillerini biliyorsanız, beklediğiniz gibi görünür. Perl'de bana OO birazcık bağlı görünüyor.

+0

Sınıflar, Perl'de daha esnektir ve eğer OO'da bütün domuzlara gitmek isterseniz, Moose/Mouse çoğu OO dilinden daha fazladır. – MkV

10

Perl'in temellerini öğrendikten sonra, Damian Conway tarafından "Perl Best Practices" adlı kitabı tavsiye ederim.

Bu, yazma stilinizi ve programlama hakkında düşündüğünüz biçimleri değiştirir ve özellikle Perl programlarınızı daha okunabilir ve korunabilir yapar.

+0

+1 - Bu kitap hayatımı değiştirdi. Diğer taraftan, – cowgod

+0

, perl'in en iyi uygulamalarının yaklaşık 1/2 kadarı göz ardı edilir. Okuyucuya hangi bölümün olduğu bir egzersiz olarak kaldı.(ama Moose'u kullanın ve Inside Out Objects bölümündeki bölümü görmezden gelin) yararlı bir pro-tiptir – singingfish

+0

Çok doğru. Kitapta iyi bir tavsiye, iyi bir sondaj tavsiyesi ve muhtemelen kaçınmanız gereken şeyler var. Burada iyi bir liste var: http://www.perlfoundation.org/perl5/index.cgi?pbp_module_recommendation_commentary –

0

Oyunun bu noktasında, Perl yine de mükemmel bir hızlı-n-kirletici ayrıştırıcı uygulamaları için kullanılır. Herhangi bir dil için, sözdiziminin ne anlama geldiğinin dışında bir dili kullanmıyorsanız, sözdizimi temizliği konusunda endişelenmemelisiniz. Perl, kötüleşen yaslanmış kürdan sendromundan dolayı kötü bir şöhrete sahip olmuştur. Bunun birçoğu, l33t script kiddies'in 1 satırda 5 satırlık Perl kodunu yoğunlaştırması gibi.Bir yan not C + Perl = ~ m/PHP olarak

/

+1

"Dil dışında iyi bir dil kullanmıyorsanız, sözdizimi hakkında endişelenmenize gerek yok. Bunun ne anlama geldiği "<- bununla ne demek istiyorsun, bana hiç de mantıklı gelmiyor. – singingfish

3
  • kullanımı katı; uyarıları kullanmak;

  • Perl :: Eleştirmen, (gelecekte) perltidy

  • CPAN

  • daha modern OO sistemini kullanmak için (bunları yüklemek için CPAN kabuğunu kullanın) geçerli Python tabanlı bir yapmanız gerekenler OO sistemini CPAN'dan yükleyin. Moose'u deneyin (ya da Moose sizin için çok güçlü ise).

  • Unicode (dil entegre)

  • 'eşdeğer' ve '==' yerine ==/===/strval/intval (önemli)

  • Test oryantasyonu (başlangıç ​​farklıdır öğreticiler ve diğer yararlı linkler - Testi :: Daha) ile

Ayrıca Perl programming wiki bakın.

0

Web malzemesi için Catalyst'a bakın. OO şeyler için Moose'a bakın. En iyi uygulamalar için, iş parçacığının başka yerlerinde bulunan tavsiyelere uyun. Başlaman için yeterli olmalı.

+0

Sadece bir güncelleme Perl: Mojolicious ve Dancer için iki tane daha büyük, daha hafif web çerçevesi var. –

+0

evet, bunlar her ikisi de iyidir. Belki de endüstriyel ölçekli malzeme ve daha küçük şeyler için daha hafif şeyler için katalizör kullanın. Katalizör küçük şeyler için hala iyi olsa da. – singingfish

İlgili konular