| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- #!/usr/bin/perl -w
 - 
 - use strict;
 - use warnings;
 - 
 - use Getopt::Long;
 - 
 - my $opts;
 - $opts->{no_header}  = 0;
 - $opts->{delay}      = 2;
 - $opts->{frames}     = "-/|\\";
 - 
 - GetOptions (
 -     "no-header" => \$opts->{no_header},
 -     "usage"     => \$opts->{usage},
 -     "help"      => \$opts->{usage},
 -     "delay=i"   => \$opts->{delay},
 -     "frames=s"  => \$opts->{frames},
 - ) or &usage;
 - 
 - &usage if $opts->{usage};
 - 
 - sub usage {
 -     print "usage: watchdump.pl --no-header --delay=SEC --frames=CHARS FILE\n";
 -     exit 0;
 - }
 - 
 - my @frames      = split "", $opts->{frames};
 - my $frame_num   = 0;
 - 
 - sub get_frame {
 -     my $frame = $frames[$frame_num];
 -     $frame_num++;
 -     $frame_num = 0 if $frame_num > $#frames;
 -     return $frame;
 - }
 - 
 - sub clear {
 -     system "cls"    if -d "c:\\windows";
 -     system "clear"  if -f "/bin/ls";
 - }
 - 
 - my $file = shift @ARGV or &usage;
 - 
 - while (1) {
 -     &clear;
 -     system "title $file" if -d "c:\\windows";
 -     printf "[%s] watching: %s\n%s\n", &get_frame(), $file, "=" x 80
 -         unless $opts->{no_header};
 -     if (open my $fh, "<", $file) {
 -         print join "", <$fh>;
 -         close $file;
 -     } else { warn "cannot open $file: $!\n"; next; }
 - } continue {
 -     sleep $opts->{delay};
 - }
 
 
  |