-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


Funzioni Perl in italiano

indietro

  • use Modulo VERSIONE LISTA
  • use Modulo VERSIONE
  • use Modulo LISTA
  • use Modulo
  • use VERSIONE

    Importa nel package corrente alcune semantiche dal modulo indicato, in generale creando un alias per determinate subroutine all'interno del vostro package. È esattamente equivalente a:

        BEGIN { require Modulo; import Modulo LISTA; }

    tranne per il fatto che Modulo deve essere una bareword (*).

    VERSIONE può essere sia un argomento numerico come 5.006, il quale viene poi confrontato con $], oppure un valore testuale nella forma di v5.6.1, che viene poi confrontato con $^V (conosciuto anche come $PERL_VERSION). Se VERSIONE è più grande della versione dell'interprete Perl corrente, viene prodotto un errore bloccante al momento dell'esecuzione. Fate un confronto con require, che può compiere un controllo di questo tipo al momento dell'esecuzione.

    In genere, bisognerebbe evitare di specificare VERSIONE come un valore testuale nella forma v5.6.1, poiché ciò causa, sotto versioni vecchie del Perl che non supportano questa sintassi, dei messaggi di errore fuorvianti. Al suo posto dovrebbe essere usata la versione numerica.

        use v5.6.1;		# controllo di versione al momento della compilazione
        use 5.6.1;		# uguale
        use 5.006_001;	# uguale; preferibile per compatibilita` all'indietro

    Questo è spesso utile se avete bisogno di controllare la versione di Perl corrente prima prima di chiamare use per usare dei moduli di libreria che avere modificato in maniera incompatibile con le versioni più vecchie di Perl. (Cerchiamo di non fare questo più di quanto siamo costretti).

    Il blocco BEGIN forza require ed import ad essere eseguiti al momento della compilazione. L'istruzione require assicura che il modulo venga caricato in memoria, se non lo è già. L'istruzione import non è integrata in Perl--è semplicemente una normale chiamata ad un metodo statico all'interno del package Module, allo scopo di dire al modulo di importare la lista di caratteristiche nel package corrente. Il modulo può implementare il suo metodo import come desidera, anche se la maggior parte dei moduli decidono semplicemente di derivarlo, utilizzando l'ereditarietà, dalla classe Exporter definita nel modulo Exporter. Consultate Exporter. Se non si riesce a trovare alcun metodo import, la chiamata viene saltata.

    Se non volete chiamare il metodo import del package (per esempio allo scopo di evitare l'alterazione del vostro spazio dei nomi), fornite esplicitamente una lista vuota:

        use Modulo ();

    Questo equivale esattamente a

        BEGIN { require Modulo }

    Se tra Modulo e LISTA è presente l'argomento VERSIONE, allora use chiamerà il metodo VERSIONE nella classe Modulo passandogli come argomento la versione indicata. Il metodo di default VERSIONE, ereditato dalla classe UNIVERSAL, muore se la versione indicata è maggior del valore della variabile $Modulo::VERSIONE.

    Inoltre, c'è una distinzione tra omettere LISTA (import chiamata senza argomenti) ed un'esplicita LISTA vuota () (import non è chiamata). Va notato che non c'è alcuna virgola dopo VERSIONE!

    Siccome quest'interfaccia è molto aperta, i pragma (direttive del compilatore) sono anch'essi implementati in questo modo. Le direttive implementate al momento sono:

        use constant;
        use diagnostics;
        use integer;
        use sigtrap  qw(SEGV BUS);
        use strict   qw(subs vars refs);
        use subs     qw(afunc blurfl);
        use warnings qw(all);
        use sort     qw(stable _quicksort _mergesort);

    Alcuni di questi pseudomoduli importano le semantiche nel corrente blocco dello scope (ad esempio strict o integer, a differenza dei moduli ordinari che importano simboli nel package corrente (che hanno effetti fino alla fine del file)).

    C'è un corrispondente comando no che annulla l'importazione di quanto importate da use, cioè chiama unimport Modulo LISTA anziché import.

        no integer;
        no strict 'refs';
        no warnings;

    Consultate perlmodlib per una lista di moduli e di direttive standard. Consultate perlrun per le opzioni da linea di comando -M e -m, che rendono accessibili le funzionalità di use dalla linea di comando.

    (*) Letteralmente parola nuda, indica una parola che potrebbe essere la chiamata di una funzione (ma non ha né & all'inizio né () alla fine) ed è per questo ambigua per perl a tempo di compilazione. In assenza di use strict 'subs' (che genera errore) viene trattata come se fosse inclusa tra virgolette. [NdT]

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google