PostScript::Simpleには楕円を描くためのメソッドは用意されていません。
そのため、自力で書く必要があります。
コツは楕円の中心へtranslateして、そこを中心にscaleします。
用意されているcircleメソッドで円を書いて、
scaleを元に戻して、translateも元に戻します。
これで元の座標軸に戻ります。
# 楕円のサイズ
my $width = 100;
my $height = 50;
# 横幅を基準に描画する
$ps -> {'pspages'} .= sprintf( "%d %d translate\n", $width, $height );
$ps -> {'pspages'} .= sprintf( "1 %.2f scale\n", $height / $width );
$ps -> circle( 0, 0, $width );
$ps -> {'pspages'} .= sprintf( "1 1 %.2f div scale\n", $height / $width );
$ps -> {'pspages'} .= sprintf( "-%d -%d translate\n", $width, $height );
movetoとの使い分けが難しいですね。
楕円のときだけtranslateなのかな?