=~ は正規表現の演算子 eq は文字同士が等しいかどうかを判定する演算子。
質問のケースでは、 数値を比較するため、 eq を使うことはできません。

$n = 1;
until($n eq 1){ ... }
等と特定の一条件を示すことはできても、$nが1以外の場合条件が成立しません。
んで、正規表現を使う必要があるのですが、 =~ もしくは !~といった ~を使った識別子となります。

あと、
until($n =~ /^\d+$/)
は
if($n !~ /^\d+$/)
と一緒。記述方法の問題。もうちょっとperlの演算子と正規表現を調べてみるとよいかと