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
In reply to Re^8: Invoke sub whose name is value of scalar
by citromatik
in thread Invoke sub whose name is value of scalar
by andreas1234567
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |