I have a hash of hashes. Slices in this context are notably underrepresented in the Perl literature I've consulted (POD's and Camel).
I've done this before, but always by experimentation. Time has taught me not to depend on something I've only learned by verifying against an implementation.
And this is how to do it: (Score:2)
Note, don't make the mistake of
which parses correctly but does not give you what you're looking for.I don't think I'd even know about slices if it weren't for the warning you get with
@array[$i].J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Testing against implentations (Score:1)
One of my beefs about perl is that it doesn't come with a good interactive environment (unlike python). I frequently test things against an implementation, just to see whether something works or not; I usually go to the documentation afterwords. :-)
I must say though, that hash slices are one of those things that I nearly always avoid if possible; they're just too visually cluttered.
Re:Testing against implentations (Score:2)
It's not a very good interactive environment, but you can use the debugger with a command like
perl5.6.1 -de 1. I do it often, including yesterday when playing with slices.I haven't completely decided if I should avoid hash slices or not. I'll agree they seem cluttered. I'll have to wait until I'm maintaining this code three years from now to decide. :) For now I'm using them because they seem less cluttered than the alternative.
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Re:Testing against implentations (Score:1)
Testing is sometimes a problem. For testing Slash, I wrote Slash::Test, which exports the four major objects, Dumper(), the entire API, all the constants, all the available plugin objects, etc. so I can do stuff like:
Ever
Re:Testing against implentations (Score:1)
perl -deadthat folks have mentioned.For interactive exploration of complex structures, I've found Data::Walker [cpan.org] to be very useful.