Thread Allgemeine Frage zu Modulen (4 answers)
Opened by Gast at 2007-08-01 12:02

Strat
 2007-08-01 13:08
#97056 #97056
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Quote
Main::Run();

In welchem Namensraum ist die Sub Run?
Code: (dl )
module::Main::Run();


Nebenbei: ich schlage folgende Verbesserungen vor:

x) Anstelle von module besser was gross-geschriebenes verwenden, z.B. MyApp

x) our $Config = new Config; was passiert, wenn es im aktuellen Namensraum eine Sub namens new oder Config gibt? our $Config = Config->new ist sicherer;

x) Konstruktor in module::Config:
Code: (dl )
1
2
my ($this) = @_;
bless my $self = {} => (ref $this) || $this;


Willst du da wirklich einen dualen Konstruktor haben, dem man sowohl eine Klasse als auch ein Objekt reinwerfen kann? Meiner Meinung nach sollte ein Konstruktor lediglich einen Klassennamen aufnehmen, und wenn man einen Clone-Konstruktor benoetigt, sollte man ihn auch clone oder so nennen.
Also:
Code: (dl )
1
2
my( $class ) = @_;
my $self = bless( {}, $class );


x) return undef unless ...
kann unter umstaenden gefaehrlich werden, wenn diese Funktion im Listenkontext aufgerufen wird; dann wird eine Liste mit einem Element zurueckgegeben. besser
Code: (dl )
return unless ...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Allgemeine Frage zu Modulen