Schrift
[thread]12269[/thread]

OOP hash zurückgeben

Leser: 3


<< >> 3 Einträge, 1 Seite
bieber
 2008-07-29 12:56
#112856 #112856
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
nachdem ich nun auf OOP umgestiegen bin, habe ich leider ein Problem welches ich nicht lösen kann...

folgendes: in einer Methode soll ein Hash generiert werden und dann zurückgegeben werden,
anschließend wird mit Hilfe von HTML::Template::Compiled eine Navigation in abhängikeit der Rechte erzeugt...(spielt hier aber keine Rolle)

mein Problem ist, dass ich den Hash nicht übergeben kann, bzw. es einfach nicht hinbekomme, wäre schön wenn mir da jm. helfen könnte

Code (perl): (dl )
1
2
3
my $data = $object->database_navigation($s->param("GROUP"));
$navigation->param(SERVERLISTE => \@data);
print $navigation->output();


meine Klasse sowie die database-methode:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package OWN::Functions;

use strict;
use warnings;
use lib "../../lib/";
use Digest::MD5  qw(md5);

our $VERSION = '0.01';

#Konstruktor
sub new{
    my ($class) = @_;
    my $self = {};
    return bless $self,$class;
}
sub database_navigation{
        my ($self,$group) = @_;
        if($group == 1){
          #administrator
          my $data = (
                {
                        SERVER => '1',
                        DATENBANKLISTE => [
                                {
                                        DATENBANK => 'HKR'
                                },
                                {
                                        DATENBANK => 'HKR2'
                                }
                        ]                       
                },
        
                {       SERVER => '2',
                        DATENBANKLISTE => [
                                {
                                        DATENBANK => 'EWO'
                                },
                                {
                                        DATENBANK => 'EWO2'
                                }
                        ]
                 }
          );
        }else{
          #Verfahrensbetreuer
          my $data = (
                {
                        SERVER => '1',
                        DATENBANKLISTE => [
                                {
                                        DATENBANK => 'HKR'
                                },
                                {
                                        DATENBANK => 'HKR2'
                                }
                        ]                       
                }
          );    
        }
        $self->{data} = @data;
        return $self->{data};
}


in der Fehlerkonsole kommen 2 Dinge:
Functions.pm: Useless use of anonymous hash ({}) in void context
[error] Global symbol "@data" requires explicit package name

Verstehe beide Fehler leider nicht. In den Perl-Buch welches ich rumkullern habe ist OOP immer im Zusammenhang mit dem Exporter... das wollte ich mir eigentlich sparen... bzw. da habe ich einfach nicht die Zeit mich einzulesen momentan
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
topeg
 2008-07-29 13:17
#112858 #112858
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Du definierst "$data" innerhalb der if/else Abzweinung und versuchst einen Scalar ($data) mit einem Array zu füllen "(...)" und das dann außerhalb des Definitionsbereiches als Array in einen Scalar zu schreiben. das Funktioniert vorne und hinten nicht.

Hattest du keine Fehlermeldungen??

Entweder du nutzut immr @array, oder du nutzt ein anonymes Array $data=[...].
Dann musst du die Zuweisung zu "$self->{data}" innerhalb der Blöcke (if/else) machen entweder "$self->{data}=$data" oder "$self->{data}=\@data".
Alles andere kann nicht funktionieren.
bieber
 2008-07-29 13:20
#112859 #112859
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
d-oh
stimmt, da hab ich mal wieder gepennt, maaaaaan das regt mich auf

danke
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
<< >> 3 Einträge, 1 Seite



View all threads created 2008-07-29 12:56.