#!/usr/bin/perl -w use strict; my @x = qw( 1xxx 2xxx 300x 10xx ); @x = sort @x; print "default sort: @x\n"; @x = sort {local $^W; $a <=> $b} @x; print "numeric sort: @x\n"; #### @x = qw( 5xxx 2xxx 300x 10xx ); @x = sort {$a =~/^d+/ <=> $b =~/^d+/} @x; # WRONG print "regex sort: @x\n"; #### @x = qw( 5xxx 2xxx 300x 10xx ); @x = sort {my ($y) = $a =~/^(\d+)/; my ($z) = $b =~/^(\d+)/; $y <=> $z} @x; print "regex sort: @x\n"; #### _ _ _ _ (_|| | |(_|>< _|