Nkuipers wrote: > > Hello all, Hello,
> My hash keys look something like this: > > >1234 x5 > > So I am thinking a cmp, as opposed to <=> is best. > > What I want is for the keys to be sorted as follows: > > >1 x.... > >2 x.... > >3 x.... > .. > .. > .. > >n x.... > > This is what I have in my script at the moment: > > my @sort_this = keys %final_list; > my @sorted = sort { $a cmp $b } @sort_this; > for (@sorted) { print OUT "$_\n$final_list{$_}\n" } > > This gives > > >1 x.... > >10 x.... > >100 x.... > >1000 x.... > >1001 x.... > > etc. > > Any suggestions? I'm not asking for you to spell it out for me with code and > all unless you really want to. Sorry if this is a dumb question. This should work, assuming the digits at the start of the key are no longer then 10. my @sorted = map { /\0(.+)/ } sort map { sprintf "%010d%s\0%s", /(\d+)(.+)/, $_ } keys %final_list; print OUT "$_\n$final_list{$_}\n" for @sorted; John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]