我正在编写一个创建名称数据库的脚本,这个数据库有不同的版本.我的脚本将版本作为输入(在没有输入的情况下它具有默认版本)每个数据库版本都基于前一版本,但包含一些其他名称.
我试图找到一种方法来定义我的数组中的一些enteries作为iversion的函数.因此我使用像verilog IFDEF这样的东西
例如:
my @DATABASE = (
"Arik",
"Ben",
if ($version = 1.3) {
"Suzie",
"Dan",
}
"Roth"
);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,名称Arik,Ben和Roth将在所有版本的数据库中,但Suzie和Dan将只在1.3版数据库中
有没有一个好方法呢?
my @DATABASE = (
"Arik",
"Ben",
$version == 1.3 ? "Suzie" : (),
$version == 1.3 ? "Dan" : (),
"Roth",
);
Run Code Online (Sandbox Code Playgroud)
要么
my @DATABASE = (
"Arik",
"Ben",
( $version == 1.3 ? (
"Suzie",
"Dan",
) : () ),
"Roth",
);
Run Code Online (Sandbox Code Playgroud)
要么
sub cond { my $cond = shift; return $cond ? @_ : () }
my @DATABASE = (
"Arik",
"Ben",
cond($version == 1.3,
"Suzie",
"Dan",
),
"Roth",
);
Run Code Online (Sandbox Code Playgroud)
要么
my @DATABASE = (
"Arik",
"Ben",
( "Suzie" ) x $version == 1.3,
( "Dan" ) x $version == 1.3,
"Roth",
);
Run Code Online (Sandbox Code Playgroud)
要么
my @DATABASE = (
"Arik",
"Ben",
);
if ($version == 1.3) {
push @DATABASE, (
"Suzie",
"Dan",
);
}
push @DATABASE, (
"Roth",
);
Run Code Online (Sandbox Code Playgroud)
要么
my @DATABASE;
push @DATABASE, "Arik";
push @DATABASE, "Ben";
push @DATABASE, "Suzie" if $version == 1.3;
push @DATABASE, "Dan" if $version == 1.3;
push @DATABASE, "Roth";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |