in reply to Re^6: why doesn't "my ($a,$b)" return a list?
in thread why doesn't "my ($a,$b)" return a list?
my (@a,$b,%h) behaves like a function with infinte prototype [(\[@$%];\[@$%]\[@$%]...]
No references are taken. So that's both an inaccurate and a very complex way of thinking about it. It's much simpler to think of it as taking a list of variables.
(That's why I didn't understanding what he meant by flattening: Nothing can be flattened into variables.)
If parsing rules are different, so why not the behaviour in scalar context, too?
It's possible. The parser converts qw( ... ) into a list. It could convert my (...) into a list of simple my expressions. In fact, it does that already, but it does it specially so the code behaves as if my was a function.
But why would you want to make my() behave differently than foo(). That doesn't remove confusion or problems. It adds to them.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^8: why doesn't "my ($a,$b)" return a list?
by LanX (Saint) on Aug 19, 2010 at 21:02 UTC | |
by ikegami (Patriarch) on Aug 19, 2010 at 21:18 UTC | |
by LanX (Saint) on Aug 19, 2010 at 21:30 UTC | |
by ikegami (Patriarch) on Aug 19, 2010 at 23:05 UTC | |
by LanX (Saint) on Aug 19, 2010 at 23:34 UTC | |
|