use VERSION and use feature
そろそろ新しいperlを使えそうなので、確認しておく。
use $VERSION
use v5.14;
これは以下のことが起きる
- compile time version check
- use feature ':VERSION' if VERSION >= 5.9.5
- use strict if VERSION >= 5.11.0
VERSIONの互換性を気にするときは以下のように書けばいいんでないでしょうか。
use v5.14.2;
use 5.014_002; # for backwards compatibility. see `perldoc version`
use feature
perl-5.14.2の時点で以下の4つがある
- say
- state
- switch
- unicode_strings
それぞれの機能は以下のようにしてimportできる
use feature qw(say);
面倒なので、まとめてimportできる以下のbundleが存在する。
bundle|features
------------------------------------------
:5.10 |switch, say, state
:5.11 |switch, say, state, unicode_strings
:5.12 |switch, say, state, unicode_strings
:5.13 |switch, say, state, unicode_strings
:5.14 |switch, say, state, unicode_strings
bundleは以下のように指定する。
use feature ':5.10';
bundle指定で':5.10.x'と書いた場合、xはなかったものとして扱われる。
また、もう使うことはないだろうが、特別なbundleとして':5.9.5'が存在し、':5.10'として扱われる。
the ’unicode_strings’ feature
5.13.8から完全にサポートされて、Unicode関わるバグ(文字列のappend時の挙動とか)を治してくれる模様。
詳しくはperldoc feature
とperldoc perlunicode
のThe "Unicode Bug"を参照。
perldoc feature
にも以下のようにあるので、新規に書く場合は使ったほうがいいのではないでしょうか。
if you are potentially using Unicode in your program,
the "use feature 'unicode_strings'" subpragma is strongly recommended.
0 件のコメント:
コメントを投稿