Anfängerfrage OOP
Matthias
- perl
0 Daniel Thoma0 Matthias
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!
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
Funktioniert tadellos. Vielen Dank!