for my $week ( map { $_->[0] }
sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] }
map { [$_, split /\./] } keys %IssuesByWeek
) {
# ...
}
####
for my $key ( keys %IssuesByWeek ) {
# New key in format of YYYY-MM-DD
$IssuesByWeek{ get_sunday( $key ) } = delete $IssuesByWeek{ $key };
}
##
##
#!/usr/bin/perl
use strict;
use warnings;
my @list = map { int(rand 1000) + 1 } 1 .. 50;
print "Top 5:\n";
print "\t$_\n" for top_x(\@list, 5);
sub top_x {
my ($list, $x) = @_;
$x--;
my @top;
$#top = $x;
for my $item ( @$list ) {
next if defined $top[ -1 ] && $item <= $top[ -1 ];
for my $id ( 0 .. $#top ) {
$top[ $id ] = $item and last if ! defined $top[ $id ];
if ( $item > $top[ $id ] ) {
@top[ $id .. $#top ] = ($item, @top[ $id .. $#top - 1]);
#splice(@top, $id, 0, $item), pop @top;
last;
}
}
}
return @top;
}