Hello, I'm wondering more good or Perlish code.
Strings are in formed "wwwHHMM", from "MON0000" to "SUN2359". So all data in good order is: @week = qw(MON TUE WED THU FRI SAT SUN); for my $w (@week) { for my $HH ('00' .. '23') { for my $MM ('00' .. '59') { push @all, $w . $HH . $MM; } } } So for example, &sortByWeek('FRI0101', 'TUE0202', 'MON2359') is favoured to return ('MON2359', 'TUE0202', 'FRI0101') My code is below, not checked well, but I think it is too cheap, or not tricky, I'm searching another... sub sortByWeek { my @in = @_; my %WeekNum = ('MON'=>0, 'TUE'=>1....); my @WeekStr = ('MON', 'TUE'....); for (@in) { substr($_,0,3) = $WeekNum{(substr($_,0,3)} . "\x00\x00" if defined $WeekNum{(substr($_,0,3)}; } @in = sort @in; for (@in) { substr($_,0,3) = $WeekStr[substr($_,0,1)] if substr($_,0,3) =~ /[0123456]\x00\x00/; } return @in; } Hirosi Taguti [EMAIL PROTECTED] _______________________________________________ Perl-Unix-Users mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs