in reply to Re^3: Hash part linking
in thread Hash part linking

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re^5: Hash part linking
by bobf (Monsignor) on Aug 14, 2004 at 17:04 UTC
    chiburashka,

    If I understand you correctly, you're trying to link an element in one array to another array (in a hash of arrays). In other words, you want to add an arrayref to an array. The solutions posted by both Limbic~Region and borisz do exactly that. Unless we are still misunderstanding your problem, you might want to peruse perlref to gain a more thorough understanding of references. References are very powerful tools that will serve you well, provided you know how to use them effectively.

    On the other hand, I wonder why you need an arrayref at all. Could you not simply use the words in the definition directly as hash keys?

    HTH, bobf
      what do you mean by by using the definition directly as hash keys ?
        If a picture is worth 1000 words, maybe an example is, too:
        use strict; use warnings; my %dict = ( foo => [ 'foo', 'is', 'not', 'bar' ], bar => [ 'bar', 'is', 'not', 'foo' ] ); # push a ref to the array given by $dict{bar} onto the array given by +$dict{foo} push( @{ $dict{foo} }, \@{ $dict{bar} } ); my $wordbar = ${ $dict{foo} }[3]; # accessing the definition for bar can be done through the ref, but al +so directly print join( ' ', ${ $dict{foo} }[4], '=', $dict{$wordbar} ), "\n"; print join( ' ', ${ $dict{foo} }[3], '=', @{ $dict{ ${ $dict{foo} }[3] + } } ), "\n"; print join( ' ', ${ $dict{foo} }[3], '=', @{ $dict{$wordbar} } ), "\n" +; print join( ' ', ${ $dict{foo} }[3], '=', @{ ${ $dict{foo} }[4] } ), " +\n";
        If this really isn't what you're trying to do, please provide more information and we'll try to help.
        A reply falls below the community's threshold of quality. You may see it by logging in.