in reply to Ex6: Using "is" on aliased sub parameters?
Makes sense to me.
(The only way i can think of that it might work, is if the is SomeClass attribute of a parameter indicates that an exception should be thrown if something other then SomeClass is passed in -- but that seems like a non-standard use of the "is" keyword)
That's pretty much how it works (as I understand it), but it's only a side-effect of the fact that you're giving the parameter a type. That is, it's standard in the same way that:
my SomeClass $foo; # a.k.a. my $foo is SomeClass; my SomeOtherClass $bar = stuff(); $foo = $bar; # compile-time exception
producing an exception is standard when SomeOtherClass is not a child of SomeClass. It just has the benefit of letting us make the compiler enforce some of the "correctness" of the passed values.
Again, this is just how I understand it from the Exegesis and Apocolypse. I could be horribly wrong, of course. :)
Update: Re: The sub parameter being an alias. Am I correct in remembering that one of the Apocolypses indicated that the properties (such as type; or it may have just been the type) are properties of the name we give the variables, and not the actual value/container? This is why the fact that the parameter is just an alias doesn't bother me.
bbfu
Black flowers blossom
Fearless on my breath
|
|---|