Since we're being facetious, here's my replacement for loops. (If Perl could evaluate
#!/your/perl/here
use strict;
use warnings;
# backwhack whitespace
my @data =
(
[
[1, 'Darth\ Vader'],
[3, 'Luke\ Skywalker'],
[5, 'Obi\ Wan\ Kenobi'],
],[
# note stray trailing blank here
[0, 'Lighsabre\ '],
[5, 'Blaster'],
[9, 'Rocket\ launcher'],
],[
[10, 'Dagobah'],
[14, 'Kashyyyk'],
],
);
# transpose innermost 2D matrices
my @new_data;
foreach my $set ( 0..$#data )
{
foreach my $pairs ( 0..$#{$data[$set]} )
{
foreach my $items ( 0..$#{$data[$set][$pairs]} )
{
$new_data[$set][$items][$pairs] = $data[$set][$pairs][$ite
+ms];
}
}
}
# comma-separated pattern specs for glob
$"=',';
# had to break this in two because of tab and newline issues
my $glob1 = "{@{$new_data[0][0]}}{@{$new_data[1][0]}}{@{$new_data[2][0
+]}}";
my $glob2 = "{@{$new_data[0][1]}}" . '\,\ ' . "{@{$new_data[1][1]}}" .
+ '\,\ ' . "{@{$new_data[2][1]}}";
my @glob1 = glob $glob1;
my @glob2 = glob $glob2;
print map {"$glob1[$_]\t$glob2[$_]\n"} 0..$#glob1;