in reply to A better (ie.more concise) way to write this?
assuming the elements are in the range 0 to 9 to start with you could also do
++$_ < 10 || ( $_ -= 10 ) for @a; [download]
but I see that your original array has 10 as an element