Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Symbolic references

by LanX (Canon)
on Apr 15, 2013 at 04:35 UTC ( #1028672=note: print w/ replies, xml ) Need Help??


in reply to Symbolic references

> so is there a better way to accomplish what I'm trying to do?

DB<100> $path='var1/var2/var3' # input => "var1/var2/var3" DB<102> @path=split /\//,$path # extract path => ("var1", "var2", "var3") DB<103> $hash_ref->{var1}{var2}{var3}=42 # init nested test-hash => 42 DB<104> $node=$hash_ref # set start => { var1 => { var2 => { var3 => 42 } } } DB<105> $node=$node->{$_} for @path # walk down path => "" DB<106> $node # check result => 42

HTH! =)

Cheers Rolf

( addicted to the Perl Programming Language)


Comment on Re: Symbolic references
Download Code
Re^2: Symbolic references
by Anonymous Monk on Apr 15, 2013 at 05:31 UTC

    You've partially lost me with that answer.

    What if I may have a variable number of variables..
    program.pl var1 program.pl var1/var2 program.pl var1/var2/var3
    etc? Is there a programatic way to read N variables into the reference?
      I've changed my code to be less terse and hopefully better understandable step by step.

      > What if I may have a variable number of variables..

      you can put a unlimited anount of elements into '$path' and it will work as long as the intermediate values really exist within the nested hashes (otherwise the result is undef).

      > Is there a programatic way to read N variables into the reference?

      ??? what do you mean here with "reference"?

      Cheers Rolf

      ( addicted to the Perl Programming Language)

        I used the wrong word 'reference' it should have been variable. I've tried to impliment your code below, but I'm still lost...
        foreach $argnum (0..$#ARGV){ print "$ARGV[$argnum]\n"; my $path=$ARGV[$argnum]; @path=split /\//,$path; $node=node->{$_} for @path; print $node; } print "\n"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1028672]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2014-12-29 12:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (187 votes), past polls