perlの型と8進数、10進数
ある文字列からsubstrで3桁の数値を切り取り、計算に使いたいのですがゼロ詰めの数値の場合8進数になると思っていたのですが、文字列の場合は10進数の数値になります。
これは仕様でしょうか?
perlは型がないので、AもBもCも同じ値だと思っていましたが、
そのあたりについて詳しい方、違いを知っている方教えて頂けますか?
#-- A --
my $s = "007008009010";
print int( substr($s, 0, 3) ) . "\n";
print int( substr($s, 3, 3) ) . "\n";
print int( substr($s, 6, 3) ) . "\n";
print int( substr($s, 9, 3) ) . "\n";
print;
#-- B --
print int("007") . "\n";
print int("008") . "\n";
print int("009") . "\n";
print int("010") . "\n";
print;
#-- C --
print int(007) . "\n"; # 7
#print int(008) . "\n";
#print int(009) . "\n";
print int(010) . "\n"; # 8
お礼
変な質問となりまして申し訳ありません。 確かに内部表現が何なのか、外から知る術はないですね。 全くの勉強不足でした。