Quoth Jeff Pinyan [mailto:jeffp@crusoe.net]: : : I'm looking for some idioms for dealing with arrays, hashes, : and unnamed : lists. For more information on "The Art of Perl", visit: : : http://magneton-59.dynamic.rpi.edu/book/ : : Submissions I incorporate will be acknowledged. Please don't. :-) : Operating on Lists : ------------------ : : array-to-hash : : while (($k,$v) = each %{{ @list }}){ ... } : while ($i < @list){ ($k,$v) = @list[$i++,$i++]; ... } # obvious %hash = @array; # Some silly ways to get similar results (build %hash from @array) # Silly idiom no. 1 for($i = $[; $i <= $#array; $i++) { ($i % 2) and $hash{$array[$i-1]} = $array[$i]; } # Corollary to silliy idiom no. 1 for($i = $[; $i <= $#array; $i++) { !($i % 2) and $hash{$array[$i]} = $array[$i+1]; } # Silly idiom no. 2 @hash{ grep{$i++;$i % 2} @array } = grep{$j++;not $j % 2} @array; # Silly idiom no. 3 for($i = $[; $i <= $#array; $i+=2) { $hash{$array[$i]} = $array[$i+1]; } # Silly idiom no. 4 %hash = map{ $i++; ($i % 2) and ($k => $_); $k = $_ } @array; # Lastly, do it real stupid and hose @array while(@array) { $hash{pop @array} = pop @array; } That's all the fun I can stand for today; my ride is here. Eli ________________________ Eli Evans Text Preparation Manager Libronix Corp. mailto:eli@libronix.com http://www.libronix.com Ec 12:12; Jn 21:22 ==== Want to unsubscribe from Fun With Perl? Well, if you insist... ==== Send email to <fwp-request@technofile.org> with message _body_ ==== unsubscribe