#!/bin/perl5
#
#
#
use Getopt::Std;

my($Usage) = "Usage: $0: [-iga] <file>...\n";
getopts('gia') || die $Usage;
if ($#ARGV < 0)
  {
    push(@ARGV,"-");
  }

if ($opt_i)
{
  my($seed);
  print "Please enter seed or phrase\n";
  $seed = <STDIN>;
  chomp($seed);
  $seed = genhash($seed) if ($seed !~ /^\d+$/);
  print "Seed is $seed\n";
  srand $seed;
}
else
{
  srand $$;
}

foreach $f (@ARGV)
{
  if ($f eq "-")
    {
      *F=*stdin;
    }
  else
    {
      if (!open(F,$f))
	{
	  warn "Cannot read $f: $!\n";
	  next;
	}
    }
  @lines = <F>;
  close(F);
  
  while ($#lines >= 0)
    {
      my $line = splice(lines, int(rand ($#lines+1)), 1);
      print $line;
      last unless ($opt_a);
    }
}


sub genhash($)
{
  my($str) = @_;
  my($sum,$cnt,$length);
  for($length=length($str);$cnt<$length;$cnt++)
    {
      $sum = $sum * 37 + ord(substr($str,$cnt,1));
    }
  $sum;
}
