Perl - 現在の日時を表示

あまり面倒なことせずに、2012-01-21 (土) 19:22 のように表示させる。

print now(); # 2012-01-21 (土) 19:22 など

sub now {
    my ($minite, $hour, $day, $month, $year, $wday)
        = (localtime)[1 .. 6];
    $wday = qw|日 月 火 水 木 金 土|[$wday];
    sprintf "%04d-%02d-%02d (%s) %02d:%02d",
        $year+1900, ++$month, $day, $wday, $hour, $minite;
}

もしくは、一回だけなら

printf "%04d-%02d-%02d (%s) %02d:%02d", sub {(
    $_[5]+1900, $_[4]+1, $_[3],
    qw|日 月 火 水 木 金 土|[$_[6]],
    $_[2], $_[1]
)}->(localtime);