number_formatやyear_formatをhashで指定する場合,ダブルクォートで囲わないとエラーが出る
Bareword "FORMAT_ROMAN" not allowed while "strict subs" in use at dt-format.pl line 17. Execution of dt-format.pl aborted due to compilation errors.
PBP「4.5定数」のuse constantの問題*1に引っかかっているからみたい.この定数はDateTime::Format::Japanese::Commonの中でconstantとして設定されている
use DateTime::Format::Japanese qw(:constans)として,Exportすればよいのですねぇ.どうやらDateTime::Format::Japanese::Commonだけを見て勘違いしたらしい
use strict; use Perl6::Say; use DateTime::Format::Japanese; use DateTime::Format::Japanese qw(:constans); my $dt_ja = DateTime->now( time_zone => 'Asia/Tokyo', ); my $fmt = DateTime::Format::Japanese->new( # number_format => "FORMAT_KANJI_WITH_UNIT", # year_format => "FORMAT_ERA", number_format => FORMAT_KANJI_WITH_UNIT, year_format => FORMAT_ERA, ); my $str = $fmt->format_datetime($dt_ja); say $str;#平成十九年六月二十七日十七時三十七分四十六秒
*1:「use constantによって生成された定数は,文字列が要求されるすべての場所で,裸のワードとして扱われる」