Это скорее комментарий, чем ответ, но я не знаю, как еще его сделать, и вопрос все равно уже получен.
Обратите внимание, что использование слова вместо печати аккуратно обходит весь вопрос. То есть
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
my $val = 1;
for ( 1 .. 100 ) {
$val = ($val * $val + 1) % 8051;
say ($val / 8050);
}
работает, как задумано, без проблем даже не возникает. Я до сих пор поражаюсь, насколько полезно сказать, учитывая, что это такая крошечная разница.