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.