in reply to Sorting non-standard elements

I'm not exactly sure what you want, but I'm assuming you're looking to sort first by word, then by each of the three numbers. Something like the following might work:
use strict; use warnings; my @arr; while (<DATA>) { chomp; m/(\d+)\.(\d+)\.(\d+)(\w*)/; $arr[$#arr+1] = [$4,$1,$2,$3,$_]; } @arr = sort {@$a[0] cmp @$b[0] or @$a[1] <=> @$b[1] or @$a[2] <=> @$b[ +2] or @$a[3] <=> @$b[3]} @arr; for (@arr) { print @$_[4]."\n"; } __DATA__ 1.2.3YABBA 4.2.7 3.2.1DABBA 9.1.3 4.5.1DOO 12.19.47