package Foo;
####
sub new {
my $package = shift;
my $object = { }; # Nieuwe lege hash ref
bless $object, $package; # De magie
return $object;
}
##
##
my $object = Foo->new;
# of
my $object = new Foo;
##
##
package Schaap;
sub new {
my $package = shift;
my $obj = { };
bless $obj, $package;
return $obj;
}
sub blaat {
my ($self, $blaat) = @_;
$self->{geblaat}++;
print "Dit schaap blaat nu al voor de $self->{geblaat}e keer.\n";
print "De parameter was: $blaat\n"
}
package main;
my $dolly = new Schaap; # $dolly weet nu dat het bij ...
# ... package Schaap hoort. $dolly->method wordt dus Schaap::method
$dolly->blaat('Hoi'); # Schaap::blaat($dolly, 'Hoi')
$dolly->blaat('Hallo'); # Schaap::blaat($dolly, 'Hallo')
blaat $dolly('Ook dit werkt'); # Schaap::blaat($dolly,
# 'Ook dit werkt');
##
##
sub kleur {
my ($self, $kleur) = @_;
$self->{kleur} = $kleur if defined $kleur;
return $self->{kleur};
}
$obj->kleur("Blauw");
print "De kleur is ", $obj->kleur(), ".\n"; # De kleur is blauw.