nDiki : Perl バージョン

Perl バージョン - Perl version

Perl インタプリタのバージョンの確認のしかた

 (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」を表す浮動小数点数が格納されている。

$^V

Perl 5.6.0 から導入された定義済み変数。 Perl インタプリタの 「chr(リビジョン番号) . chr(バージョン番号) . chr(サブバージョン番号)」を表す文字列および、「リビジョン番号 + バージョン番号 / 1,000 + サブバージョン番号 / 1,000,000」の数値を格納している。 文字列として扱った場合は前者、数値として扱った場合($^V + 0.0 など)は後者の値を得ることができる。

v-strings (version strings, v-文字列)

perldoc perldata 参照。

Perl 5.6.0 から使用することができるようになった v1.2.3.4 という形のリテラル形式。Perl 5.8 より後の Perl では使えなくなる予定。

v の後に10進数をドットで区切って並べたリテラルで、各数値に対応する文字によって構成される文字列を表す。ドットが2つ以上ある場合は、先頭の v は省略可能。

Perl ベストプラクティス」では使用しないようにと書かれている。

version モジュール

Perl ベストプラクティス」で推奨している Perl モジュールPerl 5.9 からは標準 Perl ライブラリに含まれている。 Perl 5.005_04 から利用可能 (version-0.7203 の場合)。

version モジュールでは、数値形式のバージョン番号(numeric version) の場合は、小数点以下を3桁づつ区切って扱うようになっている。

Perl モジュールバージョン番号

CPAN では以下を推奨している。

  • バージョン番号は浮動小数点であること。
  • 小数点以下に少なくとも2桁あること。
  • α版/β版には、通常のバージョン番号の後ろに、'_' と 少なくとも2桁の数字をおくこと。

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 の関係が自明ではないためである。

*1メジャーバージョン番号、マイナーバージョン番号、パッチレベル、リビジョン番号、ビルド番号、……

nDiki で取り上げたバージョン別情報

スポンサード リンク

2006年12月15日 (金)

Perl テストスクリプトの中で標準エラー出力を一時的に止める

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";

としてみた。 LinuxWin32 ではとりあえずうまくいって動いている。

追記

(open が2引数なのは、当時古い Perl バージョンでも動くように書いたから)


[ Perl テストスクリプトの書き方 ]

スポンサード リンク
[ 12月15日全て ]

2007年5月30日 (水)

WiKicker 0.420 リリース - 変更いろいろ

去年の12月3日以来、約半年ぶりのリリース。 リリースしそびれて、随分変更を累積してしまった。 以下主な変更点。

バージョン番号形式を変更

前回の 0.41 に対して、今回は 0.420 とした。 浮動小数点数的には、増分 0.01 で今まで通り。

今後 version.pm が普及した時のことと、developer release を出す時のことを考えて小数点以下3桁ずつのスタイルに移行することにした (関連記事)。

<meta name="robots" content="noindex,nofollow">

2007年1月に実装。 編集ページや履歴ページが検索エンジンに登録されないようにするための機能。

<a rel="nofollow">

2007年1月に実装。 リンク spam 対応。

AutomaticLink 長を可変にした

2007年3月に実装。 特に DiKicker で1文字キーワードによる自動リンクを有効にするために追加した。

'/' の前を省略した自動リンクを有効にするか無効にするかを設定できるように

前述の機能で1文字での自動リンクを有効にしたら、不便な面が出た。

WiKicker / DiKicker では '/' を階層の区切り文字としても扱うことができるようになっていて、サフィックス部分だけでも自動リンクするようになっている。 自動リンクを1文字にしたら「OS/2」というキーワードに対して '2' でも自動リンクが働き、望まないリンクが張られるようになってしまった。 DiKicker では階層的キーワードは無くてもあまり困らないので、'/' の前を省略した自動リンクを無効にできるようにした。

JSON 形式データ出力

2007年4月に実装

(DiKicker) はてなブックマーク数表示機能を追加

2007年1月に実装

(DiKicker) はてなブックマークエントリーページへのボタン表示機能を追加

2007年1月に実装

(DiKicker) grep 検索機能を追加

2007年2月に実装。自分としては重宝している。

(DiKicker) キーワード記事の下部への文字列挿入機能

Google AdSense 挿入用。

(DiKicker) サーバの負荷が高くなったら 503 を返して沈静化を待つようにした

2007年4月に実装 load average をチェックして負荷が高い時は、503 を返すようにした。

内部コードの結構な書き換え

ソースコードを結構いじった。 deprecated なメソッドの削除も実施したので、0.41 以前から派生しているソフトウェアは多くの場合修正が必要。

[ 5月30日全て ]

2010年11月15日 (月)

今日のさえずり: なんで事務系の IT 詳しくない人が Google Chrome 使ってるんだよ

2010年11月15日

  • 07:12 ぼちぼち起床。
  • 07:15 もしかして twicca って戻るボタンで閉じきっちゃうとアプリケーションが終了して定期新着チェックが働かなくなるのかな? #twicca
  • 08:02 何このぶ厚さ! (かなり久しぶりに4枚切り食べてる)
  • 10:55 なんで事務系の IT 詳しくない人が Google Chrome 使ってるんだよ。Internet Explorer を使ってください。
  • 11:04 ブラウザの互換性を理解している人は OK。事務系サイトの Web ブラウザ未対応にはまる人は NG。RT @Naney: なんで事務系の IT 詳しくない人が Google Chrome 使ってるんだよ。Internet Explorer を使ってください。
  • 15:18 なんでうちのオフィスは「重複」を「じゅうふく」と呼ぶ人が多数派なの? やめて伝染る。
  • 18:00 perlbrew install perl-<version> --as myproject-perl すると --as の名前の入ったディレクトリ名で -Dprefix されるのね。同じ Perl バージョンで別々の Perl を入れられることを確認。
  • 19:31 Mojolicious::Lite + Mojolicious::Plugin::Xslate で layout を使った時に、レイアウトテンプレート側では <: $c.content | mark_raw :> で受けとれたけれどこれでいいのかな?
  • 19:33 それと Mojolicious::Lite でのレイアウトテンプレートファイルを置く場所でちょっとはまった。直下の layouts/ ではなくて templates/layouts/ 以下に置かないと駄目だった。
  • 20:56 @__gfx__ ありがとうございます。Mojolicious::Lite の Pod ドキュメント見て最初 Xslate でも <: $content :> で参照できるのかと思ってましたがそうではないんですね。
  • 21:01 @__gfx__ content ヘルパが Mojolicious::Plugin::DefaultHelpers にあるというところまでは辿りついたのですが、どう処理が流れるのかまでは追ってなくて。
  • 22:16 @__gfx__ そうですね。layout にこだわりは無いので Xslate の機能使おうと思います。
  • 22:37 この間車がぶつかって曲がったポールがまた斜めってる。ライトの破片があるし、またぶつけられたな。
  • 23:59 Skype for Android 1.0.0.614 インストールしてみた。PC 上の Skype for Linux と通話できることを確認(Wi-Fi 接続)。ハウリングしたので音質はよくわからん。起動しておくと電池食うのかな? #Xperia
[ 11月15日全て ]

2017年9月15日 (金)

Perl バージョンと perl バージョンの表記

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 をつけないように修正・統一してみました。

[ 9月15日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.088763s / load averages: 0.39, 0.41, 0.37
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker