#!/usr/bin/perl # Copyright (c) 2004 by Stephen B. Jenkins. # Published in ;login: - The Magazine of the USENIX Association - Oct., 2004 # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. use strict; use warnings; my $title = 'Teaching Schedule'; my $colwidth = 'width=75'; my %colorfor = ( 'bg' => '"#D8E8D8"', 'hddark' => '"#336666"', 'hdlight' => '"#FFFFFF"', 'choir' => '"#FFCCCC"', 'student' => '"#CCFFCC"', 'avail' => '"#FFE7CC"', ); my $html1 =<$title EOF foreach ( qw( Time Mon. Tue. Wed. Thu. Fri. Sat. Sun. ) ) { $html1 .= ""; } $html1 .= "\n"; my $pri = ""; my $pub = ""; while( ) { next unless /^\d/; my $time = substr($_, 0, 6, ""); $pri .= ""; $pub .= ""; my @days = /.{1,4}/g; @days = splice @days, 0, 7; foreach ( @days ) { my $bgc = $colorfor{'avail'}; if( /\S/ ) { if( /CJ|off/ ) { $bgc = $colorfor{'bg'}; } elsif( /C\d/ ) { $bgc = $colorfor{'choir'}; } else { $bgc = $colorfor{'student'}; } $pri .= ""; $pub .= ""; } else { $pri .= ""; $pub .= "";; } } $pri .= "\n"; $pub .= "\n"; } my $html2 = "
$title
$_
$time
$time$_availableavailable
\n"; open PRI, ">private.html" or die "Oops: $!"; print PRI "$html1$pri$html2\n"; close PRI; open PUB, ">public.html" or die "Oops: $!"; print PUB "$html1$pub$html2\n"; close PUB; __DATA__ Time Mon Tue Wed Thu Fri Sat Sun 10:00 CJ off C1 10:30 CJ SK off C1 11:00 CJ SK CJ SF off C1 11:30 CJ CJ off C1 12:00 CJ CJ CJ off off 12:30 CJ CJ CJ off off 1:00 CJ CJ off off 1:30 CJ off off 2:00 CJ off off 2:30 off off 3:00 SF SJ off off off 3:30 SH SJ off off off 4:00 SE SG SH off off off 4:30 SE SG SI off off off 5:00 CJ off off off 5:30 CJ off off off 6:00 C2 C1 off off off 6:30 C2 SA SD C1 off off off 7:00 C2 SA SD C1 off off off 7:30 C2 SB C1 off off off 8:00 C2 SC C1 off off off 8:30 C2 SC C1 off off off