Thread Perl und OOP: Ein paar Anfänger-Fragen (8 answers)
Opened by Gast at 2007-01-31 22:41

Strat
 2007-02-02 12:36
#73905 #73905
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
1. Namensgebung von eigenen Packages:
x) der 1. Buchstabe sollte gross sein (ein Kleinbuchstabe sollte fuer Pragmas reserviert bleiben)
x) aufpassen, dass man keinen Namen eines bereits existierenden Moduls erwischt, sonst kann - wenn mal zufaellig dieses Modul installiert wird - anstelle des eigenen Moduls das andere geladen werden, was vermutlich zu Fehlern fuehrt. Deshalb verwende ich fuer Module, die nicht via CPAN verteilt werden sollen, meist einen zweistufigen Namensraum, z.B. package MyKunde::Builder oder so
2) die erste Variante finde ich auch besser; ich wuerde sie allerdings ein klein wenig anders schreiben:
Code: (dl )
1
2
3
4
5
6
7
8
9
sub new {
my $class = shift;
my $self = bless( {}, $class ); # objekt erzeugen

# hat den vorteil, dass man z.B. eine Initialize-Methode aufrufen koennte
$self->_initialize( @_ );

return $self;
} # new


Zum Autoload: das ist ja recht nett, hat aber das Problem, dass auch die Methode DESTROY - falls nicht angegeben - automatisch erzeugt wird, und man damit ueberhaupt nicht kontrollieren kann, auf welche Attribute man zugreifen will, wodurch Tippfehler (z.B. Gross-/Kleinschreibung) schwierig zu finden werden. Also da entweder DESTROY rauskicken und ueberpruefen, auf welche Attribute ueberhaupt zugegriffen werden darf, oder die Methoden ueber eine Liste vorgenerieren und auf Autoload verzichten.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Perl und OOP: Ein paar Anfänger-Fragen