That list generation is lovely!
Just one question. Is the Perl interpreter smart enough to know that int($n/$m) should use integer division rather than floating point division? i.e. would there be any difference in performance between int($n/$m) vs. ($n-$r)/$m?
In more strongly typed languages, the type of the variables determines the meaning of the '/' operator (integer division vs. floating point division) so ($n-$r)/$m would be faster. However in Perl, the operator determines the type of the operands, so maybe there is no difference in performance between the two expressions in Perl? Or maybe ($n-$r)/$m is slower because the int(...) gives the Perl interpreter a clue to context and hence the opportunity to use integer division when it sees such a simple expression as int( token / token )?