POD2-IT

 view release on metacpan or  search on metacpan

IT/perldata.pod  view on Meta::CPAN

Anche l'assegnazione ad una lista (o I<slice>, che E<egrave> comunque una
lista) valutano la parte destra in contesto lista.

Quando utilizzate la direttiva C<use warnings> o l'opzione a linea
di comando B<-w>, potreste vedere degli avvertimenti riguardo l'uso
inutile ["useless use" nel messaggio, N.d.T.] di costanti o funzioni
in "contesto void" [letteralmente "vuoto", ma si preferisce lasciare
l'originale in inglese viste anche le similitudini con il tipo I<void>
disponibile in C. N.d.T.]. Il contesto void significa semplicemente che il
valore E<egrave> stato gettato via, come in un'istruzione che contiene solo
C<"fred";> o C<getpwuid(0);>. Conta comunque come contesto scalare
per funzioni che fanno distinzione fra l'essere chiamate o meno
in contesto lista.

Le funzioni definite da utente possono scegliere di comportarsi
differentemente se sono chiamate in contesto void, scalare o lista.
La maggior parte delle funzioni non avranno perE<ograve> bisogno di
preoccuparsene, poichE<eacute> sia scalari che liste sono automaticamente
interpolati in liste. Consultate L<perlfunc/wantarray> per sapere
come fare a stabilire dinamicamente in quale contesto E<egrave> stata chiamata
la vostra funzione.

IT/perlfaq3.pod  view on Meta::CPAN

    # identifica i file di testo
    perl -le 'for(@ARGV) {print if -f && -T _}' *

    # rimuove (la maggior parte de) i commenti dal programma C
    perl -0777 -pe 's{/\*.*?\*/}{}gs' pippo.c

    # cambia la data di un file ad un mese prima, sconfiggendo i reaper deamon
    perl -e '$X=24*60*60; utime(time(),time() + 30 * $X,@ARGV)' *

    # trova il primo uid inutilizzato
    perl -le '$i++ while getpwuid($i); print $i'

    # visualizza il path delle pagine man
    echo $PATH | perl -nl -072 -e '
        s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'

OK, l'ultimo in realtE<agrave> partecipava all'Obfuscated Perl Contest. :-)

=head2 PerchE<eacute> gli one-liner Perl non funzionano sul mio sistema DOS/Mac/VMS?

Di solito il problema E<egrave> che l'interprete dei comandi di questi

IT/perlfaq9.pod  view on Meta::CPAN

approccio piE<ugrave> diretto E<egrave> quello di usare il formato "u"
della funzione unpack() dopo una semplice translitterazione:

    tr#A-Za-z0-9+/##cd;          	  # rimuove i caratteri non base64
    tr#A-Za-z0-9+/# -_#;                  # converte nel formato uuencode
    $lungh = pack("c", 32 + 0.75*length); # calcola la lunghezza in byte
    print unpack("u", $len . $_);         # effettua l'uudecode e stampa

=head2 Come ottengo l'indirizzo e-mail dell'utente?

Sui sistemi che supportano getpwuid, la variabile $<, ed il modulo 
Sys::Hostname (che E<egrave> incluso nella distribuzione standard del perl),
potete probabilmente provare ad utilizzare qualcosa come:

    use Sys::Hostname;
    $address = sprintf('%s@%s', scalar getpwuid($<), hostname);

Le politiche aziendali sugli indirizzi e-mail possono far sE<igrave> che questo
codice generi indirizzi che il sistema di posta aziendale non accetta,
dunque dovrete chiedere gli indirizzi direttamente agli utenti, quando vi servono. 
Inoltre, non tutti i sistemi su cui gira Perl rendono disponibili
queste informazioni come fa Unix.

Il modulo Mail::Util da CPAN (parte del pacchetto MailTools) fornisce una
funzione mailaddress() che cerca di supporre l'indirizzo e-mail dell'utente.
La supposizione E<egrave> piE<ugrave> intelligente rispetto al codice sopra

IT/perlfunc.pod  view on Meta::CPAN

X<IPC> X<System V> X<semaforo> X<memoria condivisa> X<memoria> X<messaggio>

C<msgctl>, C<msgget>, C<msgrcv>, C<msgsnd>, C<semctl>, C<semget>, C<semop>,
C<shmctl>, C<shmget>, C<shmread>, C<shmwrite>

=item Recupero delle informazioni dell'utente e del gruppo
X<user> X<group> X<password> X<uid> X<gid> X<passwd> X</etc/passwd>

C<endgrent>, C<endhostent>, C<endnetent>, C<endpwent>, C<getgrent>,
C<getgrgid>, C<getgrnam>, C<getlogin>, C<getpwent>, C<getpwnam>,
C<getpwuid>, C<setgrent>, C<setpwent>

=item Recupero delle informazioni di rete
X<rete> X<protocollo> X<host> X<nome dell'host> X<IP> X<indirizzo> X<servizio>

C<endprotoent>, C<endservent>, C<gethostbyaddr>, C<gethostbyname>,
C<gethostent>, C<getnetbyaddr>, C<getnetbyname>, C<getnetent>,
C<getprotobyname>, C<getprotobynumber>, C<getprotoent>,
C<getservbyname>, C<getservbyport>, C<getservent>, C<sethostent>,
C<setnetent>, C<setprotoent>, C<setservent>

IT/perlfunc.pod  view on Meta::CPAN

