print $$_[0], $/ for sort { my @f = $$a[1] <=> $$b[1]; push @f, $$a[2] <=> $$b[2]; push @f, $$a[3] <=> $$b[3]; return $f[0] if $f[0] != 0; return $f[1] if $f[1] != 0; return $f[2]; } map { /(\d+)\D(\d+)\D(\d+)/; [$_, $3,$2,$1] } @d;