まじすみません。昨日書いたばっかりのプログラムが意味不明になりました。
一応全て自分で考えて書いた物です。(なぜ1日で分からなくなるんだ?)。
数学的知識が必要と思われます。誰か解説して下さい。
※書き込むために全書くスペースを使ってます。コピーで動作しません。

my ($xx, $yy, $rr_2) = (256, 256, 253); #xとyは円の中心位置。rは半径。
foreach my $rr ( 0 .. $rr_2){              #0から指定された半径の大きさの円までを全て描く
 foreach my $vv ( 0 .. int ($rr / 1.4142 + 0.5) ){  #1.4140 < n < 1.4146, nは不明数値を少なくすれば問題は起きない。
  my $vv2 = int( sqrt(($rr ** 2) - ($vv ** 2)) +0.5 );  #1pixづつずらして計算する要素
  #1/8づつ円周を描画
  $::image->[$xx + $vv]->[$vv2 + $yy] = 2;        #x軸をずらした場合のyの位置を描画
  $::image->[$xx - $vv]->[$vv2 + $yy] = 3;  
  $::image->[$xx + $vv]->[0 - $vv2 + $yy] = 4;
  $::image->[$xx - $vv]->[0 - $vv2 + $yy] = 5;

  $::image->[$vv2 + $xx]->[$yy + $vv] = 6;        #y軸をずらした場合のxの位置を描画
  $::image->[$vv2 + $xx]->[$yy - $vv] = 7;
  $::image->[0 - $vv2 + $xx]->[$yy + $vv] = 8;
  $::image->[0 - $vv2 + $xx]->[$yy - $vv] = 9;

 }
}

半径を1pxずつずらして指定の大きさまでの円を重ねて書くプログラムです。動作します。
数学的知識が全然ないまま手探りで作りました。質問事項は三つです。

1.4142が2の平方根に見えます。自分で探し出した数値なんですかこれはなんですか?
$vvはなにを意味してますか?
$vv2はなんですか?

自分で書いたコメントがついてるにも関わらず、すでにコメントの意味がわからないです。
プログラムの全容が必要なら全部書きますが、分からない箇所はここだけです。