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

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

Replies are listed 'Best First'.
Re^6: Hash part linking
by chiburashka (Initiate) on Aug 14, 2004 at 17:27 UTC
    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.