2016-10-26 70 views
0

我的問題是:我可以修復組件版本的產品發佈在Perl

我有一個由幾個部分組成的系統。 每個版本都包含組件版本。基本上向最終用戶表明,他必須設置一個環境變量列表,使其具有comptabile和穩定版本的組件。

這需要用戶專門設置所有的組件版本,這是一個痛苦的時刻,因爲有時他可能會錯失少數,因爲我們有一個巨大的列表。

我目前的解決方案是一個非常蠻力的算法,我檢查單個組件的版本和設置其他所有組件的其他環境變量。這需要用戶只設置一個環境變量。 但是,這種方法前進的問題將是在我的代碼perl中一堆ifels只會增加。

if (defined $ENV{VARIABLE_NAME}) { 
     my $x = $ENV{$VARIABLE_NAME} ; 
     if ($x =~ /version/){ 
     $ENV{VAR1} = "a"; 
     $ENV{VAR2} = "b"; 
    } elsif(){} elsif(){} 

}

有沒有更好的辦法...任何輸入將是有益的。

+1

您可以將產品帶出您自己的shell環境。基本上是一個設置所有正確版本並運行bash的腳本。首先從頭開始,然後從內部啓動產品。 – simbabque

+1

此外,您可以聲明性地定義設置,例如在一個散列中:''v0.1'=> {VAR1 =>'a',VAR2 =>'b'},'v0.2'=> {VAR1 =>'c',VAR2 =>'d'} '等 – choroba

+0

非常感謝...輸入... –

回答

0

將環境變量放入每個版本的散列值中。 爲所有版本列出這些哈希列表。

然後通過哈希列表,尋找環境變量,如果你找到一個,設置其他的。你完成了。如果沒有,請通過散列的其餘部分。如果您沒有找到任何東西,請轉到列表中的下一個並重復。

推薦閱讀: 「的perldoc perldata

我希望這是足以讓你開始。

+0

謝謝neuhaus ...將通過它。 –

+0

好的,如果你有關於一個特定的細節的問題,只需發佈​​。如果這解決了您的問題,請將答案標記爲解決方案。謝謝。 – neuhaus