in reply to Re^2: Thoughts on new 'class' OO in upcoming perl
in thread Thoughts on new 'class' OO in upcoming perl
How? How do you prevent your OO system from throwing in case a mandatory parameter is missing and convince it to return undef instead?
Good catch! I mixed up things here. It is definitely not possible to coerce a new method to return undef on failure. If you really want that, you need to write a custom constructor. I often write custom constructors, though mostly for other reasons.
The new core OO system didn't invent this behavior, though. It is quite common with many OO systems on CPAN: They write a constructor method new for you, according to some declarative syntax. Therefore, new is no longer a "user defined constructor method": It is rather a part of the language on the same level as bless (disregarding the specifics of its medication for now). In none of these OO systems you get a chance to call the parent constructor. They all claim that you don't need to call the parent constructor, and they all have some mechanism to deal with inheritance during construction. For the new core OO system, ADJUST blocks are that mechanism.
There are differences between the new core OO system and the popular CPAN OO systems, and these affect the construction of objects, in particular in an inheritance hierarchy:
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Thoughts on new 'class' OO in upcoming perl
by cavac (Prior) on Mar 20, 2023 at 21:03 UTC | |
by haj (Vicar) on Mar 20, 2023 at 22:01 UTC | |
by Jenda (Abbot) on Apr 10, 2023 at 11:20 UTC |