Thread Tipps um Module zu schreiben: was gibt es zu beachten, oop oder nicht?
(15 answers)
Opened by deepblack at 2005-02-15 16:33
[quote=deepblack,15.02.2005, 16:58]
... 'attempt to bless into reference..' ...[/quote] Diese Fehlermeldung kannst du eigentlich nur bekommen, wenn $class eine Referenz ist, d.h. du musst new irgendwie folgendermaszen aufgerufen haben: Code: (dl
)
my $object = $irgendwas->new(); ein konstruktor erwartet als ersten parameter aber die klasse und kein objekt, also Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 package MyClass; sub new { my $class = shift; my $self = {}; # usw bless($self, $class); return $self; } package main; my $object = MyClass->new(...); Das mit dem brauchst du nur, wenn du willst, dass dein konstruktor sowohl mit $object->new (zum klonen) als auch MyClass->new aufgerufen werden soll; wenn du wirklich eine Klonfunktion brauchst, dann ist es besser, wenn du sie auch ->clone oder so aehnlich nennst; wenn du sowas doch umbedingt machen willst, dann schlage ich vor, es folgendermaszen zu machen: Code (perl): (dl
)
1 2 3 4 sub new { my $proto = shift; my $class = ref($proto) || $proto; # Cargo Cult Programming ... <!--EDIT|Strat|1108488625--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |