>I think so (after fixing a couple of minor typos).
>
>Does this mean that you can only pass defined attributes to a constructor ?
>What if you want to pass parameters that are used during build but don't
>actually need to be stored in the object ?
Hopefully you don't mind my cc'ing the list- that way someone searching the
archives doesn't get stung by my typos ;)
Creating an object should have been:
my MattTest $test .= new(:string<abc>); # TIMTOADY and all that ;)
You can pass objects to BUILD that you don't store in the object:
class MattTest {
submethod BUILD (:$foo) {
say $foo;
}
}
hth,
-db.
my $test = MattTest(:string('abc'));
# Check to see the class is the right kind of thing:
say $test.WHAT
# Output the class as a readable string
say $test.perl;
----- Original Message ----
From:
Matthew Keene
To: [email protected]
Sent: Tuesday, May 15, 2007 5:02:56 AM
Subject: Error calling bless in non-default constructor
I'm trying to use a non-default constructor for a class under Pugs 6.2.13, like
so
class MattTest {
sub new (Class $class : Str $string) {
say "Passed $string to the constructor for $class" ;
return $class.bless ;
}
}
my $test = MattTest.new('abc') ;
This is failing with the following output:
D:\Apps\Perl6>pugs ConstructorTest.p6
Passed abc to the constructor for MattTest
*** No such method in class MattTest: "&bless"
at ConstructorTest.p6 line 5, column 12-25
Am I doing something wrong, or is bless currently unimplemented in Pugs, or is
something else wrong. I have more or less copied the code for the constructor
from the test in oo/construction.t.
---------------------------------
How would you spend $50,000 to create a more sustainable environment in
Australia? Go to Yahoo!7 Answers and share your idea.
____________________________________________________________________________________Get
the free Yahoo! toolbar and rest assured with the added security of spyware
protection.
http://new.toolbar.yahoo.com/toolbar/features/norton/index.php
Switch to Yahoo!7 Mail: Transfer all your contacts and emails from Hotmail and
other providers to Yahoo!7 Mail. Switch now
____________________________________________________________________________________Need
a vacation? Get great deals
to amazing places on Yahoo! Travel.
http://travel.yahoo.com/