Camelia

push vs. append on arrays in Perl 6

push treats the supplied parameters as individual entities and pushes them onto the original array without flattening them.

append (introduced new after 2015.09 release) will flatten the supplied array - if there was only one array supplied, but will reat them as individual entities if more than one arrays are supplied.

Note! This site is about Perl 6.
If you are looking for a solution for the current production version of Perl 5, please check out the Perl 5 tutorial.

examples/push_array.pl6

use v6;

my @a = ('foo', 'bar');
say @a.perl;       # ["foo", "bar"]

my @b;
@b.push: @a;
say @b.perl;       # [["foo", "bar"],]

my @c;
@c.append: @a;
say @c.perl;       # ["foo", "bar"]

@b.push: @a;
say @b.perl;       #  [["foo", "bar"], ["foo", "bar"]]

@c.append: @a;
say @c.perl;       # ["foo", "bar", "foo", "bar"]

my @x = ('abc', 'def');

my @d;
@d.push: @a, @x;
say @d.perl;       # [["foo", "bar"], ["abc", "def"]]

my @e;
@e.append: @a, @x;
say @e.perl;       # [["foo", "bar"], ["abc", "def"]]


The Perl 6 Tricks and Treats newsletter has been around for a while. If you are interested to get special notification when there is new content on this site, it is the best way to keep track:
Email:
Full name:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2015-10-11



Comments

In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 3.6887277

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.
Email:
Name: