summaryrefslogtreecommitdiff
path: root/lib/Tree/Template/Declare/DAG_Node.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Template/Declare/DAG_Node.pm')
-rw-r--r--lib/Tree/Template/Declare/DAG_Node.pm15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/Tree/Template/Declare/DAG_Node.pm b/lib/Tree/Template/Declare/DAG_Node.pm
index 3f5fc8a..b55b78f 100644
--- a/lib/Tree/Template/Declare/DAG_Node.pm
+++ b/lib/Tree/Template/Declare/DAG_Node.pm
@@ -3,12 +3,14 @@ use strict;
use warnings;
use Carp;
+our $VERSION='0.1';
+
sub new {
my ($class,$node_class)=@_;
$node_class||='Tree::DAG_Node';
- eval "require $node_class"; ## no critic
- croak "Can't load $node_class: $@" if $@;
+ eval "require $node_class" or ## no critic (ProhibitStringyEval)
+ croak "Can't load $node_class: $@";
return bless {nc=>$node_class},$class;
}
@@ -35,7 +37,7 @@ sub add_child_node {
my ($self,$parent,$child)=@_;
if ($parent->isa('Tree::Template::Declare::DAG_Node::Tree')) {
- push @$parent,$child;
+ push @{$parent},$child;
return $parent;
}
return $parent->add_daughter($child);
@@ -50,7 +52,12 @@ sub set_node_name {
sub set_node_attributes {
my ($self,$node,$attrs)=@_;
- return $node->attributes({%{$node->attributes},%$attrs});
+ my %all_attributes=(
+ %{$node->attributes},
+ %{$attrs},
+ );
+
+ return $node->attributes(\%all_attributes);
}
1;