package Marsupilami;
use strict;
use warnings;

# Konstruktor
sub new
  {
  my $class = shift;
  my $self  = {};
  $self->{NAME} = shift;
  return bless($self,$class);
  }

# Methode liefert Namen
sub get_name
  {
  my $self = shift;
  return $self->{NAME};
  }

# Methode setzt neuen Namen
sub set_name
  {
  my $self = shift;
  $self->{NAME} = shift;
  }

sub was_bin_ich
  {
  return "Marsupilami";
  }

1;  # return 1; geht in diesem Fall nicht
# ----------------------------------------------------

# zurück nach Package main
package main;

my $Object1 = Marsupilami->new("Bobo");
print "\nObjekt1 heisst:  ", $Object1->get_name(), "\n";

my $Object2 = Marsupilami->new("Bibi");
print "\nObjekt2 heisst:  ", $Object2->get_name(), "\n";

$Object1->set_name("Bibo");
print "Neuer Name ist: ", $Object1->get_name(), "\n";

print $Object1->was_bin_ich(), "\n";
print Marsupilami->was_bin_ich(), "\n";