Yes, but the real strings that have to be sorted may not be that easy ...
Yes, but do you see that part of the point hdb was making was that /(..)(..)(....)/ does not extract anything meaningful from a string like '20130401' because the year winds up as '20' and '13', and the month and day fields wind up stuck together as '0401'. As hdb points out, this only works because all this mess is immediately stuck back together to form the original string — which is then sorted lexicographically, as any number of monks have recommended. The fact that learner@perl specifies test data in the @dates array in YYYYMMDD format and has a subsequent comment
@dates; # DD-MM-YYYY
further suggests that he or she does not firmly grasp what is going on.
BTW, a date in the format '2012-04-01' or '2012/04/01' or with any other delimiter character or characters will lexi-sort perfectly well as it stands as long as the delimiter(s) at each position are constant!