Noch ein paar Ergänzungen
package myClient;
use strict;sub new {
my $pkg = shift;
my $wert = shift || 42;
my $self = { Wert => $wert };
bless $self, $pkg;
Es wird an die Funktion new() vom Package myClient »123« übergeben. Das ist jetzt in @_ - und da auch das einzige Element, oder?
Nein, das kannst du dir z.b. mal anschauen:
[code lang=perl]sub new {
print "myClient->new(@_)\n";
Ergibt: myClient->new(myClient 123)
Der erste Parameter ist das Objekt das du "blessen" willst.
Die Variante ist nicht unbedingt empfehlenswert, um später mal auch von einem Objekt erben zu können musst du noch testen ob der Parameter eine Referenz ist.
~~~perl
sub new {
my $pkg = shift;
my $wert = shift || 42;
return bless { Wert => $wert }, ref $pkg || $pkg;
}
Jetzt kannst du z.b. auch von $Client erben:
use strict;
use myClient;
my $Client = myClient->new(123);
my $andererClient = $Client->new(77);
Eigentlich ist OOP in Perl einfach, das einzige was du brauchst ist package und bless, die mit bless gebunden Variabeln können dann auf die Funktionen in den package zugreifen.
Struppi.