Chap Harrison wrote:
On Apr 1, 2009, at 2:04 PM, Chas. Owens wrote:
If I understand you correctly, you want a map[1] that feeds a join[2]:
#!/usr/bin/perl
use strict;
use warnings;
my @aref = (
[qw/a1 b1 c1/],
[qw/a2 b2 c2/],
[qw/a3 b3 c3/],
);
print join(", ", map { "($_->[0]=$_->[2])" } @aref), "\n";
Well, that certainly did what I needed. Thanks.
I was getting tangled up with the complexities of addressing the various
things inside the "table". Here, for no particular purpose, are a few
experiments I did:
#!/usr/bin/perl
use strict;
use warnings;
my @ary = ( # non-square so I fail if I switch row & column accidentally
[qw/a1 b1 c1 d1/],
[qw/a2 b2 c2 d2/],
[qw/a3 b3 c3 d3/],
);
my $a_ref = \...@ary; # Simulate a ref to a row set returned by DBI
Or simply:
my $a_ref = [
[qw/a1 b1 c1 d1/],
[qw/a2 b2 c2 d2/],
[qw/a3 b3 c3 d3/],
];
# Demonstrate that one deref. takes us to array of three refs
print q/Printing @$a_ref to show it's an array of three refs:/,
"\...@$a_ref\n\n";
print "Show slices of each row:\n";
for my $j (@$a_ref) { # Iterates thrice; each time, $j is
ref to horiz. array
print "($j->[0], $j->[3])\n"; # use '->[]' to get to the contents:
scalar, so use '$'
}
print "\nPractice navigating to places in the table with one
expression:\n";
print q/$a_ref =/, "$a_ref\n"; # Ref to the
"vertical" array
print q/@$a_ref =/, "@$a_ref\n"; # The vertical array
itself?
print q/$$a_ref[2] =/, "$$a_ref[2]\n"; # Element 2 of the
vertical array
Usually written as:
print q/$a_ref->[2] =/, "$a_ref->[2]\n";
print q/@{$$a_ref[2]} =/, "@{$$a_ref[2]}\n"; # Horizontal array 2
(all three elements)
Actually array 3, indexes start at 0.
print q/${$$a_ref[2]}[3] =/, "${$$a_ref[2]}[3]\n"; # Cell [2][3]
print "Can the last one be simplified any?\n"; #
Yes.
print q/$a_ref->[2][3] =/, "$a_ref->[2][3]\n";
John
--
Those people who think they know everything are a great
annoyance to those of us who do. -- Isaac Asimov
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/