On Friday, May 17, 2002, at 05:34 , Andy Schwarz wrote: [..] > The e-mail headers look like: > > Date: Mon, 31 Jan 2000 19:09:12 -0600 > Reply-To: Bob Jones <[EMAIL PROTECTED]> > Sender: ISWORLD Information Systems World > Network<[EMAIL PROTECTED]> > From: Bob Jones <[EMAIL PROTECTED]> > Subject: AMCIS 2000 Minitrack > > The Perl script: > > # find the date line > $DatePos = index($ThisMessage, "Date: "); > $EndDatePos = index($ThisMessage, "\n", $DatePos); > > # extract the date line from the header > if ($DatePos > 0) { > $Date = &Trim(substr($ThisMessage, $DatePos + 6, $EndDatePos - > $DatePos - > 6)); [..]
how about a little simpler??? I had to add a line of Junk to even get yours to almost fly If I remove the line of HeaderStuff Junk it chokes.... but either way why not the simpler sub GrotDateFromMsg { my ($msg ) = @_; my $string = 'bad'; if ($msg =~ m/Date:\s+([^\n]+)/ ) { $string = $1; } $string; } given your 'message' it will return the thing I think you want and the print " She Called it's a \$Date :$Date:\n" ; puts your variable inbetween the colons.... :Mon, 31 Jan 2000 19:09:12 -0600: # the ':' are to show size then from there you can get along to reverse engineering what ever it is that you want... ciao drieux --- my $ThisMessage =<<EOM; HeaderStuff Junk Date: Mon, 31 Jan 2000 19:09:12 -0600 Reply-To: Bob Jones Sender: ISWORLD Information Systems World Network<ISWORLD\@LISTSERV.HEANET.IE> From: Bob Jones <bjones\@MAIL.COX.SMU.EDU> Subject: AMCIS 2000 Minitrack EOM print "Start with:\n$ThisMessage\n#-------\n"; my $DatePos = index($ThisMessage, "Date:"); my $EndDatePos = index($ThisMessage, "\n", $DatePos); my $Date; # extract the date line from the header if ($DatePos > 0) { $Date = &Trim(substr($ThisMessage, $DatePos + 6, $EndDatePos - $DatePos - 6)); $Date = lc($Date); } if ($Date) { print "$Date\n" ; }else{ print "No date for \$Date - it just sit by the phone\n"; } if ($ThisMessage =~ m/Date:\s+([^\n]+)/ ) { $Date = $1; if ($Date) { print " She Called it's a \$Date :$Date:\n" ; } } #------------------------ # sub Trim { my ($msg ) = @_; my $string = 'bad'; print "Sub: with :$msg:\n"; if ($msg =~ m/Date:\s+([^\n]+)/ ) { $string = $1; } $string; } # end of Trim -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]