Perl: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Leggere lo standard input in formato CSV e stamparne i 2 campi iniziali: rimossi wl secondo linee guida vedi Wikipedia:Wikilink#Wikilink nei titoli di sezioni e sottosezioni. |
|||
| (15 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1:
{{nd}}
{{NN|informatica|marzo 2016|Presenti solo 2 note di conto}}
{{Linguaggio di programmazione
Riga 9:
|versione =
|utilizzo = general-purpose
|paradigmi = multi-paradigma: [[Programmazione funzionale|funzionale]], [[Programmazione imperativa|imperativo]], [[Programmazione orientata agli
|tipizzazione = [[Tipizzazione dinamica|dinamica]]
|specifiche =
|estensione = .pl .pm .t
|influenzato_da = <!-- Lista di linguaggi che hanno influenzato il linguaggio in esame, citare le fonti -->
|ha_influenzato = [[Perl 6]], [[PHP]]
|implementazione_riferimento = [[Linguaggio interpretato|interprete]]
|sistema_operativo = [[Multipiattaforma]]
|lingua = <!-- Lingue supportate dall'impl. di riferimento -->
|licenza = [[GNU General Public License]] o [[Licenza artistica]]<ref name='licensing'>{{Cita web | url =
|sito_web =
}}
[[File:Hello World Perl GTk2.png|
'''Perl''' è un [[linguaggio di programmazione ad alto livello]], dinamico, procedurale e interpretato, creato nel 1987 da [[Larry Wall]]. Perl ha un singolare insieme di funzionalità ereditate da [[C (linguaggio)|C]], [[Linguaggio di scripting|scripting shell]] [[Unix]] ([[Bourne shell|sh]]), [[Awk]], [[sed (Unix)|sed]] e in diversa misura da molti altri linguaggi di programmazione, compresi alcuni linguaggi funzionali.
Riga 27:
== Descrizione ==
Benché sia molto noto come linguaggio per lo sviluppo di [[Common Gateway Interface|CGI]], Perl è stato creato inizialmente come ausilio ai [[sistemista|sistemisti]], come linguaggio di manipolazione di testo e file. Infatti è anche detto '''''P'''ractical '''E'''xtraction and '''R'''eport '''L'''anguage''<ref>{{Cita news|lingua=en|url=https://www.techopedia.com/definition/3941/practical-extraction-and-report-language-perl|titolo=What is Perl? - Definition from Techopedia|pubblicazione=Techopedia.com|accesso=2017-09-26}}</ref>, ma questo è un [[acronimo inverso]]. Pertanto secondo la documentazione stessa di Perl, non vi si dovrebbe mai riferire come "PERL", ma come "Perl" o "perl" a seconda che si intenda il linguaggio in quanto tale o una specifica implementazione rispettivamente<ref>{{Cita web|url=
Si è evoluto nel tempo, anche grazie ad un potente sistema di moduli, in un linguaggio a carattere più generale, comprendente l'elaborazione di immagini, l'interrogazione di banche dati, i processi di comunicazione via rete ed utilizzabile in tutti quegli ambiti in cui non siano strettamente necessarie le performance di un linguaggio compilato a un più basso livello, offrendo in aggiunta tempi di sviluppo molto più rapidi. È quindi anche utilizzato per la [[prototipizzazione]] di programmi da implementarsi in altri linguaggi.
Il linguaggio è stato pensato per essere pratico; esso non è mai stato pensato per essere compatto, elegante o minimale, infatti il suo motto è riassunto nell'acronimo ''TMTOWTDI'' (There is More Than One Way To Do It), che in italiano molto indicativamente significa "c'è più di un modo per farlo".<ref>{{Cita web|url=https://www.urbandictionary.com/define.php?term=TMTOWTDI|titolo=Urban Dictionary: TMTOWTDI|sito=Urban Dictionary|lingua=en
Perl supporta sia il paradigma procedurale che quello [[object oriented|ad oggetti]], ha potenti funzioni per l'elaborazione dei testi ed è dotato di una delle maggiori collezioni di moduli prodotte dalla sua vasta comunità di utenti.
Riga 82:
operativi e tutti i moduli compresi nel CPAN.
La comunità Perl è sovente attaccata per l'assenza di un [[
In realtà la ricchezza espressiva del Perl rende complicata la realizzazione di un IDE che evidenzi errori di costruzione degli statement, e dati i numerosi valori di default delle funzioni base risulterebbe oltremodo difficile comprendere in automatico cosa vuole ottenere il programmatore, dove c'è un errore o forse no. Tuttavia Eclipse contiene un'estensione per il Perl e forse altri editor di codice seguiranno.
== Programmi di esempio ==
=== Leggere lo standard input in formato
<
#!/usr/bin/perl
#con i campi puoi fare quello che vuoi
Riga 95:
print "$campo[0],$campo[1]\n";
}
</syntaxhighlight>
In questo esempio vi sono una serie di default che non è possibile comprendere senza una spiegazione:
Riga 103:
Lo stesso programma poteva essere riscritto nella seguente forma:
<
#!/usr/bin/perl
while(<>) {
Riga 109:
print "$campo1,$campo2\n";
}
</syntaxhighlight>
In questo secondo caso notiamo come sia possibile scrivere lo stesso programma in un altro modo.
Riga 120:
== Bibliografia ==
* {{en}}
* {{en}}
* {{en}}
* {{en}}
* {{en}} http://hop.perl.plover.com Higher-Order Perl
* {{en}} https://web.archive.org/web/20051110081542/http://manning.com/books/conway Object Oriented Perl di Damian Conway
Riga 131:
* [[Black Perl]]
* [[Code golf]]
* [[BioPerl]]
== Altri progetti ==
{{interprogetto
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
* {{cita web | 1 = http://www.perl.it | 2 = http://www.perl.it | accesso = 18 luglio 2003 | urlarchivio = https://web.archive.org/web/20030719041946/http://perl.it/ | dataarchivio = 19 luglio 2003 | urlmorto = sì }}
* {{cita web|http://conferences.yapceurope.org/ipw2009|Italian Perl Workshop 2009}}
* {{cita web | 1 = http://www.perl.it/documenti/articoli/yp/index.html | 2 = http://www.perl.it/documenti/articoli/yp/index.html | accesso = 18 luglio 2003 | urlarchivio = https://web.archive.org/web/20030830132249/http://www.perl.it/documenti/articoli/yp/index.html | dataarchivio = 30 agosto 2003 | urlmorto = sì }}
* {{cita web | 1 = http://www.perl.it/documenti/faq/list.html | 2 = Perl FAQ | accesso = 21 novembre 2006 | urlarchivio = https://web.archive.org/web/20061209152312/http://www.perl.it/documenti/faq/list.html | dataarchivio = 9 dicembre 2006 | urlmorto = sì }}
* {{cita web|
* {{cita web|http://www.perl.com|http://www.perl.com|lingua=en}}
* {{cita web|http://www.cpan.org|L'archivio coordinato dei moduli disponibili|lingua=en}}
* {{cita web|http://www.perlmonks.org|http://www.perlmonks.org|lingua=en}}
* {{cita web|http://www.pm.org|http://www.pm.org|lingua=en}}
* {{cita web|1=http://www.perldoc.org|2=http://www.perldoc.org|lingua=en|accesso=17 novembre 2019|urlarchivio=https://web.archive.org/web/20110505083213/http://perldoc.org/|dataarchivio=5 maggio 2011|urlmorto=sì}}
{{Framework per applicazioni web}}
| |||