#!/usr/bin/env perl use Carp; use DBI; use strict; use warnings; eval { my $DBH=DBI->connect('dbi:SQLite:Library.sqlite','','',{ PrintError=>1, RaiseError=>1 }); $DBH->do("DROP TABLE IF EXISTS packages;"); $DBH->do("CREATE TABLE packages ( package text, body text, unique (package) );"); my $STH=$DBH->prepare("INSERT INTO packages (package,body) VALUES (?,?);"); print "Inserting package 'A'\n"; $STH->execute('A',<<'__A__'); package A; use Carp; use strict; use warnings; use A::B; sub sub_a { Carp::cluck '...'; A::B::sub_b(); } 1; __A__ print "Inserting package 'A::B'\n"; $STH->execute('A::B',<<'__A::B__'); package A::B; use Carp; use strict; use warnings; sub sub_b { Carp::cluck '...'; }; 1; __A::B__ $STH->finish; $DBH->disconnect; }; if (my $error=$@) { Carp::confess $error; }; print "$0 completed." __END__