From: Larry Wall [EMAIL PROTECTED] > The default is pass-by-reference, but non-modifiable. If > there's a pass-by-value, it'll have to be specially requested > somehow. > > This is a minimal difference from Perl 5, in which everything > was pass-by-reference, but modifiable. To get pass-by-value, > you just do an assignment. :-)
Why? We could make arglists exactly equivilent to the way they're done in Perl 5, which is a good way. sub foo($a, $b, *@c) {...} Would be exactly equivilent to Perl 5's sub foo { my ($a, $b, @c) = @_; ... } Since variables are copy-on-write, you get the speed of pass-by-reference with the mutability of pass-by-value, which is what everyone wants. If you have this, why would you want to do enforced const reference? That's not rhetorical; I'm actually curious. Luke