簡単なファイル共有サービスを実装しています。現在、私はファイルベースのデータベースを使用しています (私のニーズに合っているため)。
# somewhere in my cgi script
sub first_run
{
my $dbh = DBI->connect('dbi:DBM:');
$dbh = DBI->connect("dbi:DBM:", "", "",{ AutoCommit => 1, RaiseError => 1, f_dir=>$DATABASE_DIR} );
unless ($dbh)
{
print "<br>Cannot connect: $DBI::errstr";
return undef;
}
$dbh->do("CREATE TABLE uploads( user_name TEXT,
file_name TEXT,
upload_date TEXT ) ");
$dbh->disconnect( );
}
ご覧のとおり、アップロードのタイムスタンプを文字列として保存することを提案しています。これは、現在は表示するだけでよいためです (localtime() を使用してタイムスタンプを人間が読める形式で取得するとします)。しかし、これは私にはやや悪いようです。後で、ある期間からのアップロードなどを表示したい場合はどうなりますか?
サードパーティの CPAN モジュールを使用せずにタイムスタンプを DBM データベースに保存する一般的な方法は何ですか? 後でそれらをプルしてユーザーに表示するにはどうすればよいですか (私の状況では、文字列に変換します)。