Carl Franks wrote: > I have a class that normally takes a list of named arguments. > I also want to be able to handle a single argument. > > class Foo { > multi method new (Class $class: Str $date) { > return $class.bless(date => $date); > } > > submethod BUILD ($.date, $.time, $.offset) { > # some error checking here > } > } > > my $foo = Foo.new('2005-05-30'); > > # > Is this the correct way to handle my scenario? It's *a* correct way. But redundant in this particular case. The universal new() would handle the one-argument call exactly the same as your overloaded new() does. Presumably, however, the one-argument variant would do something else as well. > My explicit 'new' method should only handle the case of > a single argument - otherwise the 'new' method > inherited from Class will handle a list of named > arguments. Correct. > My explicit BUILD submethod is called, regardless > of which 'new' method is called, correct? Yes. It's invoked by bless(). DamianThread Previous | Thread Next