Schrift
[thread]5996[/thread]

geht das auch kürzer?: Schleife->hashref in arrayref

Leser: 1


<< >> 4 Einträge, 1 Seite
pktm
 2004-01-04 01:16
#78008 #78008
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Ich arbeite mit dem Modul HTML::Template.
Dem Objekt da muss man für eine bestimmte Aufgabe eine Hashreferenz in einer Arrayreferenz übergeben.
Diese stelle ich mir in einer While-Schleibe zusammen, in der ich die Werte für die Hashes usw. bekomme.
Code: (dl )
1
2
3
4
5
6
        while ( my ($id, $keyword, $titel, $unterseiten) = $sth->fetchrow_array() ) {
#print STDERR "ID: $id => KEY: $keyword => TITEL: $titel => unterseiten: $unterseiten\n";
my $hashref = {};
$hashref->{"link"} = $cgi->a( {href => $cgi->url(-full=>1) . "?action=$keyword" }, "$titel");
push @{ $seiten }, $hashref;
}

Vorgehensweise:
DIe aus dem Array (fetchrow_array) werden extrahiert, in eine Hashreferenz gepackt, welche dann an eine Arrayreferenz angehangen wird.
Das funktioniert auch prima so.
Ich hätte das jetzt aber gerne kürzer, nach Möglichkeit in einer Zeile.
Mein Hauptproblem ist, dass mein perl immer meckert, wenn ich hashreferenzen benutzen möchte, die ich vorher nicht definiert habe.
So z.B.:
my $hashref->{blablabla} = val; #ERROR!
Dagegen:
my $hashref = {};
$hashref->{blablabla} = val; # geht!?

Wer kann mir helfen?
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2004-01-04 02:03
#78009 #78009
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
schonmal mit
my $hashref = { key => $value };
versucht?
am besten perldoc perldata/perlref lesen. zumindest die beispiele sollten auch mit wenig
englisch-kenntnissen verständlich sein. oder halt ein gutes buch.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
kabel
 2004-01-04 15:07
#78010 #78010
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
brauchst du den namen $hashref überhaupt? Nö!

Code (perl): (dl )
1
2
3
push @{ $seiten }, {
   link => $cgi->a( {href => $cgi->url(-full=>1) . "?action=$keyword" }, "$titel"),
};


HTH
-- stefan
pktm
 2004-01-04 17:37
#78011 #78011
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
jo, so habe ich das auch gemacht.
$hashref kam nur daher, weil ich den hash falsch gefüllt habe (wusste nicht, wie man das richtig macht).
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 4 Einträge, 1 Seite



View all threads created 2004-01-04 01:16.