@bar = map { $$_[0] } sort { $$a[1] <=> $$b[1] || $$a[2] <=> $$b[2] || $$a[3] <=> $$b[3] } map { [$_, split/-/] } @foo;