我一直在使用DBM :: Deep,到目前为止,它很容易读取和更新数据库中的键,但是当涉及到添加或删除实体时,它会变得有点复杂,我看不出如何它可以做到。
我使用XML :: Hash导入了一个XML文件,然后在DBM :: Deep对象上复制。所以结果有点复杂......当然,目标是能够轻松地重新创建XML文件。
所以这段代码:
use DBM::Deep;
use List::Util qw(first);
use Data::Dumper;
my $db = DBM::Deep->new('foo.db');
my $devices = $db->{foo}->{devices}->{device};
(my $match) = grep { $_->{hostname} eq 'myfoo' } @$devices;
print Dumper ($match);
print Dumper($devices);
为第一次打印提供以下输出:
$VAR1 = bless( {
'enable' => '0',
'hostname' => 'myfoo',
'auth' => 'myauth',
'ip' => 'myip',
'protocol' => 'ssh'
}, 'DBM::Deep::Hash' );
第二张照片显示:
$VAR1 = bless( [
bless( {
'enable' => '0',
'hostname' => 'myfoo',
'auth' => 'myauth',
'ip' => 'myip',
'protocol' => 'ssh'
}, 'DBM::Deep::Hash' ),
bless( {
'ip' => 'myotherip',
'hostname' => 'myotherfoo',
'auth' => 'myauth',
'protocol' => 'telnet'
}, 'DBM::Deep::Hash' ),
等等。
有人可以帮助我了解如何在此数据结构中创建和删除?