На самом деле исходное регулярное выражение не принимает пустые строки, поэтому, вероятно, оно не работает с последней строкой вашего файла (ссылка на файл примера была бы полезной) Это должно выглядеть так:
perl -ne 'if ($_=~/^(\d+\s+)*$/){print "yep\n";}'
Другим способом может быть проверка всех символов на наличие пробелов или цифр.
Принимая пустые строки:
perl -ne 'if ($_=~/^[\s\d]*$/){print "yep\n";}'
Когда не принимаются пустые строки:
perl -ne 'if ($_=~/^[\s\d]+$/){print "yep\n";}'