我一直在寻找解决我的问题的方法,在阅读了几篇文章后,哈希似乎是答案,但我不确定如何根据我的要求实现这一点,有人可以建议如何甚至更好的选择吗?
在我的代码中,变量$host
是从数据库中的值设置的。我循环遍历这些值,改变$host
每次的值。
我想丢弃某些类型的主机名,并确定要丢弃哪些主机,我在用户可配置文件中读取该文件,该文件包含该排除的 Perl 正则表达式。即配置文件有一行
EXCLUDE=\d+DAT\d+,\d+INF\d+
然后我想建立 Perl 正则表达式匹配(逻辑或),即
if ( $host =~ m/\d+DAT\d+/ || $host =~ m/\d+INF\d+/ ) {
# do something
}
目前我的代码与上面的示例一样是硬连接的,但是在读取配置文件后如何动态构造 Perl 正则表达式?
我已将配置文件读入一个数组,并将从那里开始。上面的代码需要像这样结束:
if ($exclude clause) {
# do something
}
这就是我着手实现从数组中读取的方式:
for ($i = 1; $i < @conf; $i++) {
$exclude_clause .= "$host =~/" . @conf[$i] . "/ || ";
}
$exclude_clause =~ s/ \|\| $//;
问题是$host
在$exclude_clause
. 我的正则表达式字符串除了$host
.