Thread Hashref deref (15 answers)
Opened by Froschpopo at 2007-11-08 21:17

Froschpopo
 2007-11-08 22:25
#102076 #102076
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Mit Data::Dumper kenne ich mich null aus. Hab ich auch noch nie eingesetzt.

Ich sag dir mal was das werden soll:
ich möchte das Modul nutzen, um Daten zu cachen und diese später wieder abzufragen.

Script
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use Community::Storage;

my $obj = Community::Storage->new({name => 'Hans Peter'});

print $obj->param('name'),"\n";


Das Modul dazu sieht bisher so aus:
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
34
package Community::Storage;

use strict;
our $VERSION = '1.0';

sub new {
my $class = shift;
my $self = {};
bless($self, $class);
load($_[0], $self) if @_;
return $self;
}

sub load { # hashref auslesen und speichern
my ($args, $self) = @_;
if ($args) {
for (keys %{$args}) {
$self->{$_} = $args->{$_};
}
}
}

sub param { # wert zurückliefern
my $self = shift;
return $self->{@_};
}

sub add { # neue Daten aufnehmen
my $self = shift;
my ($name, $value) = @_;
$self->{$name} = $value;
}

1;


Erklärung: load() soll die Daten cachen, die schon beim Objektaufbau übergeben werden. param() soll dann Daten abfragen können.

Leider habe ich aber noch das Problem, dass load() zwar die Daten in $self aufnimmt, aber diese kann ich komischerweise nicht in param() abfragen. Warum nicht?

View full thread Hashref deref