(1) perl -v (2) perl -e 'print $]' (3) perl -e 'printf "version is v%vd\n", $^V' # perldoc perlvar 参照
$^V は Perl 5.6.0 で導入された。それより前の Perl では定義されていない。
perldoc perlvar 参照。
変数 $] には Perl インタプリタの「バージョン番号 + パッチレベル / 1000」を表す浮動小数点数が格納されている。
Perl 5.6.0 から導入された定義済み変数。 Perl インタプリタの 「chr(リビジョン番号) . chr(バージョン番号) . chr(サブバージョン番号)」を表す文字列および、「リビジョン番号 + バージョン番号 / 1,000 + サブバージョン番号 / 1,000,000」の数値を格納している。 文字列として扱った場合は前者、数値として扱った場合($^V + 0.0 など)は後者の値を得ることができる。
perldoc perldata 参照。
Perl 5.6.0 から使用することができるようになった v1.2.3.4 という形のリテラル形式。Perl 5.8 より後の Perl では使えなくなる予定。
v の後に10進数をドットで区切って並べたリテラルで、各数値に対応する文字によって構成される文字列を表す。ドットが2つ以上ある場合は、先頭の v は省略可能。
「Perl ベストプラクティス」で推奨している Perl モジュール。 Perl 5.9 からは標準 Perl ライブラリに含まれている。 Perl 5.005_04 から利用可能 (version-0.7203 の場合)。
version モジュールでは、数値形式のバージョン番号(numeric version) の場合は、小数点以下を3桁づつ区切って扱うようになっている。
CPAN では以下を推奨している。
perlmodstyle、perlmodlib 参照。
バージョン番号を3つの数*1で表したい場合は、小数点以下は3桁で区切った方が良い。 今まで小数点以下2桁でリリースしてきている場合に、開発版等で3つ目の数が必要となった場合には、2つ目の数の最後に 0 を補うと良い。
例: 1.25 の次の開発版は 1.250_001 1.25 < 1.250_001、かつ 1.250_001 < 1.26
ただし一度3桁にしたら、それ以降は3桁で進めた方が良い。
例: 1.250_001 の次にリリース版を出す時は 1.26 ではなく 1.260
数値的には 1.26 も 1.260 も同じで順序関係は維持されるが、 小数点以下の数だけで順序を比較する流儀に慣れている人には 1.250_001 と 1.26 の関係が自明ではないためである。
make test で実行するテストスクリプトの中で、標準エラー出力を止めたい場合がある (わざとエラーを起こす時など)。
Perl 5.8.8 の ExtUtils/MM_Unix.pm を参考に
{ local *STDERR_COPY; my $duped = 0; $duped = 1 if open(STDERR_COPY, '>&STDERR'); open(STDERR, '> ' . File::Spec->devnull()) if $duped; my $result = `$command`; my $status = $?; open(STDERR, '>&STDERR_COPY') if $duped; } warn "This message is printed to STDERR\n";
としてみた。 Linux と Win32 ではとりあえずうまくいって動いている。
(open が2引数なのは、当時古い Perl バージョンでも動くように書いたから)
去年の12月3日以来、約半年ぶりのリリース。 リリースしそびれて、随分変更を累積してしまった。 以下主な変更点。
前回の 0.41 に対して、今回は 0.420 とした。 浮動小数点数的には、増分 0.01 で今まで通り。
今後 version.pm が普及した時のことと、developer release を出す時のことを考えて小数点以下3桁ずつのスタイルに移行することにした (関連記事)。
2007年1月に実装。 編集ページや履歴ページが検索エンジンに登録されないようにするための機能。
2007年1月に実装。 リンク spam 対応。
2007年3月に実装。 特に DiKicker で1文字キーワードによる自動リンクを有効にするために追加した。
前述の機能で1文字での自動リンクを有効にしたら、不便な面が出た。
WiKicker / DiKicker では '/' を階層の区切り文字としても扱うことができるようになっていて、サフィックス部分だけでも自動リンクするようになっている。 自動リンクを1文字にしたら「OS/2」というキーワードに対して '2' でも自動リンクが働き、望まないリンクが張られるようになってしまった。 DiKicker では階層的キーワードは無くてもあまり困らないので、'/' の前を省略した自動リンクを無効にできるようにした。
2007年2月に実装。自分としては重宝している。
Google AdSense 挿入用。
2007年4月に実装 load average をチェックして負荷が高い時は、503 を返すようにした。
ソースコードを結構いじった。 deprecated なメソッドの削除も実施したので、0.41 以前から派生しているソフトウェアは多くの場合修正が必要。
Perl はプログラミング言語を指し、 perl は Perl で書かれたプログラムを実行するプログラムというには良く知られています。
Perl 5.6.0 から v1.2.3.4 というリテラル形式が v-strings が出てきたので Perl v5.6.0 のように表記したりしていたのですが、調べてみると v-strings でバージョン番号を示しているのは perl に対しての場合が多く (perl -v でも v-strings で出力される)、Perl については v はつけない方がほとんどでした。
なので nDiki での Perl バージョンを表記する際は v をつけないように修正・統一してみました。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。