Thread OO - kann Hash nicht speichern (5 answers)
Opened by roooot at 2008-06-13 19:50

roooot
 2008-06-13 19:50
#111013 #111013
User since
2008-03-03
276 Artikel
BenutzerIn
[default_avatar]
Hallo.

Ich versuche einen Hash an eine Klasse zu übergeben.

Das mache ich wie folgt:
Code: (dl )
1
2
3
4
5
6
7
my $query = new CGI;

use Gallery::Action;

my $action = new Gallery::Action({
parameters => _create_parameter_hash($query->url_param)
})->execute();


_create_parameter_hash
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
my %known_parameter = (
p => 'Modul', # core parameter - modul to execute
out => 'OutputType', # output type (default html)
admin => 'AdminForced', # executing call only if user is admin
);

sub _create_parameter_hash {

my @params = @_;
my %hash_to_return;

for my $param (@params) {
my $hash_index =
exists $known_parameter{lc $param} ? $known_parameter{lc $param}
: $param
;

$hash_to_return{$hash_index} = $query->url_param($param);
}

return %hash_to_return;

}



und hier wirds dann zugewiesen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub new {

my ($class, $arg_ref) = @_;

my $new_object = bless anon_scalar(), $class;

$random_number_of{ident $new_object} = int(rand(10000));

### insert known parameters
$known_parameters_of{ident $new_object} = $arg_ref->{parameters}; #####


return $new_object;

}


und ich versuche dann so zuzugreifen:
Code: (dl )
$known_parameters_of{ident $self}{'Modul'}


Kann mir jemand helfen? Also es kommen definitiv p und out als Parameter an und haben auch Werte!

Danke
Viele Grüße :)

View full thread OO - kann Hash nicht speichern