On Jun 27, Peter Cline said: >After studying examples in "Effective Perl Programming" I devised the >following working code snippet: > >@people{@newkeys} = @$contact{sort keys %$contact}; All a slice is, is a list of elements of the structure. @array[1,3,5] is ($array[1], $array[3], $array[5]) And @hash{$x, $y, $z} = @other{$m, $n, $o}; is ($hash{$x}, $hash{$y}, $hash{$z}) = ($other{$m}, $other{$n}, $other{$o}); So doing something like: @people{@newkeys} = @$contact{sort keys %$contact}; is doing this: 1. sort the keys of %$contact 2. access the VALUES of %$contact in that order 3. assign to the values of %people, whose keys are in @newkeys A long-winded expression would be: @values = @$contact{sort keys %$contact}; for (@newkeys) { $people{$_} = shift @values; } -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ I am Marillion, the wielder of Ringril, known as Hesinaur, the Winter-Sun. Are you a Monk? http://www.perlmonks.com/ http://forums.perlguru.com/ Perl Programmer at RiskMetrics Group, Inc. http://www.riskmetrics.com/ Acacia Fraternity, Rensselaer Chapter. Brother #734 ** Manning Publications, Co, is publishing my Perl Regex book **