Fortune

A simple fortune-cookie program. Fortune cookie files tend to be in a universal format and can be downloaded from many sources. Put them in a directory such /usr/share/fortune.
#!/usr/bin/perl -w
# fortune.pl -- Waehlt einen zufaelligen Fortune-Satz aus.
#
# Geaenderd um eine von mehrere Dateien zufaellig zu waehlen.
# Die Dateien sind in $FORTUNE_HOME in der normalen Struktur.
# Jeder Spruch faengt in einer neuen Zeile an und wird mit einem
# "%\n" beendet.
#
# Ursprungliche Idee von einem Deutschspraechigen Perl-Forum geborgt.
#
#  - Gerrit Hoekstra < This e-mail address is being protected from spambots. You need JavaScript enabled to view it >

# Hier werden die Spruchdateien gelagert.
# Aendern wenn noetig! Meistens ist es aber /usr/share/fortune
$FORTUNE_HOME="/app/vcrdev/share/fortune";

@fortunefiles=<$FORTUNE_HOME/*>;
$fortunefile=@fortunefiles[int(rand(scalar @fortunefiles))];
$/       = "%\n";       # Sehr wichtig! Ende-des-Spruches Marker.

open(FORTUNE, $fortunefile) or die "Can't open fortune file: $!\n";

# <FORTUNE> liefert immer einen ganzen Datensatz in $_
# $. ist die Nummer des aktuellen Datensatzes.
# Die folgende Zeile (Recipe 8.6, Perl Cookbook) liefert
# einen zufaelligen Datensatz aus der Fortune-Datei.
rand($.)<1 && chomp($_) && ($line=$_) while <FORTUNE>;


# Weiter: Hier 'nen schoenen Kasten um den Spruch zeichnen...
print "----------------------------------------------------------------------------\n";
print $line;
print "----------------------------------------------------------------------------\n";

close(FORTUNE);