Here's what I came up with to "post-process" the array to get what I wanted:
#! /usr/bin/perl -w use strict; use Data::Dump qw(dump); my @src = ( "/projects/2138137193/iblab?ref=discovery", 2138137193, "iBlab", "/projects/2060538158/nz-hosting?ref=discovery", 2060538158, "NZ Hosting", "/projects/1956727289/how-to-build-a-spaceship?ref=discovery", 1956727289, "How To Build A Spaceship" ); my @dst = (); my $by = 3; my $len = @src / $by; die "Not an integral multiple\n" unless ( 0 == @src % $by ); for (my $i = 0; $i < $len; $i++) { push @dst, [ splice @src, 0, 3 ]; } dump \@dst;
The output:
[ [ "/projects/2138137193/iblab?ref=discovery", 2138137193, "iBlab", ], [ "/projects/2060538158/nz-hosting?ref=discovery", 2060538158, "NZ Hosting", ], [ "/projects/1956727289/how-to-build-a-spaceship?ref=discovery", 1956727289, "How To Build A Spaceship", ], ]
I don't know why but lately I've been in a mood to "do it in one statement" or "do it in place". So I have to ask: "Can this be done in-place with just one array?"
In reply to Re^3: What is Perl way to simultaneously assign to three separate arrays?
by CoVAX
in thread What is Perl way to simultaneously assign to three separate arrays?
by CoVAX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |