On Aug 23, 2012, at 1:58 PM, Chris Stinemetz wrote:
>>
>>
>> If @coords is just an Array of Arrays then that should be:
>>
>> print grep { $_->[0] >= 0 } @coords;
>>
>>
>> Your example thinks @coords is an Array of Arrays of Arrays.
>>
>>
>> John
>> --
>>
>
> print grep { $_->[0] >= 0 } @coords;
>
> Just prints the memory adress:
> ARRAY(0x29d459c)ARRAY(0x29d462c)ARRAY(0x29d46cc)
>
> apparently I am not dereferencing the data structure correctly.
grep is a filter that will return any elements in @coords for which the test
expression is true. While you have dereferenced the array-of-arrays to evaluate
the expression, you will have to dereference it again to print the selected
data.
It might be easiest to save the selected references:
my @selected = grep { $_->[0] >= 0 } @coords;
then dereference the results:
print $_->[0] for @selected;
You could also combine print, grep, and map to accomplish the same thing.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/