使い方を教えてくださいβ PerlモジュールからベータPerlスクリプト?

StackOverflow https://stackoverflow.com/questions/2474588

  •  21-09-2019
  •  | 
  •  

質問

がんばPerlコードの生産コードの位置にタバコードの位置 (例:生産Perlコードに /usr/code/scripts, ベータPerlコード /usr/code/beta/scripts;生産Perlライブラリで /usr/code/lib/perl やベータ版のライブラリで /usr/code/beta/lib/perl, であり、方法などについては私にとってどのようなセットアップ?

の要件は次の通りである。

  • このコードを同じように生産およびΒ。

    の明確化を推進する任意のコード(図書館やスクリプトからベータの生産にも必要なのは文字通りの発行 cp コマンドからベータ自立- 両方のファイル名、ファイルの内容でなければならないのと同一.

  • ベータ版スクリプトの呼び名を付けなければなその他のベータのスクリプトおよびベータ図書館が存在し又は製造図書館(ベータ図書館が存在しない)

  • このコードのパスは同じとモンスターを作ることにな生産を除くベースディレクトリ/usr/code/ vs /usr/code/beta/)

  • のスクリプトなどの全てのベースディレクトリ その場合、そのサブディレクトリ 任意の深さのレベル(この妨げるクラシック use lib "$FindBin::Bin/../lib" 溶液からの課 31.13.利用lib"プログラミングPerl")

し上がりいただいて解決の問題として、この質問には答えが思い場合があります。

役に立ちましたか?

解決

当社の自社ソリューションし

  • て図書館(うBetaOrProd.pm)

    • 図書館に含めなければならなよ"use BetaOrProd;"を 各スクリプト
    • 図書館を初めて use 決べてのスクリプト後"use strict;"pragma("利用の警告"の場合に使用します。を含む前に BEGIN ブロックとなります。
    • 図書館には BEGIN ブロックを含む多くの論理
    • その BEGIN ブロック図書館にチェックプログラムのディレクトリパス(ベ$0に対して、絶対パス)
    • の場合はディレクトリパスで始ま /usr/code/beta, プログラムとラベーター位置、他の生産
    • いずれの場合 /usr/local/lib/perl は国連のシフトを開始 @INC リスト
    • 場合Β位置 /usr/code/beta/lib/perl は国連のシフトを開始 @INC リストである。
    • 場合Β位置は、特殊変数$isBETA(アクセスによるアクセス用メソッドの方法から輸出されBetaOrProd.pm)が"ベータ".
  • いつでもスクリプト/図書館をめに必要な支援を行うスクリプトへのパスというスクリプトから算出していると判断されたアクセサドルisBETA変数から輸出されBetaOrProd.pm

  • いつでもPerl図書館に必要または使用しなければならない。(ロジックが必要に @INC 改BetaOrProd.時間を知ることのモジュールに輸入されます。場合にはモジュールは現在ベーターの位置は、図書館からのΒ位置を使用するベータスクリプトの他の図書館から駆ります。

主な欠点がこのアプローチ:

  1. 必要条件 各スクリプト が必要"use BetaOrProd;"などの use 決べてのスクリプト後"use strict;"pragma.

    により緩和され、この当社が必要で毎展開のコードへのパスを自動化validatorは、これをチェックして下さい。

  2. できなクローズドΒ版テスター BetaOrProd.pm介 /usr/code/beta/lib/perl .D'uh.

    緩和による徹底したユニット、統合テストの図書館

他のヒント

いたこと FindBin:

use FindBin;
use lib "$FindBin::Bin/../lib";

たれば、汚れモード:

use FindBin;
use lib ("$FindBin::Bin/../lib" =~ m[^(/.*)])[0];

こんに依存しそれらは固定パスすることができ多くの独立したセットのコードシングルマシンとしているだけで、新しいコピーのプロジェクトをクリックします。

私完全なコピーのすべてのプロジェクトモジュールをそれぞれの開発イメージのプロジェクト、そういく信頼のベータコピーして下落のライブコピーのモジュールa use lib /path/to/live/binuse libsが対応するだけなのにリンク /path/to/live/bin 一つのディレクトリ @INC では、いつでも利用可能になります。

場合、ライブやベータ版が行われますから異なる勘定 地域::lib も価値を見て、こんな何日目かを表している。

更新:これは動作しない場合はスクリプト自体がライブを複数のサブディレクトリを指定のディレクトリが動作します。

していたのを使うのと同じように設定します。このモジュールの名前は、プロジェクト名で、しかもその他の業務:荷重一部の環境固有の設定変数の位置データ、資格dev/prodデータベース、例えば、処理コマンドライン引数を設定その他の変数が有のスクリプトのプロジェクト(現在の日付をYYYYMMDD形式でかどうかは、株式市場は、現在開等)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top