Hallo Struppi!
[Struppis Spruch]
Genau.
Nur wüßte ich gerne, wo - wobei der absolute Pretty-Output mir mittlerweile fast egal ist, immerhin sieht die Ausgabe wie folgt aus, also fast perfekt:
C:\>perl -w
use strict;
use MyWeb::Data;
my $webdata = new Data;
$webdata->mySitemap('B');
^Z
<ul>
<li><a href="/wae/wae_0.shtml">Willkommen auf Atomic Eggs</a>
<ul>
<li>/wae/level2/file.html</li>
<li>/wae/level2/impressum.html
<ul>
<li>/wae/level2/level3/kontaktform.html
<ul>
<li>/wae/level2/level3/level4/kontaktform.html
<ul>
<li>/wae/level2/level3/level4/level5/page1.html
<ul>
<li>/wae/level2/level3/level4/level5/level6/page1.html</li
<li>/wae/level2/level3/level4/level5/level6/page2.html</li
</ul>
</li>
</ul> <-- Hier hackt's
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="/wae/wae_1.shtml">Informationen f³r Erstbesucher</a></li>
<li><a href="/wae/wae_2.shtml">Atomic Eggs - Sitemap</a>
<ul>
<li>/rubrikB/level2/file.html</li>
</ul>
</li> <-- Hier auch
<li><a href="/wae/wae_3.shtml">Sich zurecht finden auf Atomic Eggs</a></li>
<li><a href="/wae/wae_4.shtml">Impressum</a></li>
<li><a href="/wae/wae_5.shtml">▄ber den Autor</a></li>
<li><a href="/wae/wae_6.shtml">Atomic Eggs durchsuchen...</a></li>
<li><a href="/wae/wae_7.shtml">Suchstatistik</a></li>
<li><a href="/wae/wae_8.shtml">Das unm÷gliche Gõstebuch</a></li>
<li><a href="/wae/wae_9.shtml">FAQ</a></li>
<li><a href="/wae/wae_10.shtml">;-)</a></li>
</ul>
Generiert wird wie folgt:
sub mySitemap {
my $obj = shift;
my $arg = shift;
$arg eq "full" ? $obj->myFullmap() : $obj->mySectionmap($arg);
}
sub myFullmap {
my $obj = shift;
my $arg = shift;
my %FILES = %{$obj->parseDataFile};
my $start = shift @{$obj->getFileKeys(\%FILES)}; # Startseite rausholen, nur hier wird sie gebraucht
print qq~STARTSEITE: <a href="$FILES{$start}{FILE_URL}">$FILES{$start}{TITLE}</a>\n~;
$obj->mySectionmap('B');
$obj->mySectionmap('C');
}
sub mySectionmap {
my $obj = shift;
my $arg = shift;
my %FILES = %{$obj->parseDataFile};
my @fileKeys = @{$obj->getFileKeys(\%FILES)};
my $start = shift @fileKeys; # Die Startseite brauchma net. Sie steht auch außerhalb der <ul>-Liste.
my $spacer = "";
print "<ul>\n";
for (my $i = 0; $i < @fileKeys; $i++) {
if ($fileKeys[$i] =~ /^$arg/) {
if (defined($FILES{$fileKeys[$i]}{SECTIONS})) {
print qq~ <li><a href="$FILES{$fileKeys[$i]}{FILE_URL}">$FILES{$fileKeys[$i]}{TITLE}</a>\n~;
$obj->getSectionsForMaps($FILES{$fileKeys[$i]}{SECTIONS}, $spacer);
}
else {
print qq~ <li><a href="$FILES{$fileKeys[$i]}{FILE_URL}">$FILES{$fileKeys[$i]}{TITLE}</a></li>~, "\n";
}
}
}
print "</ul>\n";
}
sub getSectionsForMaps {
my $obj = shift;
my $sections = shift;
my @sections = @$sections;
my $spacer = shift;
print " $spacer<ul>\n";
$spacer = " ".$spacer;
my $liEndTag;
for (my $i = 0; $i < @sections; $i++) {
$liEndTag = defined($sections[$i]{SECTIONS}) ? "\n" : "</li>\n";
print " $spacer<li>", $sections[$i]{FILE_URL}, $liEndTag; # entpr. URL (wenn definiert)
$spacer = " ".$spacer if defined($sections[$i]{SECTIONS});
$obj->getSectionsForMaps($sections[$i]{SECTIONS}, $spacer) if defined($sections[$i]{SECTIONS});
}
print " ", " " x (length($spacer) - 2), "</ul>\n", " ", " " x (length($spacer) - 4), "</li>\n";
}
Alles nur Testphase, Gruseln also erlaubt!
Viele Grüße aus Frankfurt/Main,
Patrick
![](http://www.atomic-eggs.com/fuernA.jpg)
_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?