Push appends a value to the end of an array.

push The `push` function adds one or more values after the current last array element.

Array Append

extra
array_append.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my @fruits = ("apple", "pear");
my $extra = "plum";
push @fruits, $extra;
my $joined = join(",", @fruits);
my $last = $fruits[-1];

print "extra=$extra\n";
print "joined=$joined\n";
print "last=$last\n";
use strict;
use warnings;

my @fruits = ("apple", "pear");
my $extra = "kiwi";
push @fruits, $extra;
my $joined = join(",", @fruits);
my $last = $fruits[-1];

print "extra=$extra\n";
print "joined=$joined\n";
print "last=$last\n";
use strict;
use warnings;

my @fruits = ("apple", "pear");
my $extra = "mango";
push @fruits, $extra;
my $joined = join(",", @fruits);
my $last = $fruits[-1];

print "extra=$extra\n";
print "joined=$joined\n";
print "last=$last\n";
  1. @fruits ← 2, $extra ← plum, $joined ← apple,pear,plum, $last ← plum

    4my @fruits→ 2 = ("apple", "pear");5my $extra→ plum = "plum"; #@extra="kiwi", "mango"6push @fruits→ 3, $extraplum;7my $joined→ apple,pear,plum = join(",", @fruits3);8my $last→ plum = $fruits[-1]plum;910print "extra=$extraplum\n";11print "joined=$joinedapple,pear,plum\n";12print "last=$lastplum\n";
    outputextra=plum
    joined=apple,pear,plum
    last=plum
  1. @fruits ← 2, $extra ← kiwi, $joined ← apple,pear,kiwi, $last ← kiwi

    4my @fruits→ 2 = ("apple", "pear");5my $extra→ kiwi = "kiwi";6push @fruits→ 3, $extrakiwi;7my $joined→ apple,pear,kiwi = join(",", @fruits3);8my $last→ kiwi = $fruits[-1]kiwi;910print "extra=$extrakiwi\n";11print "joined=$joinedapple,pear,kiwi\n";12print "last=$lastkiwi\n";
    outputextra=kiwi
    joined=apple,pear,kiwi
    last=kiwi
  1. @fruits ← 2, $extra ← mango, $joined ← apple,pear,mango, $last ← mango

    4my @fruits→ 2 = ("apple", "pear");5my $extra→ mango = "mango";6push @fruits→ 3, $extramango;7my $joined→ apple,pear,mango = join(",", @fruits3);8my $last→ mango = $fruits[-1]mango;910print "extra=$extramango\n";11print "joined=$joinedapple,pear,mango\n";12print "last=$lastmango\n";
    outputextra=mango
    joined=apple,pear,mango
    last=mango

Push One Fruit

  1. @fruits starts with apple and pear.
  2. $extra is plum.
  3. push @fruits, $extra appends plum.
  4. $fruits[-1] reads the last value. | Step | Array contents | | --- | --- | | start | apple,pear | | after push | apple,pear,plum | | last value | plum |

Exercise: array_append.pl

Push one extra fruit onto an array, join the array, and print the last value