Using a regex to separate the letters from the digits, and then sorting numerically on the digits, and finally putting back the pieces together:
$ perl -e 'use strict;
> use warnings;
> use Data::Dumper;
>
> my @a = qw / E1180 D250 A1180 E855 E975 A130 A250 B1105 B1255 B2480
+C1180 C1600 D1180 /;
>
> print "$_\n"
> for map "$_->[0]$_->[1]",
> sort { $a->[1] <=> $b->[1]}
> map { /([A-Z]+)(\d+)/; [$1, $2]} @a;'
A130
D250
A250
E855
E975
B1105
E1180
A1180
C1180
D1180
B1255
C1600
B2480
Note that you did not specify any sort order for the letters when the digits are the same, so the items are kept in the original order in that case (see e.g. A1180, C1180 and D1180).
Update:: removed a piece a code that got accidentally pasted twice.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.