Perl: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
| m Bot: sito web uguale a Wikidata |  →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. | ||
| (32 versioni intermedie di 23 utenti non mostrate) | |||
| Riga 1: {{nd}} {{NN|informatica|marzo 2016|Presenti solo 2 note di conto}} {{Linguaggio di programmazione |nome = Perl Riga 8 ⟶ 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 =  |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. ==  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'' 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 Il linguaggio è stato pensato per essere pratico 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. === Caratteristiche  Se a prima vista il Perl appare largamente derivato dal C, in verità ha ricevuto questa somiglianza mediata dai linguaggi di scripting delle shell. Riga 47 ⟶ 48: In verità con i moduli Inline:: sono diversi i linguaggi in cui possono essere definite le funzioni di un sorgente Perl. Perl è comunemente ritenuto un [[Linguaggio di programmazione|linguaggio interpretato]], ossia che per essere eseguito viene interpretato al momento dell'esecuzione. In realtà, la prima cosa che fa l'interprete è di trasformare il codice sorgente in [[bytecode]], un po' come Java; sul bytecode crea un [[grafo]] intermedio sul quale applica ottimizzazioni, ed è questo grafo ad essere interpretato. Questo approccio permette di limitare la lentezza tipica dei linguaggi interpretati. La versione del [[Perl 6]]<ref>{{Cita web|url = http://perl6.org|titolo = Perl 6|accesso = 2015-08-06|sito = perl6.org}}</ref>, in via di sviluppo da alcuni anni, divide l'esecutore del bytecode (o virtual machine) dal linguaggio in modo tale da permetterne l'utilizzo anche da compilatori di altri linguaggi, tra cui [[Tcl]], [[Python]], [[Java (linguaggio di programmazione)|Java]], etc. La virtual machine che ne deriva sarà una nuova base per lo sviluppo di linguaggi liberi e consentirà livelli di ottimizzazioni molto elevati e indipendenza dallo sviluppo dei linguaggi sovrastanti. Riga 81 ⟶ 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 94 ⟶ 95:     print "$campo[0],$campo[1]\n"; } </syntaxhighlight> In questo esempio vi sono una serie di default che non è possibile comprendere senza una spiegazione: * <> è un sinonimo per <ARGV> che a sua volta è un iteratore su un ''filehandle'' speciale che si riferisce ai file specificati sulla riga di comando, se ve ne sono o a STDIN altrimenti ed indica l'azione di estrarre una riga da tale filehandle.  * split prende un ''pattern'' (espressione regolare) ed a meno che non si specifichi diversamente agisce sulla variabile $_, spezzandola in corrispondenza dei punti in cui il pattern trova corrispondenza, e restituendo i pezzi rimanenti. Lo stesso programma poteva essere riscritto nella seguente forma: < #!/usr/bin/perl while(<>) { Riga 108 ⟶ 109:    print "$campo1,$campo2\n"; } </syntaxhighlight> In questo secondo caso notiamo come sia possibile scrivere lo stesso programma in un altro modo. Riga 119 ⟶ 120: == Bibliografia == * {{en}}  * {{en}}  * {{en}}  * {{en}}  * {{en}} http://hop.perl.plover.com Higher-Order Perl * {{en}}  == Voci correlate == * [[Black Perl]] * [[Code golf]] * [[BioPerl]] == Altri progetti == {{interprogetto == Collegamenti esterni == * {{Collegamenti esterni}} * [http://www.perl.it http://www.perl.it]▼ * {{FOLDOC}} * [http://conferences.yapceurope.org/ipw2009 Italian Perl Workshop 2009]▼ * {{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 | 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|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}} Riga 151 ⟶ 156: {{portale|informatica}} [[Categoria:Perl| | |||