My comments on the article:
typed lexicals are great. they will reduce memory and increase speed. And allow Perl to even more powerfully bridge the gap between shell and C that perl was designed to.
Damian sayeth like most other global punctuation variables, $/ has been banished from Perl 6
I guess that means bye-bye to a lot of obfuscated Perl code. The globals really never affect most people's lives anway, except $|
Damian sayeth (in Perl 6 -> is spelled .)
Hmm, we have tons of code using ->. Also, the arrow stands out better. Whats purpose of this change? I don't like it.
Damian sayeth The call to $node.Found would normally be a method call (in Perl 6 -> is spelled .). But since $node is just a regular unblessed hash, there is no Found method to call. So Perl treats the request as a property query instead and returns (an alias to) the corresponding property.
This is an interesting fall-through property. But does it mean that execution time increases because it starts making run-time checks for methods before doing a hash lookup?
Damian sayeth But then the serpent of OO entered the garden, and offered Perlkind the bitter fruit of subroutine and method calls:
print $subref->();
print $objref->method();
Now the leading $ no longer indicated the type of value returned. And in beginners' Perl classes across the land there arose a great wailing and a gnashing of teeth.
Wow, for all my efforts to detect inconsistencies in Perl, it never occurred to me that the dollar sign should by arguments of context imply a scalar return value. It was just so natural to use I never thought of how it broke that rule.
I dont believe Damian mentioned how method calls
would imply the type of their return values did he? Nothing like
@objref->method()
is on the horizon is it?