The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

use common::sense;
use Moose::Autobox;

my $slide_header = q
<html><head><title>Message Based Programming</title>
 
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(document).keypress(function(event){
        var keycode = (event.keyCode ? event.keyCode : event.which);
        if(keycode == '13'){
            window.location.href = "FORWARD_SLIDE";
        }
        if(keycode == '8'){
            window.location.href = "BACKWARD_SLIDE";
        }
    });
});
</script>
 
</head>
<body>
;

system 'rm -f sl_*';
my $get_slide_filename = sub {
    my $n = shift;
    my $filename = sprintf('sl_%05d.html', $n);
    return $filename;
};
my $write_slide;
{   my $slide_ct = 0;
    $write_slide = sub {
        my $slide = shift;
        $slide_ct++;
        my $filename = $get_slide_filename->($slide_ct);
        open my $fh, '>', $filename;
        my $s = $slide_header;
        my $forward_slide = $get_slide_filename->($slide_ct + 1);
        my $backward_slide = $get_slide_filename->($slide_ct - 1);
        $s =~ s/FORWARD_SLIDE/$forward_slide/m;
        $s =~ s/BACKWARD_SLIDE/$backward_slide/m;
        say $fh $s;
        say $fh $slide;
        say $fh '</body></html>';
        close $fh;
    };
}
my $slide = '';
my $code_slide = 0;
my $fh = open my $fh, '<', 'slides.txt';
while(my $line = <$fh>) {
    chomp $line;
    if($line =~ /^#/) {
        $code_slide = 1;
        $line =~ s/^#//;
    }
    if($line =~ /^$/) {
        if($code_slide) {
            $write_slide->("<pre>$slide</pre>");
        } else {
            $write_slide->("<h3>$slide</h3>");
        }
        $slide = '';
        $code_slide = 0;
    }
    $slide .= "$line\n";
}


__END__

my @a = [];

my $ct = 0;
while(1) {
    push @a, 'xyzzy' x 1024;
    $ct++;
    for($ct) {
        my $thing = $a[$ct];
    }
}