Data-Nested
view release on metacpan or search on metacpan
lib/Data/Nested/Multifile.pm view on Meta::CPAN
if (exists $$self{"eles"}{$ele}) {
$$self{"err"} = "nmfele02";
$$self{"errmsg"} = "Attempt to overwrite an existing element: $ele";
return undef;
}
# Add the element
my $NME = $$self{"file"}{$label};
$NME->add_ele($ele,$nds);
if ($NME->err()) {
$$self{"err"} = $NME->err();
$$self{"errmsg"} = $NME->errmsg();
return undef;
}
_eles($self);
return;
}
###############################################################################
# COPY_ELE METHOD
###############################################################################
sub copy_ele {
my($self,$ele,@args) = @_;
if (! defined $$self{"file"}) {
$$self{"err"} = "nmffil08";
$$self{"errmsg"} = "No file set.";
}
# Check to make sure $ele is valid (it need only exist)
if (! $self->ele($ele)) {
$$self{"err"} = "nmfele01";
$$self{"errmsg"} = "The specified element does not exist: $ele";
return "";
}
# Get the structure there.
my $file = $self->ele_file($ele);
my $NME = (_ele_nme($self,$ele))[0];
my $nds = dclone($NME->_ele_nds($ele,1));
if (! @args || ! exists $$self{"file"}{$args[0]}) {
# The first argument is not a label, so prepend the label of the
# original element.
unshift(@args,$file);
}
add_ele($self,@args,$nds);
}
###############################################################################
# UPDATE_ELE METHOD
###############################################################################
sub update_ele {
my($self,$ele,@args) = @_;
$$self{"err"} = "";
$$self{"errmsg"} = "";
if (! defined $$self{"file"}) {
$$self{"err"} = "nmffil08";
$$self{"errmsg"} = "No file set.";
}
my $NME;
($NME,$ele) = _ele_nme($self,$ele);
return undef if ($self->err());
$NME->update_ele($ele,@args);
if ($NME->err()) {
$$self{"err"} = $NME->err();
$$self{"errmsg"} = $NME->errmsg();
return undef;
}
_eles($self);
return;
}
###############################################################################
# DUMP METHOD
###############################################################################
sub dump {
my($self,$ele,@args) = @_;
$$self{"err"} = "";
$$self{"errmsg"} = "";
if (! defined $$self{"file"}) {
$$self{"err"} = "nmffil08";
$$self{"errmsg"} = "No file set.";
}
my $NME;
($NME,$ele) = _ele_nme($self,$ele);
return undef if ($self->err());
my $ret = $NME->dump($ele,@args);
if ($NME->err()) {
$$self{"err"} = $NME->err();
$$self{"errmsg"} = $NME->errmsg();
return undef;
}
return $ret;
}
###############################################################################
# SAVE METHOD
###############################################################################
sub save {
my($self,$nobackup) = @_;
if (! defined $$self{"file"}) {
$$self{"err"} = "nmffil08";
( run in 0.552 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )