http://qs321.pair.com?node_id=11106658


in reply to Re: "Nonliteral literal" is just an expression.
in thread "Nonliteral literal" is just an expression.

What's wrong with the "less helpful" template?

That is the interesting part. And it surprises me that I have never been caught by this in my years of occasional programming. I am still chewing on that aspect.

Both approaches return the same result.

Not quite, your tests are flawed. I wanted references to the same memory objects ("thingie" is out of style?) so running @flat through both your and my code is suspect on its face. When I comment out the while loop I don't get a happy result.

On a side note: In the "not-thinking" part I started on a recursive solution; when I hit some snags and applied some thought map seemed a clear win. I should study the methods to go from one to the other: iter. vs. recurs.

Using a shorter array:

my $ar = [ [ 'a', ], [ 'b, 'c', ], ]; my $flat = flat( $ar ); print Dumper $ar, $flat;
should yield:
$VAR1 = [ [ 'a' ], [ 'b', 'c' ] ]; $VAR2 = [ \$VAR1->[0][0], \$VAR1->[1][0], \$VAR1->[1][1] ];