http://www.perlmonks.org?node_id=57356
Category: E-Mail Programs
Author/Contact Info Mike Lewis cajun
cajun {at} cajuninc.com
Description: Rotate those tired .signature taglines automatically. Put your taglines in the file $siginfile, one tagline per line. Setup a cron job to run the script every few minutes. Now you won't have to manually change your .signature line.

Output looks something like this:

--

Backup not found! A)bort, R)etry or P)anic?
10:25pm up 23:22, 6 users, load average: 1.04, 1.10, 1.14

#!/usr/bin/perl -w

use strict;

my $debug=0;
my $home='/home/users/somebody';
my $siginfile="$home/sig/sigfile";
my $tearline="  \n";
my $uptime=`uptime`;
my $outfile="$home/\.signature";

open(INFILE,"$siginfile") or die "Can't open $siginfile :$!";
open(OUTFILE,">$outfile") or die "Sorry, but I can't write to $outfile
+ :$!";

my %hash;

while(<INFILE>){
  # build a hash with $. as key and $_ as value
  $hash{$.}=$_;
}

my $rand=rand($.);

my @body;

push (@body, $tearline);
push (@body, qq(  $hash{sprintf("%.0f", ($rand))}));
push (@body, $uptime);

if ($debug){
  print @body;
} else {
  print OUTFILE @body;
}

close INFILE;
close OUTFILE;