Perl には、deg2rad(度からラジアンに変換)といった関数は標準では用意されていないので、自分で書くか、Math::Trig モジュールを組み込む。もちろん俺はモジュール使うよ(笑)
#!/usr/bin/perl
use Math::Trig; # 三角関数計算用モジュール
$ido1 = 34.410280; # 場所1の緯度(10進)
$keido1 = 132.450732; # 場所1の経度(10進)
$ido2 = 34.397349; # 場所2の緯度(10進)
$keido2 = 132.447650; # 場所2の経度(10進)
$earth_r = 6378.137; # 地球の半径(km)
$idoSa = deg2rad(abs($ido2 - $ido1)); # 緯度差をラジアンに
$keidoSa = deg2rad(abs($keido2 - $keido1)); #経度差をラジアンに
$nanbokuKyori = $earth_r * $idoSa; # 南北の距離
# 東西の距離(赤道から離れると経度間の距離は縮まるので誤差計算)
$start_ido = $ido1; # 緯度の小さい方を開始地点に
if ($ido1 > $ido2) {
$start_ido = $ido2;
}
$touzaiKyori = cos(deg2rad($start_ido)) * $earth_r * $keidoSa;
# 三平方の定理(xの2乗 + yの2乗 = 求める距離の2乗)で直線距離計算
$d = sqrt(($touzaiKyori ** 2) + ($nanbokuKyori ** 2));
print "2点間の距離=" . $d . "km\n";
# END