This works:
my $usefulans;
foreach ( @$qablock ) {
if ( $$_[ 0 ] eq $answer ) {
$usefulans = [ @$_ ];
}
}
print "\t\t----> @$usefulans\n";
...but it is terribly inelegant. I would like to replace it with a simple
grep:
my $usefulans = grep { $$_[ 0 ] eq $answer } @$qablock;
print "\t\t----> @$usefulans\n";
...but nothing (and I mean NOTHING...I've tried every permutation I could imagine, even throwing a
map in for good measure) I do makes it work. No matter how I try to dereference the array of arrays, I end up with the reference address (e.g. "ARRAY(0x7fed6283b5d0)") instead of the legitimate list of data that I get from the
foreach above.
Am I stuck with the
foreach, because this is something that
grep just can't handle? Or is there something I'm doing wrong, which, done correctly, would make the
grep work?
Thanks in advance,
-Brian
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.