ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | Introduzione | Panoramica | Form | Analisi Log | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Tutorial Perl
PRIMI PASSI CON IL PERL
Un esempio patico
IL LINGUAGGIO
VARIABILI E TIPI DI DATO
ESPRESSIONI REGOLARI
Le espressioni regolari del Perl.
BUILT-IN, LIBRERIA STANDARD ED ESTENSIONI
I moduli standard di libreria inclusi col Perl 5.001.
CONCLUSIONI


<<< I moduli standard di libreria inclusi col Perl 5.001. >>>
File/Basename

File/CheckTree
File/Find
File/Path
Getopt/Long
Getopt/Std
I18N/Collate
IPC/Open2
IPC/Open3
Math/BigFloat
Math/BigInt
Math/Complex
Net/Ping
Search/Dict
Sys/Hostname
Sys/Syslog
Term/Cap
Term/Complete
Test/Harness
Text/Abbrev
Text/ParseWords
Text/Soundex
Text/Tabs

Time/Local
AnyDBM_File
AutoLoader
AutoSplit
Benchmark
Carp
Cwd
DB_File
DynaLoader
English
Env
Exporter
Fcntl
FileHandle
GDBM_File
POSIX
SDBM_File
Shell
Socket
SubstrHash
TieHash

Occorre distinguere tra keyword di controllo del flusso ("if", "while", "for", eccetera) dalle funzioni built-in ("print", "split", "stat") che sono compilati con l'interprete, dalle chiamate di libreria ("find").

Il perl ha una nutrito set di funzioni built-in, che da sole sostituiscono gran parte dei comandi e delle chiamate di sistema Unix. L'insieme è molto potente e ogni comando è ben congegnato per assumere come default i parametri più comuni; per parafrasare Larry, "in generale, essi (i comandi) fanno ciò che vuoi, a meno che non voglia consistenza".

Le funzioni built-in sono tutte rigorosamente Unix-like, anche nelle versioni non-Unix del Perl (un qualche standard bisogna pur fissarlo). Ci sono varie funzioni su stringhe (split, chop, substr, chr...), array (push, pop, shift, unshift, join) e hash (keys, values, each...). Poi ci sono funzioni per trattare i file (chdir, unlink, mkdir, rmdir, rename, chmod...), i processi (fork, wait, kill...), i socket (bind, connect, listen...) e vari test su file (-e, -z, -M...), compreso un test "euristico" per stabilire se un file è binario oppure no (-T, -B). Ci sono anche funzioni analoghe a comandi Unix (grep, sort, tr). Da citare ancora la open che consente di aprire non solo file ma anche connessioni di rete e perfino eseguire un altro comando leggendone l'output come se fosse un file.

La libreria standard è scritta in Perl, ed è naturalmente in sorgente: comprende molte funzioni che servono ma che non ha senso avere come built-in o che, per ragioni di portabilità non è oppurtuno avere come built-in. Per esempio la funzione che restituisce la directory corrente non è tra i built-in ma nella libreria standard: varia tra i vari sistemi operativi, ed è più semplice implementarla caso per caso direttamente in Perl.

Come tutto in Perl, il contenuto della libreria standard è molto pratico. La find usata nell'esempio iniziale fa parte della libreria, come pure ne fanno parte il meccanismo di gestione dei file di database tramite hash (il meccanismo della "tie" citato prima). Per la precisione la "tie" è un built-in che si appoggia a dei moduli che implementano certe funzioni. Abbiamo (citiamo a campione casuale): un modulo per analizzare i parametri (Getopt), moduli per interagire con altri programmi (Open2 e Open3 che generalizzano il meccanismo della open), gestione di interi, float e numeri complessi di dimensione arbitraria (BigInt, BigFloat, Complex), benchmarking (Benchmark), informazioni sul sistema (Hostname, Syslog), eccetera eccetera.

Ricordiamo anche le innumerevoli estensioni del perl: prima di tutto quelle per la gestione di database: "oraperl" per il collegamento a database Oracle, "syperl" per il collegamento a Sybase, e mi fermo qui perchè la lista è lunga. Il perl è molto adatto per l'interazione con i database, e siccome le varie implementazioni sono difformi tra di loro, è nato un progetto che mira a standardizzare l'interfaccia a database del Perl. Lo standard è denominata DBI (DataBase Interface) e si basa sullo SQL; le varie implementazioni sono dette DBD (database driver). Qualche implementazione è già in beta ma molte sono in alpha o in costruzione.

Ci sono vari perl con estensioni per la gestione dell'interfaccia utente. Ci limitiamo a citare il TkPerl, un perl con i built-in per l'uso della libreria grafica freeware Tk, molto ben fatta e potente, che accompagna il linguaggio Tcl. Questa libreria ha contribuito molto al successo del Tcl (da più parti definito il Visual Basic di Unix), e il TkPerl consente l'uso del Tk direttamente da Perl.

Infine naturalmente ci sono moltissimi script e moduli in Perl disponibili: quasi tutto quanto è disponibile è raccolto in un archivio detto CPAN (Comprensive Perl Archive Network) del quale esistono innumerevoli mirror sparsi per il mondo. Per cercare materiale sul Perl comunque un buon inizio è "http://www.perl.com".

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com