home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD 45 / SuperCD45.iso / talleres / perl / fortune.pl < prev   
Encoding:
Perl Script  |  2000-03-07  |  727 b   |  36 lines

  1. #!/usr/bin/perl -w
  2.  
  3. =pod
  4.  
  5. Simple fortune program
  6.  
  7. =cut
  8.  
  9. use strict;
  10.  
  11. my $fortune = fortune();
  12. print $fortune;
  13.  
  14. exit;
  15.  
  16. sub fortune {
  17.     my ($fortune_dir) = "C:\\pcplus\\perl\\issue164\\fortunes";
  18.     opendir FORT , $fortune_dir or die "$fortune_dir doesn't exist!\n";
  19.     my (@fort_files) = grep(!/\./, (readdir FORT));
  20.  
  21.     closedir FORT;
  22.     my ($target) = pickoneof(@fort_files);
  23.     open (FORT, "<$fortune_dir/$target") or die "unable to read $target\n";
  24.     $/ = '%';
  25.     my (@forts) = (<FORT>);
  26.     close FORT;
  27.     chomp(@forts);
  28.     return pickoneof(@forts);
  29. }
  30.  
  31. sub pickoneof (@) {
  32.    # given an argument list, return a random scalar element
  33.    return $_[int(rand(scalar(@_) -1))];
  34. }
  35.  
  36.