我的问题如下:
我有一个由几个部分组成的系统。每个版本由组件的版本组成。基本上是向最终用户表明,他必须设置一个环境变量列表,以具有兼容和稳定版本的组件。
这需要用户专门设置所有组件的版本,这是一个痛苦的,因为有时他可能会错过一些,因为我们有一个庞大的列表。
我目前的解决方案是一种非常暴力的算法,我检查单个组件的版本,并为所有其他组件设置其他环境变量。这只需要用户设置一个环境变量。但这种方法的问题是,在我的代码中,perl中的一堆错误只会增加。
if (defined $ENV{VARIABLE_NAME}) {
my $x = $ENV{$VARIABLE_NAME} ;
if ( $x =~ /version/){
$ENV{VAR1} = "a";
$ENV{VAR2} = "b";
} elsif (){} elsif(){}
}
有没有更好的方法…
将每个版本的环境变量放入散列中。为所有版本制作一个哈希列表。
然后遍历哈希列表,查找环境变量,如果找到一个,设置其他的。你就完成了。如果没有,遍历哈希的其余部分。如果您没有找到任何内容,请转到列表中的下一个列表并重复。
推荐阅读:"perldoc perldata"
我希望这足以让你开始。