Home » Howtos » Perlfunc » Push function |
You can use the push
function to add new elements to the end of an array.
You can use push
to push an element onto the end of an array:
#!/usr/bin/perl use strict; use warnings; my @planets = qw(mercury venus earth mars); print "@planets\n"; push (@planets, 'jupiter'); print "@planets\n"; exit 0;
This program produces the following output:
mercury venus earth mars mercury venus earth mars jupiter
You can see that 'jupiter' is now on the end of our @planets
array.
The push
function returns the number of elements in the array after the new value(s) have been appended. If we wanted to see how many planets were in the modified @planets
array, we could change our code as follows:
#!/usr/bin/perl use strict; use warnings; my @planets = qw(mercury venus earth mars); print "@planets\n"; my $number_of_planets = push (@planets, 'jupiter'); print "@planets\n"; print "The number of planets is: $number_of_planets\n"; exit 0;
The output is now:
mercury venus earth mars mercury venus earth mars jupiter The number of planets is: 5
You can also use push
to append an array onto the end of another array:
#!/usr/bin/perl use strict; use warnings; my @planets = qw(mercury venus earth mars); my @outer_planets = qw(jupiter saturn uranus neptune pluto); print "@planets\n"; push (@planets, @outer_planets); print "@planets\n"; exit 0;
As the following output demonstrates, the @outer_planets
array has been added to the end of the @planets
array:
mercury venus earth mars mercury venus earth mars jupiter saturn uranus neptune pluto
You can use push
to append elements onto the end of a reference to an array, but you must dereference it first:
#!/usr/bin/perl use strict; use warnings; my @planets = qw(mercury venus earth mars); my $planets_ref = \@planets; push ( @{ $planets_ref }, qw(jupiter saturn uranus neptune pluto)); # Could also be written as: # push ( @$planets_ref, qw(jupiter saturn uranus neptune pluto)); print "@{ $planets_ref }\n"; # Could also be written as: # print "@$planets_ref\n"; exit 0;
This produces the following output:
mercury venus earth mars jupiter saturn uranus neptune pluto
perldoc -f push perldoc -f pop perldoc -f shift perldoc -f unshift perldoc -q "difference between a list and an array"