Thread Perl für Anfänger! (11 answers)
Opened by Togad at 2007-09-20 12:00

renee
 2007-09-20 13:11
#99727 #99727
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
XYZ steht in $option, nicht in $self. In $self ist das Objekt...

$self ist eine geblesste Hashreferenz - aber immer noch eine Hashreferenz.

Wenn Du also
Code (perl): (dl )
$handler->conf('XYZ', 'Das ist der Wert');
aufrufst, dann wird steht das Objekt in $self, XYZ in $option und 'Das ist der Wert' in @params (bzw. in $params[0]).

Dann wird $params[0] als Wert für den Schlüssel 'XYZ' in der Hashreferenz gespeichert, die zu dem Schlüssel 'OPTION' im Objekt gehört.

Vielleicht verstehst Du es mit diesem Demoskript besser:

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
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

# erzeuge eine Hashreferenz (simuliert das Objekt)
my $self = {};

# simuliere $handler->conf('XYZ','Wert');
my $value = conf($self,'XYZ','Wert');
print $value;

sub conf {
    my ( $self, $option, @params ) = @_;
    print Dumper $self;

    if ( scalar @params ) { # if parameter submitted, set it
        $self->{CONFIG}->{$option} = $params[0];
    } # if

    print Dumper $self;

    unless ( exists $self->{CONFIG}->{$option} ) {
        Carp::croak "Error: \$handler->conf($option) not existing";
    } # unless

    return $self->{CONFIG}->{$option};
} # conf
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Perl für Anfänger!