Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- my $itemHash = {
- tag1 => {
- name => "Item 1",
- order => 1,
- enabled => 1,
- },
- tag2 => {
- name => "Item 2",
- order => 2,
- enabled => 0,
- },
- tag3 => {
- name => "Item 3",
- order => 3,
- enabled => 1,
- },
- ...
- }
- keys %$itemHash; # Resets the iterator
- while(my($tag, $item) = each %$itemHash) {
- print "$tag is $item->{'name'}"
- }
- my @sorted = sort {$hash{$a}{order} <=> $hash{$b}{order}} keys %$itemHash;
- my @sortedpairs = map {$_ => $itemHash->{$_}} @sorted;
- sub ridiculousEach {
- my %hash = @_;
- return map
- {$_ => $hash{$_}}
- sort
- {$hash{$a}{order} <=> $hash{$b}{order}}
- keys %hash;
- }
- sub giveIterator {
- my %hash = @_;
- my @sorted = sort {$hash{$a}{order} <=> $hash{$b}{order}} keys %hash;
- return sub {
- my $key = shift @sorted;
- return ($key => $hash{$key});
- };
- }
- my $iterator = giveIterator(%$itemHash);
- while (my ($tag, $item) = $iterator->()) {
- ...;
- }
- for my $key ( sort { $itemHash->{$a}{order} <=> $itemhash->{$b}{order} } keys %$itemHash ) {
- print "$key is $itemHash->{$key}{name}";
- }
- my $itemHash = {
- tag1 => {
- name => "Item 1",
- order => 1,
- enabled => 1,
- },
- tag2 => {
- name => "Item 2",
- order => 2,
- enabled => 0,
- },
- tag3 => {
- name => "Item 3",
- order => 3,
- enabled => 1,
- }
- };
- foreach((sort{$a cmp $b}(keys(%$itemHash)))){
- print "$_ is $itemHash->{$_}->{'name'}n";
- }
Add Comment
Please, Sign In to add comment