$YAML::Syck::ImplicitUnicode と use warnings
YAML::Syck の ImplicitUnicode については id:miyagawa さんの記事 - YAML parser が詳しいのですが,
perl -w -MYAML::Syck -e '$YAML::Syck::ImplicitUnicode = 1;'
とすると,
Name "YAML::Syck::ImplicitUnicode" used only once: possible typo at -e line 1.
みたく警告がでてしまいます。
同じように Syck パーサの挙動を制御する ImplicitTyping については,
perl -w -MYAML::Syck -e '$YAML::Syck::ImplicitTyping = 1;'
としても警告はでません。
YAML/Syck.pm の 3 行目あたり
use vars qw( @ISA @EXPORT $VERSION $ImplicitTyping $UseCode $LoadCode $DumpCode $SortKeys $DeparseObject );
ここに $ImplicitUnicode がないのがイカンのかなぁ。そういえば $Headless もないですね。ワケありなのかなぁ。そもそも普通 use warnings なんてしないのかなぁ。
ちなみに JSON::Syck については JSON/Syck.pm のほうで使われてるんで,同じようなことをしても警告はでません。
とりあえず,
{ no warnings 'once'; $YAML::Syck::ImplicitUnicode = 1; }
ってやれば逃げれる…でもこの書き方だと local にできねい…