Pois bem, escrevi o programa. Na hora de executar os selects tudo ia as mil maravilhas, porém na hora do update... Graças ao bom e velho 2> descobri que o problema ocorria pois o SQLite3 não conseguia acessar o arquivo. Achei estranho, mas fui tentar resolver.
A aplicação estava sendo executada como CGI, o usuário da mesma seria o wwwrun. Setei as permissões necessárias para que esse usuário pudesse acessar o arquivo do bd e nada. Pesquisando na documentação do SQLIte li que ele poderia estar tendo problemas em acessar um arquivo de commit e não o bd em si, mudei então a variável temp_store, tanto em execução quanto na compilação e nada.
Como meu tempo estava se esgotando, parti para a decisão hard: editei o arquivo /etc/sudoers (através do comando visudoers) e então inclui as seguintes linhas:
%www ALL=(ALL) NOPASSWD: ALL
E então passeia chamar o SQLite, detro do script, através do sudo. Eu sei que essa não era a melhor maneira de resolver o problema, mas enquanto eu não o modifico para trabalhar em perl...