2009-01-27 14 views
5

Mi considero abbastanza fluente in PHP e sono piuttosto familiare con quasi tutti gli aspetti e gli usi importanti, così come i suoi pratfalls. Tenendo presente questo, penso che il maggior problema nell'affrontare il Perl sarà nella sintassi. A parte questo (un ostacolo minore, in realtà, dato che sono piuttosto venduto sul fatto che il Perl's è molto più leggibile), quali sono alcune differenze chiave che pensi che dovrei rendermi consapevole prima di accettare il linguaggio?Come sviluppatore PHP che pensa di fare del Perl una causa secondaria forte, cosa devo sapere?

+0

A parità di condizioni, ti suggerisco di immergerti in qualcosa di leggermente più diverso da PHP. Ovviamente sono lingue diverse e diverse, ma perché non provare qualcosa come Python o RoR? –

+0

(Potrei essere di parte perché ho uno sfondo Perl/PHP e ho preso un libro Python la scorsa settimana e sto bevendo il kool-aid) –

+0

Aye, stavo per suggerire la stessa cosa, ma io ' molto anti Perl e molto professionale Python. Detto questo, Hexagon sembra dire che non gli dispiace la leggibilità di Perl, quindi potrebbe benissimo andare con lui se è così incline. –

risposta

18

alcune cose diverse pena di leggere su:

  • pacchetti
  • scope lessicali
  • sintassi delle espressioni regolari
  • hash, gli array e le liste (tutti uguali in PHP, tutte diverse in Perl)
  • CPAN
+0

Vorrei anche raccomandare di imparare cosa rappresentano i diversi sigilli, anche se è facile da imparare e ricordare. Se ricordo male, PHP ha solo il '$', mentre perl ha sigilli multipli oltre a '$'. – gpojd

+0

buon punto! $ a vs @a vs $ a [1] vs% a vs $ a {pippo} – Cal

3

Perl è grande per i file di pro cessazione, estrazioni, regex. È il primo strumento che selezionerei per qualsiasi tipo di elaborazione del testo.

Sebbene la sintassi tersa renda difficile la lettura di Perl, la potenza della regex incorporata e l'elaborazione dei file lo rendono adatto per i programmi di piccole dimensioni che sarebbero in realtà molto più grandi nei linguaggi tradizionali.

+1

Non è una sintassi concisa che può rendere difficile la lettura, è il linguaggio naturale come la sintassi che lo fa. – singingfish

+1

È la sua sintonia e linguaggio naturale come la sintassi che lo rende potente. Ciò che rende difficile leggere un codice Perl è il programmatore che lo ha scritto, come in tutte le lingue. – MkV

4

Ho usato Perl per molto tempo prima di eseguire qualsiasi PHP, e ho trovato la transizione abbastanza facile.

La sintassi è molto simile tra PHP e Perl. Ovviamente ci sono differenze e devi imparare un nuovo set di librerie (CPAN ha moduli per la maggior parte degli usi, quindi prima di implementare nuovi strumenti dare un'occhiata a CPAN).

I regex sono meno prolissi e sono un po 'più facili da usare in Perl. D'altra parte le classi in PHP sembrano più simili a quelle che ci si aspetterebbe se si conoscessero altre lingue OO. Per me OO in Perl sembra un po 'virato.

+0

Le classi sono più flessibili in Perl e, se si desidera eseguire il comando intero su OO, Moose/Mouse è più OO della maggior parte delle lingue OO. – MkV

10

Dopo aver appreso le basi di Perl, consiglio vivamente il libro "Perl Best Practices" di Damian Conway.

Cambia davvero il tuo stile di scrittura, e il modo in cui pensi alla programmazione, e in particolare, rende i tuoi programmi Perl molto più leggibili e manutenibili.

+0

+1 - Questo libro mi ha cambiato la vita. – cowgod

+0

d'altra parte circa la metà delle best practice perl è meglio ignorata. Viene lasciato come esercizio al lettore quale parte è.(ma usare Moose e ignorare il capitolo su Inside Out Objects è un utile suggerimento) – singingfish

+0

Molto vero. C'è un sacco di buoni consigli nel libro, buoni consigli dal suono e cose che dovresti probabilmente evitare. C'è un buon elenco di loro qui: http://www.perlfoundation.org/perl5/index.cgi?pbp_module_recommendation_commentary –

0

A questo punto del gioco, Perl è ancora un'ottima applicazione di parser quick-n-dirty. Per qualsiasi linguaggio non dovresti preoccuparti della pulizia della sintassi a meno che tu non stia usando il linguaggio ben al di fuori della portata di ciò per cui è stato concepito. Perl ha avuto una brutta reputazione a causa della sua famigerata sindrome dello stuzzicadenti pendente. La maggior parte di questo è dovuto al fatto che i ragazzini con script l33t amano condensare 5 righe di codice Perl su 1 riga.

Come nota a margine C + Perl = ~ m/PHP/

+1

"Per qualsiasi linguaggio non dovresti preoccuparti della pulizia della sintassi a meno che tu non stia utilizzando il linguaggio ben al di fuori dello scopo di cosa si intendeva per "<- cosa intendi con questo, non ha assolutamente senso per me. – singingfish

3
  • uso rigoroso; utilizzare avvertimenti;

  • Perl :: Critic, Perltidy (in futuro)

  • CPAN (utilizzare shell CPAN per installarli)

  • Per usare il sistema OO più moderno di corrente basato su Python uno, è necessario installa il sistema OO da CPAN. Prova Moose (o Mouse se Moose è troppo potente per te).

  • Unicode è differente (integrato nel linguaggio)

  • 'eq' e '==' invece di ==/===/strval/intval (importante)

  • orientamento prova (inizio con test :: More)

vedere anche Perl programming wiki - tutorial e altri link utili.

0

Bene per le informazioni sul Web guardare Catalyst. Per le cose OO, guarda su Moose. Per le migliori pratiche, seguire alcuni dei consigli altrove nel thread. Questo dovrebbe essere sufficiente per iniziare.

+0

Solo un aggiornamento che ora ci sono altri due principali e più leggeri framework web per Perl: Mojolicious e Dancer. –

+0

sì, sono entrambi buoni. Forse usare il catalizzatore per le cose su scala industriale e le cose più leggere per cose più piccole. Sebbene il catalizzatore sia ancora adatto per le piccole cose. – singingfish

Problemi correlati