$self->foo(123) # chaining of mutator calls
this always gave me the heebies because returning the object for success seems a little fragile. What if ->foo() fails? Is it still sensible to return the object? What happens if you have a mutator (well, a not-mutator
according to hardburn) that rejects the data presented for whatever reason? If your mutator returns an error code because ->foo(123)
is bad input, you wind up with, i.e., "123 is an invalid foo"->bar(456)
and your code goes pear-shaped.
Sure, maybe "123 is an invalid foo" is up for argument as a sensible error code. The point is that it seems like a way to limit your object if you need to do any interesting things to communicate failure to back to your user.