Beitrag von Ralf (143 Beiträge) am Freitag, 23.April.2004, 00:52.
Subroutine in Subroutine aufrufen
Hallo,
ich möchte eine Subroutine in einer Subroutine aufrufen. Geht aber irgendwie nicht...
####---- Menue Container bereitstellen
sub inhalt_container {get "Container_id==1","templates";
while(get_next(templates))
{out "<tr><td><a href=$BPpfad/document&docID=$docID>$Linkname</td></tr>";}
}
sub kopf_container {"<table width=90% border=0 cellspacing=0 cellpadding=0 align=center><tr><td class=container_oben> </td></tr><tr><td><table width=100% cellspacing=0 class=container_inhalt>";
sub ende_container {"</table></td></tr></table>";
sub menue {
&kopf_container;
&inhalt_container;
&ende_container;
}
out menue;
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 23.April.2004, 10:07.
Re: Subroutine in Subroutine aufrufen
probier mal return:
sub inhalt_container {
get "Container_id==1","templates";
while(get_next(templates))
{
$rtn.="<tr><td><a href=$BPpfad/document&docID=$docID>$Linkname</td></tr>";
}
return $rtn;
}
sub kopf_container {
return "<table width=90% border=0 cellspacing=0 cellpadding=0 align=center><tr><td class=container_oben> </td></tr><tr><td><table width=100% cellspacing=0 class=container_inhalt>";
}
sub ende_container {
return "</table></td></tr></table>";
}
sub menue {
$inhalt=&kopf_container;
$inhalt.=&inhalt_container;
$inhalt.=&ende_container;
return $inhalt;
}
out menue;
oder gleich out, was wohl übersichtlicher ist.
sub inhalt_container {
get "Container_id==1","templates";
while(get_next(templates))
{
out "<tr><td><a href=$BPpfad/document&docID=$docID>$Linkname</td></tr>";
}
}
sub kopf_container {
out "<table width=90% border=0 cellspacing=0 cellpadding=0 align=center><tr><td class=container_oben> </td></tr><tr><td><table width=100% cellspacing=0 class=container_inhalt>";
}
sub ende_container {
out "</table></td></tr></table>";
}
sub menue {
&kopf_container;
&inhalt_container;
&ende_container;
}
&menue; #hier kein out
Sander
Antworten
Beitrag von Ralf (143 Beiträge) am Freitag, 23.April.2004, 11:02.
Re: Subroutine in Subroutine aufrufen
Stimmt, wenn man das "out" weglässt, funktioniert es. Danke. Und ich hätte schwören können ich habe es so versucht.
Aber im Vollbildmodus und der hat so seine Tücken. Ist vielleicht mal was für CB. Man muss zum teil 3mal speichern bis die korrekte Ausgabe erscheint!
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 23.April.2004, 13:55.
Re: Subroutine in Subroutine aufrufen
Kann ich nix für, das macht Dein Browser oder ein Proxy -> Cache ;-)
Antworten
Beitrag von Ralf (143 Beiträge) am Freitag, 23.April.2004, 11:32.
Re: Subroutine in Subroutine aufrufen
Hallo Sander nochmal...
Warum funzt meine private Variable in der Subroutine nicht? Habe auch schon mit local probiert und out weglassen geht auch nicht.
$kopf_container="<table width=90% border=0 cellspacing=0 cellpadding=0 align=center>
<tr><td class=container_oben> $textkopf</td></tr>
<tr><td>
<table width=100% cellspacing=0 class=container_inhalt>";
$ende_container="</table></td></tr></table>";
sub inhalt_container {
my $textkopf="Hallo Welt";
out "$kopf_container";
out "$ende_container";
}
out inhalt_container;
Antworten
Beitrag von hempelr (1976 Beiträge) am Freitag, 23.April.2004, 12:47.
Re: Subroutine in Subroutine aufrufen
Antworten
Beitrag von Ralf (143 Beiträge) am Freitag, 23.April.2004, 13:39.
Re: Subroutine in Subroutine aufrufen
Na klar, dafür ist es ja auch ne private Variable.... grrr
Man sollte halt manchmal doch die verrauchten Gehirnwindungen benutzen.
Danke Dir!!
Antworten
Beitrag von Ralf (143 Beiträge) am Samstag, 24.April.2004, 00:08.
Re: Subroutine in Subroutine aufrufen
Neee, hab das gerade getestet. Geht auch nicht. Hab den border extra auf 1 gesetzt. Anzeige Null. Nichts.
$kopf_container="<table width=90% border=1 cellspacing=0 cellpadding=0 align=center>
<tr><td class=container_oben>$textkopf</td></tr>
<tr><td>
<table width=100% cellspacing=0 class=container_inhalt>";
$ende_container="</table></td></tr></table>";
sub inhalt_container {
my $textkopf="Hallo Welt";
my $akopf_container = eval $kopf_container;
out "$akopf_container";
out "$ende_container";
}
out inhalt_container;
Antworten