我有以下代码,我们在脚本中手动传递ENVIRONMENT和ENV
NUMBER的值。我想维护一个脚本,并从一些文本文件传递ENVIRONMENT名称及其值的所有值。所以我将来不需要更新它。
任何人都可以帮我解决这个问题吗?
我已经减少了我的代码,只保留了我面临问题的部分。我想从一些文本文件中获取所有这些输入(UAT / PET / QA / SIT及其env编号)。我不希望它在脚本中被硬编码。
if ( $environment ne "" || $environment ne "Select" ) {
print "<td> <select name=environment onchange=document.form1.submit()>";
print "<option selected value=$environment>$environment</option> ";
print "<option value=UAT>UAT</option> ";
print "<option value=PET>PET</option> ";
print "<option value=QA>QA</option> ";
print "<option value=SIT>SIT</option> ";
}
print "</tr>";
if ( $environment eq "" || $environment eq "Select" ) {
print "<td> <INPUT TYPE=text disabled NAME=product size=21 > </td>";
}
else {
if ( $environment eq "MPET" ) {
print "<td> <select name=product onchange=document.form1.submit()>";
print "<option selected value=$product>$product</option> ";
print "<option value=1>1</option> ";
print "<option value=2>2</option> ";
print "<option value=3>3</option> ";
print "<option value=4>4</option> ";
}
if ( $environment eq "QA" ) {
print "<td> <select name=product onchange=document.form1.submit()>";
print "<option selected value=$product>$product</option> ";
print "<option value=1>1</option> ";
print "<option value=2>2</option> ";
}
if ( $environment eq "UAT" ) {
print "<td> <select name=product onchange=document.form1.submit()>";
print "<option selected value=$product>$product</option> ";
print "<option value=1>1</option> ";
print "<option value=3>3</option> ";
print "<option value=4>4</option> ";
}
if ( $environment eq "SIT" ) {
print "<td> <select name=product onchange=document.form1.submit()>";
print "<option selected value=$product>$product</option> ";
print "<option value=1>1</option> ";
}
print "<input type=hidden name=environment value='$environment'>";
print "</td> ";
}
提前致谢。
答案 0 :(得分:2)
如果您想将它们保存在文件中,我建议使用INI样式的配置文件,然后使用Config::Tiny在需要时读取数据。您可以编写自己的自定义格式和检索功能,但Config::Tiny
非常易于使用,并且可以在需要时轻松写入配置文件。此外,INI文件是标准化的,所以也是如此。
这是INI文件示例:
[variables]
ORACLE_HOME=/ora/11.2.0.3
LD_LIBRARY_PATH=/ora/11.2.0.3/lib
...和代码:
use warnings;
use strict;
use Config::Tiny;
my $file = 'env.ini';
my $conf = Config::Tiny->read($file);
$ENV{ORACLE_HOME} = $conf->{variables}{ORACLE_HOME};
my $LD_LIBRARY_PATH = $conf->{variables}{LD_LIBRARY_PATH};
print "ora home: $ENV{ORACLE_HOME}\n";
print "lib path: $LD_LIBRARY_PATH\n";
...和输出:
ora home: /ora/11.2.0.3
lib path: /ora/11.2.0.3/lib
您可能希望在设置变量时进行一些完整性检查,以便在有错误或不正确的情况下,您可以退出应用程序之前到达意外破坏的部分代码。