in reply to Re^2: Mutator chaining considered harmful
in thread Mutator chaining considered harmful
Re: And that's different from storing the result of a method (whether said method is a mutator or something else) in a variable, and call a method in said variable?
Yes, it is. Consider: $people->bob->eye('green')->color;. As a reader, I assume that the call is returning an 'eye' object, not bob, again. But if eye's a mutator, then you might find out Bob's a brown man.
Re: You mean, it makes it difficult to change a method such that has a different return value? Well, that always is non-backwards compatible. Whether the user chains, or stores the result in a variable and does something with the variable, it's going to be non-backwards compatible. In most cases you can make it backwards compatible through Want.pm. But perhaps, this is an issue of my style...?
Yes, it is. Consider: $people->bob->eye('green')->color;. As a reader, I assume that the call is returning an 'eye' object, not bob, again. But if eye's a mutator, then you might find out Bob's a brown man.
Re: You mean, it makes it difficult to change a method such that has a different return value? Well, that always is non-backwards compatible. Whether the user chains, or stores the result in a variable and does something with the variable, it's going to be non-backwards compatible. In most cases you can make it backwards compatible through Want.pm. But perhaps, this is an issue of my style...?
In Section
Meditations