$M = 8; $A = 5; $X = 0; $C = 0; sub lcrng { $X = (($X * $A) + 1) % $M; $C++; if ($C = $M-1) { $C = 0; $X = lcrng(); } return ($X); }