note
leriksen
I am getting slightly different behaviours depending on whether I use<code>
screwed $_;
</code>or<code>
screwed "$_";
</code>I use AS 5.6.1<br>In the first, screwed()::@_ gets clobbered, in the second screwed()::@_ is OK, but @instances is still clobbered.<br><br>
And if I could just add, to the original poster, that <code>
map {function($_)} @array;
</code>
is generally frowned upon - map returns a list, and by not having map on the RHS of an assignment<code>
@result_set = map {function($_)} @array
</code>, that list is considered being used in a void context. This means, in this case, all the hard work of creating a list of results via the map is wasted, the list is thrown away. Because screwed() doesn't explicitly return a value, it defaults to using the return value of the close() statement at the end of the sub. If you really dont care about the return values of applying a function using the elements of an array as parameters, it is 'better'(tm) to use this idiom<code>
foreach (@array) {sub_without_meaningful_return($_)}
</code>This makes it clear that the function has side-effects - that is, the function uses and possibly changes some variable outside its scope- in screwed()'s case, STDOUT is used.<br>merlyn has lectured me once on this - so I now pass this on.
281699
281699