post h1 Guida Perl: come manipolare gli array. ~ Ubuntulandiapost h1

settembre 08, 2014

Guida Perl: come manipolare gli array.

| No comment


Oltre a permettere l'accesso diretto a singoli elementi di un array, Perl fornisce altri interessanti modi per interagire con tali strutture dati. In particolare, esistono funzioni che rendono molto efficiente l'uso di un array in Perl per implementare una coda o uno stack.

Pop.

La funzione pop rimuove e restituisce l'ultimo elemento di un array.

In questo primo esempio, dato un array di tre elementi, la funzione pop rimuove l'ultimo elemento (l'elemento con indice massimo) e lo restituisce.

    my @names = ('Foo', 'Bar', 'Baz');
    my $last_one = pop @names;
    
    print "$last_one\n"; # Baz
    print "@names\n"; # Foo Bar

Nel caso particolare in cui l'array di origine fosse vuoto, la funzione pop ritornerà undef.

perl-camel-source-code

Push.

La funzione push aggiunge uno o più elementi in coda ad un array. (Beh, in realtà può anche aggiungere zero elementi, ma non sembra una cosa molto utile di per sé).

    my @names = ('Foo', 'Bar');
    push @names, 'Moo';
    print "@names\n"; # Foo Bar Moo
    
    my @others = ('Darth', 'Vader');
    push @names, @others;
    print "@names\n"; # Foo Bar Moo Darth Vader

In questo esempio, partiamo da un array di due elementi. Attaverso push "spingiamo" un singolo scalare in coda al nostro array, che viene esteso così a tre valori.

Con la seconda chiamata a push, abbiamo spinto il contenuto dell'array @others in coda all'array @names, cosicché quest'ultimo è ora un array di cinque elementi.

Shift.

La funzione shift trasla l'intero array verso sinistra, se assumiamo l'array cominciare dal lato sinistro e crescere verso destra. L'elemento che era al primo posto nell'array "cade giù" dall'array e diventa il valore di ritorno della funzione. (Se l'array è vuoto, shift restituisce undef).

Al termine dell'operazione, l'array sarà più corto di un elemento.

    my @names = ('Foo', 'Bar', 'Moo');
    my $first = shift @names;
    print "$first\n"; # Foo
    print "@names\n"; # Bar Moo

Questo è analogo a pop, ma funziona dal lato minore dell'array.

Unshift.

La funzione unshift è l'operazione inversa di shift: prende uno o più valori (o nessun valore, se ci tieni) e lo inserisce all'inizio dell'array, spostando gli elementi preesistenti verso destra.

Gli argomenti di unshift possono essere un singolo scalare, nel qual caso quel valore diventerà il primo elemento dell'array; o, come si vede nel secondo esempio, un secondo array. In questo caso, gli elementi del secondo array (@others nel nostro caso) saranno copiati in testa al primo array (@names nel nostro caso), spostando gli alti elementi in posizioni maggiori.

    my @names = ('Foo', 'Bar');
    unshift @names, 'Moo';
    print "@names\n"; # Moo Foo Bar
    
    my @others = ('Darth', 'Vader');
    unshift @names, @others;
    print "@names\n"; # Darth Vader Moo Foo Bar

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

, , , ,

Nessun commento:

Posta un commento

Caricamento in corso...

Ultimi post pubblicati

Archivio

Ubuntulandia in Instagram

>center>

Post Più Popolari