func middle_three(n) { var l = n.len if (l < 3) { "#{n} is too short" } elsif (l.is_even) { "#{n} has an even number of digits" } else { "The three middle digits of #{n} are: " + n.digits.slice((l-3)/2).first(3).flip.join } } var nums = %n( 123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345 1 2 -1 -10 2002 -2002 0 ) nums.each { say middle_three(_) }