0埋め数字文字列だって数値変換される

当たり前すぎる話で恐縮ですが、「0埋め数字の文字列だって数値に変換されるんだなぁ」と何か妙に感心したりして。

2桁の0埋め数字(例では"01")から三文字のアルファベットに変換するみたいな事をやって気付きました。

my $datetime = "2008-01-08 23:00:00";
my $month    = substr($datetime,5,2);

print &get_three_char_month($month)."\n";

sub get_three_char_month {
    my $m_num = shift;
    print '::debug:: $m_num : '.$m_num.', ($m_num+1) : '.($m_num+1)."\n";
    my @map = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
               'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',);
    $map[$m_num-1];
}

実行結果。

webmaster@KURO-BOX:~/work$ ./month_test.pl
::debug:: $m_num : 01, ($m_num+1) : 2
Jan
webmaster@KURO-BOX:~/work$