in reply to Re^7: Invoke sub whose name is value of scalar
in thread Invoke sub whose name is value of scalar
Did you actually try my suggestions? Or, did you just read them and go "I don't get it."?
Yes, I tried your suggestions. I'm really interested in knowing how you would solve the problem, but with your indications I didn't get it:
Remove the no strict 'refs'; in both subroutines and try the following: ...
my $root = {}; _create_node ($root,"pp1","first"); _create_node ($root->{pp1},"ppp1","second"); _create_node ($root->{ppp1},"pppp1","third"); _create_node ($root->{pppp1},"ppppp1","root"); my $infos = _go_through('p1'); #my $infos = _go_through($root); # doesn't work either print Dumper $infos; sub _create_node { # no strict 'refs'; my ($node,$parent,$node_info) = @_; @{$node}{qw/parent info/} = ($parent,$node_info); } sub _go_through { my ($node) = @_; return "" unless defined ${$node}{"info"}; my @info_nodes; while (${$node}{"info"} ne "root"){ push @info_nodes, (${$node}{"info"}); $node = ${$node}{"parent"}; ## Line 33 } return \@info_nodes; }
This doesn't work:
Can't use string ("pp1") as a HASH ref while "strict refs" in use at ... line 33Obviously, I'm missing something, that is why I asked
citromatik
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: Invoke sub whose name is value of scalar
by dragonchild (Archbishop) on Apr 14, 2008 at 16:47 UTC | |
|
Re^9: Invoke sub whose name is value of scalar
by Arunbear (Prior) on Apr 14, 2008 at 16:42 UTC |