Schrift
[thread]10687[/thread]

HTML::Template & Referenzen / Hash



<< >> 4 Einträge, 1 Seite
Gast Gast
 2007-10-30 10:51
#101553 #101553
Hallo Perl-profis,

steh gerade vor einem kleinen Problem. Vieleicht hat ja jemand kurz Zeit, sich das mal anzusehen.
Es geht um folgendes:

Ich habe hier eine Subfunktion namens get_switchip(). Sie gibt mir ein array mit IPs zurueck. Dann hab ich HTML::Template beauftragt, bitte alle IPs darzustellen. Ich wollt's so machen:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
  my @switch_ips = &get_switchip();


  my @switch_ips_out;

  foreach my $switch ( @switch_ips ) {
    my %switch_ips = (IP => $switch->[0]); # problem! ich brauch 0 .. $#switch_ips ! So bekomme ich nur eine IP .. irgendwie
    push(@switch_ips_out, \%switch_ips);
  }


hab das Problem mal markiert. Ich bekomme als Output im HTML nur EINE IP. Brauch aber die Liste. Im HTML sieht's so aus:

Code: (dl )
1
2
3
      <TMPL_LOOP NAME="SWITCHIPS">
<option><TMPL_VAR NAME="IP"></option>
</TMPL_LOOP>


Wie kann ich es schaffen, HTML::Tempalte zu ueberreden, alle IPs zu zeigen? Ich schaetze ich brauch nichtmal einen hash, ich will ja keine Tabelle darstellen oder sowas. Das Array ist definitiv vollstaendig, weil wenn ich $switch->[1] schreibe bekomm ich die zweite IP, aber nicht *alle*


Schoenen Gruß,

rperl
pq
 2007-10-30 11:20
#101555 #101555
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
es ist schwer, dir zu helfen, wenn du nur sagst, wie es nicht aussehen soll, aber nicht, wie es
aussehen soll. deine datenstruktur muss man erraten. ein beispiel waere nett gewesen.
du hast ein array switch-ips. darin befindet sich was? da du auf ein element des arrays mit
$switch->[0] zugreifst und das dem hashkey IP zuordnest, nehme ich mal an, $switch ist
eine arrayref, die an erster stelle eine ip-adresse beinhaltet.
du sagst "problem! ich brauch 0 .. $#switch_ips ! So bekomme ich nur eine IP .. irgendwie".
kannst du das "irgendwie" noch naeher erlaeutern?

und zum selber-debuggen benutz bitte Data::Dumper.
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
pq
 2007-10-30 11:29
#101556 #101556
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ perl -wle'
use HTML::Template::Compiled;
my $htc = HTML::Template::Compiled->new(
plugin => [qw(::HTML_Tags)],
scalarref => \"<%html_option switch_ips %>",
);
$htc->param(
switch_ips => [undef, "127.0.0.1", "127.0.0.2", "127.0.0.3", "127.0.0.4"]
);
print $htc->output'
<option value="127.0.0.1" >127.0.0.1</option>
<option value="127.0.0.2" >127.0.0.2</option>
<option value="127.0.0.3" >127.0.0.3</option>
<option value="127.0.0.4" >127.0.0.4</option>
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
Gast Gast
 2007-10-30 14:45
#101560 #101560
Ah, ja. Das hat mir sehr geholfen! Danke!
<< >> 4 Einträge, 1 Seite



View all threads created 2007-10-30 10:51.