我没有使用 Perl 或 BerkelyDB 的经验。我有一个巨大的 BerleleyDB,其中包含电子邮件列表和 unix 时间戳。我需要帮助来删除时间戳超过 100 天的电子邮件。
我有这部分 Perl 代码
#!/usr/local/perls/perl-5.26.1/bin/perl
use BerkeleyDB;
my $filename = '/usr/local/assp/whitelist.bdb';
my $dbh = new BerkeleyDB::Hash(
-Filename => $filename)
or die "Error opening $filename : $! $BerkeleyDB::Error\n";
my $cursor = $dbh->db_cursor() ;
while ($cursor->c_get($k, $v, DB_NEXT) == 0) {
print "Key: " . $k . ", value: " . $v . "\n";
}
### Close the Berkeley DB
untie $filename;
exit;
它显示了所有带有键 ($k) 和值 ($v) 的行
结果是这样的
Key: [email protected], value: 1578560300
Key: [email protected],[email protected], value: 1578643050
Key: [email protected], value: 1578643050
任何人都可以帮我添加 Perl 代码以在上面执行期间删除所有具有 unix 时间戳值超过 100 天的 Key 行?
只需
c_del
按照文档使用,即