# 面積の単位変換 Convert Area # 引数 面積 単位A 単位B ($Area, $UnitA, $UnitB) # 戻り値 面積の単位変換 ($ConvertArea) sub CONVERTAREA{ my ($Area, $UnitA, $UnitB) = @_; my $ConvertArea = 0; my $SquareMeterA = 0; my $SquareMeterB = 0; # 面積の確認 if($Area <= 0){ return 0; } # $UnitAの平方メートル単位 $SquareMeterA = &SQUAREMETER($Area, $UnitA); # $UnitBの平方メートル単位 $SquareMeterB = &SQUAREMETER($Area, $UnitB); # 面積の単位変換 Convert Area $ConvertArea = ($SquareMeterA / $SquareMeterB) * $Area; return $ConvertArea; } # 平方メートル単位 SquareMeter # 引数 面積 単位 ($Area, $Unit) # 戻り値 平方メートル単位 ($SquareMeter) sub SQUAREMETER{ my ($Area, $Unit) = @_; my $SquareMeter = 0; # 平方メートル if($Unit eq "m"){ # 平方メートル $SquareMeter = 1; }elsif($Unit eq "mm"){ # 平方ミリメートル $SquareMeter = 0.000001; }elsif($Unit eq "cm"){ # 平方センチメートル $SquareMeter = 0.0001; }elsif($Unit eq "km"){ # 平方キロメートル $SquareMeter = 1000000; }elsif($Unit eq "Mm"){ # 平方メガメートル $SquareMeter = 1000000000000; } # ヤード・ポンド法 elsif($Unit eq "in"){ # 平方インチ $SquareMeter = 0.00064516; }elsif($Unit eq "ft"){ # 平方フィート $SquareMeter = 0.09290304; }elsif($Unit eq "yd"){ # 平方ヤード $SquareMeter = 0.83612736; }elsif($Unit eq "pole"){ # 平方ポール $SquareMeter = 25.2928526; }elsif($Unit eq "chain"){ # 平方チェーン $SquareMeter = 404.685642; }elsif($Unit eq "furl"){ # 平方ハロン $SquareMeter = 40468.5642; }elsif($Unit eq "ml"){ # 平方マイル $SquareMeter = 2589988.11; }elsif($Unit eq "lea"){ # 平方リーグ $SquareMeter = 23309893; }elsif($Unit eq "ro"){ # ルード $SquareMeter = 1011.7141056; }elsif($Unit eq "ac"){ # エーカー $SquareMeter = 4046.8564224; } # 尺貫法 elsif($Unit eq "bu"){ # 平方分 $SquareMeter = 0.0000918273646; }elsif($Unit eq "sun"){ # 平方寸 $SquareMeter = 0.000918273646; }elsif($Unit eq "syaku"){ # 平方尺 $SquareMeter = 0.0918273646; }elsif($Unit eq "ken"){ # 平方間 $SquareMeter = 3.30578512; }elsif($Unit eq "jou"){ # 平方丈 $SquareMeter = 9.18273646; }elsif($Unit eq "chou"){ # 平方町 $SquareMeter = 11900.8264; }elsif($Unit eq "ri"){ # 平方里 $SquareMeter = 15423471.1; }elsif($Unit eq "syaku"){ # 勺 $SquareMeter = 0.03305785; }elsif($Unit eq "gou"){ # 合 $SquareMeter = 0.3305785; }elsif($Unit eq "tsubo"){ # 坪 $SquareMeter = 3.305785; }elsif($Unit eq "se"){ # 畝 $SquareMeter = 99.174; }elsif($Unit eq "tan"){ # 反 $SquareMeter = 991.74; }elsif($Unit eq "chou"){ # 町 $SquareMeter = 9917; } # 他 elsif($Unit eq "a"){ # アール $SquareMeter = 100; }elsif($Unit eq "ha"){ # ヘクタール $SquareMeter = 10000; }elsif($Unit eq "bn"){ # バーン $SquareMeter = 1e-28; }else { $SquareMeter = 0; } return $SquareMeter; }