if ($choice =~ /^1$/) { print $socket "STAT",CRLF; $answer = <$socket>; print "$answer\n\n"; if ($answer =~ /^\+OK\s(\d{1,}).*/) { $msgcount = $1; print "You have " . $msgcount . " messages"; } if ($msgcount > 0) { for (my $i = 0; $i < $msgcount; $i++) { print $socket "STAT",CRLF; $answer = <$socket>; print "$answer\n\n"; $msgnum = $i; print "Message Number: " . $msgnum; print $socket "RETR " . $msgnum,CRLF; $answer = <$socket>; if ($answer =~ /^\-ERR/) { print "ERROR"; } else { # these are regular expressions to parse # out and display only the From and Subject # fields from the message header # information which I get using the RFC # 1939 protocol and I backreference the # expressions with "$1" and "$2" scalar # variables if ( $answer =~ /^From:(.*)/ ) { print "From: $1\n"; } if ( $answer =~ /^Subject:(.*)/ ) { print "Subject: $2\n"; } } print "\n"; } } else { print "\n\nYou currently have no messages."; ; next; } next; }