The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

SQLite

    # create database
    my $dbh = P->handle('sqlite:/path/to/db.sqlite');

    # create memory databse
    my $dbh = P->handle('sqlite:');

field with the current unix timestamp by default

    "unix_timestamp" INTEGER NOT NULL DEFAULT(CAST(STRFTIME('%s', 'now') AS INT))

autogenerated UUID

    CAST(uuid_generate_v1mc() AS BLOB)
    CAST(uuid_generate_v4() AS BLOB)

FAQ

SQLite will NOT use the second column of an index if the first column was an inequality expression (eg. customer > 33).

If you create two separate indices, only one of them will be used, the other expression will be evaluated on the result set generated by the first. (on an Oracle, it could execute the two index search and intersect the result sets, if optimization is cost based and certain criteria meets, but thats a rare case).