Thread Bitte um Hilfe bei bless Fehler (39 answers)
Opened by bianca at 2019-09-28 17:06

hlubenow
 2019-09-30 15:17
#190589 #190589
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Im Grunde reden wir ja über dieselbe Sache.
Damit bianca das auch nachvollziehen kann, hab' ich zu Deinen Methodenaufrufen mal die Klasse dazugeschrieben, so daß es ein lauffähiges Skript ergibt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl

use warnings;
use strict;

package Person { 
 
    sub new { 
        my $classname = shift;
        my $args = {@_}; 
        my $self = {  name => $args->{vname} || "",
                      name => $args->{name} || "",
                      ort  => $args->{ort} || "",
                      plz  => $args->{plz} || "00000",
                      age  => $args->{age} || 0 }; 
        return bless($self, $classname); 
    }           

    sub setLocation {
        my $self = shift;
        my %args = @_;
        $self->{plz} = $args{plz};
        $self->{location} = $args{location};
    }

    sub setAge {
        my $self = shift;
        my $age = shift;
        $self->{age} = $age;
    }

    sub getAge {
        my $self = shift;
        return $self->{age};
    }
}

my $person = Person->new( name => 'foo', vname => 'bar');
# Nun kann die Person an einen anderen Ort umziehen und nimmt dazu einen sog. setter:
$person->setLocation( ort => 'Woanders', plz => '12345' );
# Und wer wissen will wie alt er ist, nimmmt einen getter:
$person->setAge(25);
my $age = $person->getAge();
print "$age\n";

rosti
Sie enthalten die Daten mit denen die Klasse arbeitet. So kennen die Daten ihre Klasse und die Funktionen (Methoden) die sie aufrufen. Und für den Programmierer ist alles schön beeinander, package, Klasse, Namespace, Dateiname -- das ist alles Eins.

Eben. Und das Beste daran ist, daß man das gesamte Objekt auch Funktionen übergeben kann. Dann steht dort das gesamte Objekt zur Verfügung, ohne daß man sich groß über Dereferenzierungen Gedanken machen müßte.
Last edited: 2019-09-30 15:26:33 +0200 (CEST)

View full thread Bitte um Hilfe bei bless Fehler