use strict; use warnings; use DBI; use Data::Dumper; use HTML::Entities qw/encode_entities/; my $dbh = DBI->connect('DBI:SQLite:', undef, undef, { RaiseError => !!1 }); $dbh->do($_) for split /;;/, <<'GO'; CREATE TABLE example ( id integer, name varchar, age integer, PRIMARY KEY(id) );; INSERT INTO example VALUES (1, 'Alice', 25);; INSERT INTO example VALUES (2, 'Bob', 26);; INSERT INTO example VALUES (3, 'Carol', 24);; INSERT INTO example VALUES (4, 'Dave', 25);; INSERT INTO example VALUES (5, 'Eve', 666);; GO my $sth = $dbh->prepare('SELECT * FROM example'); $sth->execute(); print( "\n". "\t\n". "\t\t".join('', map sprintf('', encode_entities($_)), @{$sth->{NAME_lc}})."\n". "\t\n". "\t\n". join("\n", map sprintf( "\t\t%s", join '', map sprintf('', encode_entities($_)), @$_ ), @{ $sth->fetchall_arrayref })."\n". "\t\n". "
%s
%s
\n" );