P.293
■localtime

@a = localtime; print "@a";
<実行結果> 54 35 13 20 5 101 3 170 0
例1「年月日(曜日)の表示」
@tx = localtime; @day = qw (日 月 火 水 木 金 土); $year = $tx[5] + 1900; $mon = $tx[4] +1; $day = $tx[3]; $mday = $day[$tx[6]]; print " $year 年 $mon 月 $day 日($ mday)";
<実行結果> 2001 年 6 月 20 日(水)
例2「日付のタイムスタンプ」
&hizuke; $kosu = 50; print <<EOF; 《見積書》 作成日:$stamp 貴社製品 $kosu 個見積もりました。 EOF sub hizuke { @tx = localtime; @day = qw (日 月 火 水 木 金 土); $year = $tx[5] + 1900; $mon = $tx[4] +1; $day = $tx[3]; $mday = $day[$tx[6]]; $stamp = " $year 年 $mon 月 $day 日($mday)"; }
<実行結果> 《見積書》 作成日: 2001 年 6 月 20 日(水) 貴社製品 50 個見積もりました。
例1「平均値の計算」
print "数式:"; $a = eval <STDIN>; print "結果:$a";
<実行結果> 数式:(45 + 82 + 75 + 60) / 4 結果:65.5
例2「フェルマー数の値」
print "数式:"; $a = eval <STDIN>; print $a;
<実行結果> 数式:2**(2**5)+1 4294967297
(イ)矢印演算子 -> を用いる
$a = Math::BigInt -> new ("123456789123456789"); $n = "123456789123456789"; $a = Math::BigInt -> new($n);

(ロ)関数の形による直接定義
$a = new Math::BigInt "123456789123456789"; $n = "123456789123456789"; $a = new Math::BigInt $n;
B 数値属性の繰り越し(オーバーライド)
use Math::BigInt; $n = "123456789123456789"; $a = Math::BigInt -> new($n); print $a;
<実行結果> +123456789123456789
例2:「オーバーライドの確認」
use Math::BigInt; $a = new Math::BigInt 274177; # 6 桁 $b = new Math::BigInt "1672804213107213"; # 16 桁 $c = $a * $b; print $c;
<実行結果> +458644440737096338701
<プログラムA>
use Math::BigInt; $a = new Math::BigInt 274177; # 6 桁の方だけ定義する $b = $a * "1672804213107213"; print $b;
<プログラムB>
use Math::BigInt; $a = new Math::BigInt "1672804213107213"; # 16 桁の方だけ定義する $b = 274177 * $a; print $b;
例3:「フェルマー数のフル表示」
use Math::BigInt; $a = new Math::BigInt 2; $b = $a**(2**6)+1; print $b;
<実行結果> +18446744073709551617
例1:「5/3 の表示」
use Math::BigFloat; $a = new Math::BigFloat 50_000_000; $b = $a / 3; print $b;
<実行結果> 16666666.666666666666666666666666666666667 # 全体で 41 桁(8+33)
例2:「π/3 の表示」
use Math::BigFloat; $pi = "3.141592653589793238462643383279502884197169399375 1058209749445923078164062862089986280348253421170679 "; $a = new Math::BigFloat $pi; $b = $a / 3; print $b;
<実行結果> 1.0471975511965977461542144610931676280657231331250352736583148641026054687620696662093449417807056893