-+  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

  • dbmopen HASH,NOMEDB,MASCHERA

    [Questa funzione è stata ampiamente soppiantata dalla funzione tie].

    Questa funzione effettua un legame tra un file di tipo dbm(3), ndbm(3), sdbm(3), gdbm(3) oppure Berkeley DB in un hash. HASH è il nome dell'hash. (Diversamente dalla normale open, il primo argomento non è un filehandle, anche se ci assomiglia). NOMEDB è il nome del database (senza l'estensione .dir o .pag, se presente). Se il database non esiste, viene creato con una protezione specificata da MASCHERA (come modificato dalla funzione umask). Se il vostro sistema supporta solo le vecchie funzioni DBM, nel vostro programma potete effettuare solo una dbmopen. In vecchie versioni di Perl, se il vostro sistema non possedeva né DBM né ndbm, chiamare dbmopen produceva un errore bloccante; ora ciò ricade su sdbm(3).

    Se non avete accesso in scrittura sul file DBM, potete solo leggere i valori dell'hash e non impostarli. Se volete testare la possibilità di scrivere, usate o i test sui file oppure tentate di impostare l'elemento di un hash fittizio all'interno di un eval che catturerà l'errore.

    Va notato che le funzioni come keys e values possono restituire liste enormi quando sono usate su grandi file DBM. Potreste preferire l'uso della funzione each per iterare su grandi file DBM. Un esempio:

        # stampa gli scostamenti del file history
        dbmopen(%HIST,'/usr/lib/news/history',0666);
        while (($chiave,$val) = each %HIST) {
    	print $chiave, ' = ', unpack('L',$val), "\n";
        }
        dbmclose(%HIST);

    Consultate anche AnyDBM_File per una descrizione più generale sui pro e contro dei vari approcci dbm, come pure DB_File per una implementazione particolarmente ricca.

    Potete controllare che libreria DBM state usando tramite il caricamento della libreria prima di richiamare dbmopen():

        use DB_File;
        dbmopen(%NS_Hist, "$ENV{HOME}/.netscape/history.db")
    	or die "Non e` possibile aprire il file history di netscape: $!";
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