Perl で簡単に円周率を出す

Perl の bpi という関数で円周率が出せるらしかったのでやってみた。

まずはコマンドラインでワンライナー。

# 100桁出す
$ perl -Mbignum=bpi -wle 'print bpi(100)'
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

bpi() の引数で出力桁数を設定できる。

次に Perl スクリプトで書いてみる。

#!/usr/bin/perl
use Math::BigFloat;
print Math::BigFloat::bpi(100);

use とかよく分からんけどコレで動いた。

$ perl ./calc-pi.pl
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

手元でやってみると1万桁の計算はハングしてしまい失敗。どういう仕組みで動いてるんだろうコレ。