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

  • getgrnam NOME
  • gethostbyname NOME
  • getnetbyname NOME
  • getprotobyname NOME
  • getpwuid UID
  • getgrgid GID
  • getservbyname NOME,PROTO
  • gethostbyaddr INDIR,TIPOINDIR
  • getnetbyaddr INDIR,TIPOINDIR
  • getprotobynumber NUMERO
  • getservbyport PORTA,PROTO
  • getpwent
  • getgrent
  • gethostent
  • getnetent
  • getprotoent
  • getservent
  • setpwent
  • setgrent
  • sethostent RIMANI_APERTO
  • setnetent RIMANI_APERTO
  • setprotoent RIMANI_APERTO
  • setservent RIMANI_APERTO
  • endpwent
  • endgrent
  • endhostent
  • endnetent
  • endprotoent
  • endservent

    Queste routine compiono le stesse funzioni delle loro controparti nella libreria di sistema. In un contesto di lista, restituiscono i valori dalle varie routine di get [ottenere, NdT], come segue:

        ($nome,$passwd,$uid,$gid,
           $quota,$commento,$gcos,$dir,$shell,$scadenza) = getpw*
        ($nome,$passwd,$gid,$members) = getgr*
        ($nome,$alias,$tipoind,$lungh,@indirizzi) = gethost*
        ($nome,$alias,$tipoind,$net) = getnet*
        ($nome,$alias,$proto) = getproto*
        ($nome,$alias,$porta,$proto) = getserv*

    (Se la voce non esiste, otterrete una lista nulla).

    L'esatto significato del campo $gcos varia ma di solito esso contiene il vero nome dell'utente (rispetto al nome del login) e altre informazioni pertinente all'utente. Fate attenzione, comunque, che su molti sistemi gli utenti sono in grado di cambiare queste informazioni e dunque ciò non può essere verificato e dunque $gcos è un dato potenzialmente dannoso (taint) (consultate perlsec). $passwd e $shell, la password cifrata dell'utente e la shell di login sono anch'esse dei dati potenzialmente dannosi per il medesimo motivo.

    In contesto scalare, otterrete il nome a meno che la funzione non sia ottenuta con una ricerca per nome, nel qual caso otterrete l'altra cosa, qualunque essa sia (se l'elemento non esiste, otterrete il valore indefinito). Per esempio:

        $uid   = getpwnam($nome);
        $nome  = getpwuid($num);
        $nome  = getpwent();
        $gid   = getgrnam($nome);
        $nome  = getgrgid($num;
        $nome  = getgrent();
        #ecc.

    In getpw*(), i campi $quota, $commento e $scadenza sono casi speciali nel senso che in molti sistemi non sono supportati. Se $quota non è supportato, è uno scalare vuoto. Se è supportato, di solito codifica il valore della quota del disco. Se $commento non è supportato, è uno scalare vuoto. Se è supportato di solito codifica dei commenti amministrativi sull'utente. In alcuni sistemi il campo $quota può essere $cambiamento oppure $eta, campi che hanno a che fare con l'obsolescenza delle password. In alcuni sistemi, il campo $commento può essere $classe. Il campo $scadenza, se presente, codifica il periodo di scadenza dell'account o della password. Per la disponibilità e l'esatto significato di questi campi nel vostro sistema, consultate la documentazione di getpwnam(3) e il file pwd.h. Potete anche scoprire dall'interno del Perl che significato hanno i vostri $quota e $commento e se possedete il campo $expire, tramite l'utilizzo del modulo Config e i valori d_pwquota, d_pwage, d_pwchange, d_pwcomment e d_pwexpire. I file con le password shadow sono supportati solo se l'azienda produttrice di software che vi fornisce li ha implementati in quel modo intuitivo che, chiamando le routine della libreria C usuale, ottiene le versioni shadow se siete in esecuzione con i privilegi o se esistono le funzioni shadow(3) come si trovano in System V (questo include Solaris e Linux). Quei sistemi che implementano un'infrastruttura proprietaria per le password shadow è improbabile che siano supportati.

    Il valore di $members restituito da getgr*() è una lista separata da spazi dei nomi di login dei membri del gruppo.

    Per le funzioni gethost*(), se la variabile h_errno è supportata in C, vi sarà restituita attraverso $? se la chiamata di funzione fallisce. Il valore @addrs restituito da una chiamata che ha avuto successo è una lista di indirizzi grezza, restituita dalla corrispondente chiamata della libreria di sistema. In ambito Internet, ogni indirizzo è lungo 4 byte e potete effetturare unpack su esso scrivendo qualcosa come:

        ($a,$b,$c,$d) = unpack('C4',$ind[0]);

    La libreria Socket rende questo un po' più facile:

        use Socket;
        $indint = inet_aton("127.1"); # o qualsiasi indirizzo
        $nome  = gethostbyaddr($indint, AF_INET);
        # oppure andando nell'altro verso
        $strind = inet_ntoa($indint);

    Se siete stanchi di tenere a mente quali valori corrispondono a quali elementi della lista restituita, vengono fornite delle interfaccie per nome nei moduli standard: File::stat, Net::hostent, Net::netent, Net::protoent, Net::servent, Time::gmtime, Time::localtime e User::grent. Queste si sovrappongono alle normali funzioni interne, fornendo versioni che restituiscono oggetti con i nomi appropriati per ogni campo. Per esempio:

       use File::stat;
       use User::pwent;
       $suo = (stat($nomefile)->uid == pwent($chiunque)->uid);

    Anche se sembra che siano gli stessi metodi di chiamata (uid), non lo sono perché un oggetto File::stat è diverso da un oggetto User::pwent.

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