alcune di queste chiamate potrebbe non essere disponibile, oppure i dettagli 
potrebbero essere un po' diversi. Le funzioni Perl influenzate da questo aspetto 
sono:

C<-X>, C<binmode>, C<chmod>, C<chown>, C<chroot>, C<crypt>,
C<dbmclose>, C<dbmopen>, C<dump>, C<endgrent>, C<endhostent>,
C<endnetent>, C<endprotoent>, C<endpwent>, C<endservent>, C<exec>,
C<fcntl>, C<flock>, C<fork>, C<getgrent>, C<getgrgid>, C<gethostbyname>,
C<gethostent>, C<getlogin>, C<getnetbyaddr>, C<getnetbyname>, C<getnetent>,
C<getppid>, C<getpgrp>, C<getpriority>, C<getprotobynumber>,
C<getprotoent>, C<getpwent>, C<getpwnam>, C<getpwuid>,
C<getservbyport>, C<getservent>, C<getsockopt>, C<glob>, C<ioctl>,
C<kill>, C<link>, C<lstat>, C<msgctl>, C<msgget>, C<msgrcv>,
C<msgsnd>, C<open>, C<pipe>, C<readlink>, C<rename>, C<select>, C<semctl>,
C<semget>, C<semop>, C<setgrent>, C<sethostent>, C<setnetent>,
C<setpgrp>, C<setpriority>, C<setprotoent>, C<setpwent>,
C<setservent>, C<setsockopt>, C<shmctl>, C<shmget>, C<shmread>,
C<shmwrite>, C<socket>, C<socketpair>,
C<stat>, C<symlink>, C<syscall>, C<sysopen>, C<system>,
C<times>, C<truncate>, C<umask>, C<unlink>,
C<utime>, C<wait>, C<waitpid>

IT/perlfunc.pod  view on Meta::CPAN

caratteri, i quali devono appartenere all'insieme C<[./0-9A-Za-z]> 
(come C<join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]>). 
Questo insieme di caratteri E<egrave> solo una raccomandazione; i 
caratteri permessi nel seme dipendono esclusivamente dalla vostra 
libreria crypt di sistema, e il Perl non puE<ograve> limitare i semi 
accettati da C<crypt()>.

Ecco un esempio che ci assicura che chiunque faccia girare questo 
programma conosca la propria password:

    $pwd = (getpwuid($<))[1];

    system "stty -echo";
    print "Password: ";
    chomp($parola = <STDIN>);
    print "\n";
    system "stty echo";

    if (crypt($parola, $pwd) ne $pwd) {
        die "Spiacente...\n";
    } else {

IT/perlfunc.pod  view on Meta::CPAN

passare per essere conformi a POSIX. Date un'occhiata anche 
al modulo C<Term::ReadKey>, dal piE<ugrave> vicino sito 
CPAN; dettagli su CPAN possono essere trovati su 
L<perlmodlib/CPAN>.

=item getlogin
X<getlogin> X<login>

Implementa la funzione della libreria C che ha lo stesso nome, 
la quale su molti sistemi restituisce il login corrente da 
F</etc/utmp>, se presente. Se non presente, usate C<getpwuid>.

    $login = getlogin || getpwuid($<) || "Kilroy";

Non prendete in considerazione C<getlogin> per l'autenticazione: 
non E<egrave> sicura quanto C<getpwuid>. 

=item getpeername SOCKET
X<getpeername> X<peer>

Restituisce l'indirizzo compattato (sockaddr) dell'altro capo della 
connessione SOCKET.

    use Socket;
    $suosockaddr         = getpeername(SOCK);
    ($porta, $indirizzo) = sockaddr_in($suosockaddr);

IT/perlfunc.pod  view on Meta::CPAN

=item getpriority QUALE,CHI
X<getpriority> X<priorita`> X<nice>

Restituisce la prioritE<agrave> corrente per un processo, un gruppo di 
processi, o un utente. (Consultate L<getpriority(2)>). SolleverE<agrave> 
un'eccezione bloccante se usata in una macchina che non implementa 
getpriority(2).

=item getpwnam NOME
X<getpwnam> X<getgrnam> X<gethostbyname> X<getnetbyname> X<getprotobyname>
X<getpwuid> X<getgrgid> X<getservbyname> X<gethostbyaddr> X<getnetbyaddr>
X<getprotobynumber> X<getservbyport> X<getpwent> X<getgrent> X<gethostent>
X<getnetent> X<getprotoent> X<getservent> X<setpwent> X<setgrent> X<sethostent>
X<setnetent> X<setprotoent> X<setservent> X<endpwent> X<endgrent> X<endhostent>
X<endnetent> X<endprotoent> X<endservent>

=item getgrnam NOME

=item gethostbyname NOME

=item getnetbyname NOME

=item getprotobyname NOME

=item getpwuid UID

=item getgrgid GID

=item getservbyname NOME,PROTO

=item gethostbyaddr INDIR,TIPOINDIR

=item getnetbyaddr INDIR,TIPOINDIR

=item getprotobynumber NUMERO

IT/perlfunc.pod  view on Meta::CPAN

E<egrave> un dato potenzialmente dannoso (taint) (consultate L<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 I<getpw*()>, i campi $quota, $commento e $scadenza sono casi 
speciali nel senso che in molti sistemi non sono supportati. Se 
$quota non E<egrave> supportato, E<egrave> uno scalare vuoto. 
Se E<egrave> supportato, di solito codifica il valore della quota 



( run in 0.448 second using v1.01-cache-2.11-cpan-454fe037f31 )