Thread Aufruf von Sub - Klassen mit variablen Namen (5 answers)
Opened by YAPD at 2021-05-11 16:02

hlubenow
 2021-05-11 16:50
#193261 #193261
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Mit Vererbung:
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
#!/usr/bin/perl

use warnings;
use strict;

package Kernel::Config::Defaults {

    sub new {
        my $classname = shift;
        my $self  = {};
        return bless($self, $classname);
    }

    sub Defaults_Loader {
        my $self  = shift;
        my $kernelConfig = shift;
        print $kernelConfig->{home} . "\n";
    }
}

package Kernel::Config {

    use base 'Kernel::Config::Defaults';
 
    sub Config_Loader {
        my $self = shift;
        $self->{home} = 'E:/Programmierung/Aktuell';
        $self->{debug_modus} = 'N';
        $self->Defaults_Loader($self);
    }
}

my $kc = Kernel::Config->new();
$kc->Config_Loader();

Edit: Da war ein Bug: Hatte ein "my $self = shift;" vergessen. Das braucht jede Funktion innerhalb einer Klasse am Anfang (außer new()).

Edit2: "$self" ist bereits eine Referenz. Es ist nicht nötig, eine Referenz darauf an eine Funktion zu übergeben (was in Deinem Posting so gemacht wurde), man kann einfach "$self" übergeben. Es repräsentiert dann das ganze Objekt. Auf dessen Attribute man dann zugreifen kann, vgl. den "print"-Befehl.
Last edited: 2021-05-11 18:44:18 +0200 (CEST)

View full thread Aufruf von Sub - Klassen mit variablen Namen