my @values = map { 1 / $_ } (2,3,6,7,9,11,13,14); for (@values) { /\.\d*?(\d+?)\1/; print "$_: $1\n" } __END__ 0.5: 0.333333333333333: 3 0.166666666666667: 6 0.142857142857143: 142857 0.111111111111111: 1 0.0909090909090909: 09 0.0769230769230769: 076923 0.0714285714285714: 714285