#!/usr/local/bin/perl ############################################################################### # Sam Sultan # # Chat application ############################################################################### use CGI "param"; #use CGI perl module $htmlfile = "../web/demo/perl/chat.html"; $chatfile = "../data/chat.file"; if (param()) { # is there form input? &update(); &read(); } &display(); ############################################################################## # display: read the chat html form and reprint it ############################################################################## sub display { open(HTML, "<$htmlfile") || ($msg = "Cannot open $htmlfile input!"); print "Content-type: text/html\n"; print "\n"; while ($line = ) { # print chat html form ($line =~ /^/) ? print @dialog : print $line; } print "
$msg";
close(HTML);
}
##############################################################################
# update: updates the chat file with a new entry
##############################################################################
sub update {
$user = param('user');
$comment = param('comment');
open(CHAT, ">>$chatfile") || ($msg = "Cannot open $chatfile for output!");
$newEntry = " $user: $comment
\n";
print CHAT $newEntry; # write new entry to file
close(CHAT);
}
##############################################################################
# read: reads the entire chat file
##############################################################################
sub read {
open(CHAT, "<$chatfile") || ($msg = "Cannot open $chatfile for input!");
@dialog =