halfcountplus has asked for the wisdom of the Perl Monks concerning the following question:

I am using DBI::SQLite in a mason context. Since I'm new to this stuff, I'm writing (non mason) test scripts and then transferring the syntax into the web app code. So, this is the "mason" code that worked in a script:

% my $db = DBI->connect("DBI:SQLite:$db_file"); % if (exists $ARGS{name}) { $db->do("insert into subjects (name) value +s ('$ARGS{name}');"); % print $ARGS{name}; } % my $sql = $db->prepare("select * from subjects"); % $sql->execute;

The prepare and execute work fine. However, initially the write (do insert) line produced this in httpd's error log:

unable to open database file at /var/www/html/mason/subjlist.comp line 4.

Even tho the file is owned by apache. So I changed the mode to 666 from 644 (probably not advisable) to see what would happen (ie, if maybe perl is running as a different user), but I get the same response. The print debugging line comes out correct, and there is no SQLite error.

What have I missed?