Thread bind() auf Objekt-Wert?: Geht das? (1 answers)
Opened by pktm at 2006-05-31 01:33

pktm
 2006-05-31 01:33
#45511 #45511
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe mein Programm ein bischen umgeschrieben. Im Zuge der Einführung einer Konfigurationsdatei habe ich mich dazu entschlossen meine Script-Werte über eine param()-Funktion zugänglich zu machen. Die habe ich mir aus CGI::Application geklaut:
Code: (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
sub param {
my $self = shift;
my (@data) = (@_);

# First use? Create new __PARAMS!
$self->{__PARAMS} = {} unless (exists($self->{__PARAMS}));

my $rp = $self->{__PARAMS};

# If data is provided, set it!
if (scalar(@data)) {
# Is it a hash, or hash-ref?
if (ref($data[0]) eq 'HASH') {
# Make a copy, which augments the existing contents (if any)
%$rp = (%$rp, %{$data[0]});
} elsif ((scalar(@data) % 2) == 0) {
# It appears to be a possible hash (even # of elements)
%$rp = (%$rp, @data);
} elsif (scalar(@data) > 1) {
croak("Odd number of elements passed to param(). Not a valid hash");
}
} else {
# Return the list of param keys if no param is specified.
return (keys(%$rp));
}

# If exactly one parameter was sent to param(), return the value
if (scalar(@data) <= 2) {
my $param = $data[0];
return $rp->{$param};
}
return; # Otherwise, return undef
} # /param


Jetzt habe ich nur das Problem, dass ich meine Textfelder nicht mehr (wie zuvor) komfortabel an irgendwleche globalen Variablen binden kann, die ich dann irgendwann im Script wieder auswerte. Gibt es da vielelciht doch eine Möglichkeit sowas hier $quellEntry = $mw->Entry(-textvariable => \$quellverz, -width=>60); mit einem Objekt über die Param-Methode zu machen? $quellEntry = $mw->Entry(-textvariable => \$self->param('Quellverzeichnis'), -width=>60); geht nicht.

Ideen? Vorschläge? Ansonsten müsste ich wohl immer auf Änderungen überwache und dann eine kleine anonmye Sub param() aufrufen lassen.

Grüße, pktm

Edit betterworld: Smiley-Problem geloest\n\n

<!--EDIT|betterworld|1149031952-->
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread bind() auf Objekt-Wert?: Geht das?