Matthias: Anfängerfrage OOP

Hallo,

ich mache gerade meine ersten Schritte in OOP unter Perl.
Hier ist meine Klasse:

package Meineklasse;

sub new {
  my $Objekt = shift;
  my $Referenz = {};
  bless($Referenz,$Objekt);
  $Objekt->{NAME} = shift;
  return($Referenz);
}

sub name {
  my $Objekt = shift;
  return($Objekt->{NAME});
}

1;

Testen will ich diese Klasse so:

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);
use Meineklasse;

my $klasse = Meineklasse -> new("Dies ist mein erstes Objekt!");

print $klasse->name();

Ich bekomme aber einen Fehler:
Use of uninitialized value in print at ooptest.pl line 9.

Ausgegeben wird auch nichts... Wo liegt der Fehler? Ich habe mich an dem Beispiel hier orientiert: http://de.selfhtml.org/cgiperl/sprache/objekte.htm

Vielen Dank!

  1. Hallo Matthias,

    sub new {
      my $Objekt = shift;
      my $Referenz = {};
      bless($Referenz,$Objekt);
      $Objekt->{NAME} = shift;

    Der Fehler liegt hier. Du müsstest $Referenz->{NAME} = shift; schreiben.
    $Object enthält nur den Klassennamen.

    return($Referenz);
    }

    Grüße

    Daniel

    1. Funktioniert tadellos. Vielen Dank!