#!/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 = ; # read entire chat file into array close(CHAT); }