Moin!
outline_tree(1, 1);
Aufruf einer Funktion.
sub outline_tree {
# das ist die Funktion. Du kannst diese mit "sub" -> "function (arg1, arg2,...)" um"schreiben".
if (-e "$story_dir/$_[0].txt") {
# $_[0] ist das erste Argument der Argumenteliste.
# Existiert die Datei $story_dir/$_[0].txt ?
# Du brauchst $story_dir als globale Variable oder mussr es übergeben.
$auth = "";
$title = "";
$time = "";
# Kein Kommentar.
if (open(CHAPTER, "$story_dir/$_[0].txt")) {
# CHAPTER wird ein Filehandler , das weitere geschieht, so das Öffnen gelingt.
$auth = <CHAPTER>;
$time = <CHAPTER>;
$title = <CHAPTER>;
close(CHAPTER);
# Die Variablen werden mit dem Inhalt der Zeilen von $story_dir/$_[0].txt gefüllt
chomp($auth);
chomp($title);
chomp($time);
if ($auth ne "") {
$auth = "von $auth";
} # end if
} # end if
# Die Variablen wurden ein wenig "fein" gemacht.
print " " x ($_[1] - 1);
$x = format_chapter_number($_[1] - 1);
print "Kapitel $_[1]: <a href="story.pl?next=$_[0]&chapter=$x">$title</a> $auth";
# Es ein wenig was ausgegeben.
# Es folgt ein rekursiver Funktionsaufruf (Funktion ruft sich selbst)
# Dazu wird das erste Argument verdoppelt, das zweite um eines erhöht.
outline_tree(2 * $_[0], $_[1] + 1);
# Da es immer zwei Möglichkeiten der Fortsetzung gibt:
# Das erste Argument wird verdoppelt und um eines erhöht, das zweite um eines erhöht
outline_tree((2 * $_[0]) + 1, $_[1] + 1);
$chapter_count++
# Die offenbar globale Variable chapter_count wir um eines erhöht.
} end if
} end functionsub format_chapter_number {
my $my_chapter_number = $_[0]; # Parameter is chapter number.
return(sprintf("%.0f", $my_chapter_number));
# Ganz tolle Funktion. Gibt den übergebenen Wert als ganze Tahl zurück.
# ein "$my_chapter_number=$my_chapter_number*1" hätte das auch getan...
} end function
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.