--- /dev/null
+#! /usr/bin/perl
+# $Id$
+
+use strict;
+use warnings;
+print sort {
+ my $a=$a;
+ my $b=$b;
+ while ($a ne "" || $b ne "") {
+ $a=~s/^(\D+)//s;
+ my $as=$1;
+ $b=~s/^(\D+)//s;
+ my $bs=$1;
+ my $rs=$as cmp $bs;
+ return $rs if $rs;
+ $a=~s/^(\d+)//s;
+ my $an=$1;
+ $b=~s/^(\d+)//s;
+ my $bn=$1;
+ my $rn=$an<=>$bn;
+ return $rn if $rn;
+ }
+ return 0;
+} @ARGV ? map "$_\n",@ARGV : <>;