UP | HOME

Perl Tips

1. Basic

my @myarray = ();
│ push @myarray,"a";
my @keys = qw(a b c);
│ my @vals = (1, 2, 3);
│ my %hash;
│ @hash{@keys} = @vals;

2. Loop

# loop elements in itemArray1 and itemArray2foreach my $item (@itemArray1, @itemArray2) {
│   ...
│ }
│
│ while ( my ($key, $value) = each(%hash) ) {
│   print "$key => $value\n";
│ }

3. Sub

sub prepare_sth {
│   my $param = shift;  # means shift @_, @_ is param array# my $param = $_;   # when could use $_ ??
│ }
sub uniq {
│   @list = shift;
│   %seen = ();
│   @uniqu = grep { ! $seen{$_} ++ } @list;
│ }

4. Data Structure

4.1. AoA

from book

### Assign a list of array references to an array.
│ @AoA = (
│   │      [ "fred", "barney" ],
│   │      [ "george", "jane", "elroy" ],
│   │      [ "homer", "marge", "bart" ],
│ );
│ print $AoA[2][1];   # prints "marge"
│
│ ### Create an reference to an array of array references.
│ $ref_to_AoA = [
│   │ [ "fred", "barney", "pebbles", "bamm bamm", "dino", ],
│   │ [ "homer", "bart", "marge", "maggie", ],
│   │ [ "george", "jane", "elroy", "judy", ],
│ ];
│
│ print $ref_to_AoA->[2][3];   # prints "judy"

Remember that there is an implied -> between every pair of adjacent braces or brackets. (Simply saying, -> indicates a reference which created via []).

Therefore these two lines:

│ $AoA[2][3]
│ $ref_to_AoA->[2][3]

are equivalent to these two lines:

│ $AoA[2]->[3]
│ $ref_to_AoA->[2]->[3]

5. References