I always restart Apache so that's not the problem. Here are the full contents of startup.pl and Config.pm as well as the first 20 or so lines of index.cgi.
Contents of startup.pl:
use lib qw(/var/www/blogapp);
use Config ();
use CGI;
use DBI;
use DBD::SQLite;
use HTML::Template;
use XML::RSS;
use Net::SMTP;
use Captcha::reCAPTCHA;
use HTML::Entities;
use HTTP::Request::Common;
use URI::_foreign;
use Errno;
use Net::HTTP;
use IO::Select;
use Compress::Zlib;
use Log::Agent;
use URI::http;
use LWP::Protocol::http;
use Carp::Heavy;
1;
Contents of Config.pm:
package Config.pm;
use strict;
our $database = 'data/site.db';
our $tmplfile = 'templates/index.html';
our $blog_title = 'example.com';
our $blog_subtitle = 'My New Blog';
our $blog_url = 'http://www.example.com/';
our $blog_owner = 'user@example.com';
our $blog_rights = 'Copyright 2009, Example User';
our $feed_updates = 'hourly';
our $captcha_pubkey = '';
our $captcha_seckey = '';
our $comment_max_length = '1000';
our $comments_allowed = 0;
our $smtp_server = 'localhost:25';
our $smtp_sender = 'blogapp@example.com';
1;
First ~20 lines of index.cgi:
use strict;
my $database = $Config::database;
my $tmplfile = $Config::tmplfile;
my $blog_title = $Config::blog_title;
my $blog_subtitle = $Config::blog_subtitle;
my $blog_url = $Config::blog_url;
my $blog_owner = $Config::blog_owner;
my $blog_rights = $Config::blog_rights;
my $feed_updates = $Config::feed_updates;
my $captcha_pubkey = $Config::captcha_pubkey;
my $captcha_seckey = $Config::captcha_seckey;
my $comment_max_length = $Config::comment_max_length;
my $comments_allowed = $Config::comments_allowed;
my $smtp_server = $Config::smtp_server;
my $smtp_sender = $Config::smtp_sender;
my $cgi = CGI->new;
my $dbh = DBI->connect("DBI:SQLite:dbname=$database", '', '', { RaiseE
+rror => 1 }) || die $DBI::errstr
;
print STDERR "FOOBAR $Config::blog_title\n";
my $template = HTML::Template->new(filename => $tmplfile, die_on_bad_p
+arams => 0);