Here's a demo script: #!/usr/bin/pugs use v6; class Foo { multi method new (Class $class: Str $date) { say "ok"; return $class.new(date => $date); }
submethod BUILD (+$date) { say "date: '$date'"; } } my $foo = Foo.new(date => 'blah'); =cut >pugs test.pl ok date: '' Problem 1: I call the constructor with a named argument, so I expect my explicit 'new' method to _not_ get called, and for the default 'new' method inherited from Class to get called. However, "ok" is printed, showing my 'new' method is called. Problem 2: As shown in the output above, $date in BUILD is undef. Also, if I add say $class.perl; inside of my 'new' method, it prints =: \{obj:Class} Is this correct? Should it not be \{obj:Class} ? If someone can confirm the problems above are bugs, I'll add tests to the test suite for it. I'm running pugs svn version 4201. Cheers, Carl