On 12/5/05, Darren Duncan <[EMAIL PROTECTED]> wrote: > Under the current system, a subroutine argument is an alias for the > container passed to it;
The most immediate offender here is the referential passing semantics. Here is a code case: sub foo ($x, &code) { &code(); say $x; } my $bar = 41; foo($bar, { $bar++ }); As far as I recall, the spec says that this should output "42". My intuition tells me that it should output "41". In fact, most modern languages (python, java, ...) would consider it to be "41". They have "assignment" semantics, rather than "binding" semantics. What was the reason for choosing binding semantics? Luke