我是Perl的新手,任何帮助都将不胜感激.我有2个变量:$release和$env_type.我想检查一个字符串是否包含$release_$env_type,然后做一些事情.例如,
$release="beta";
$env_type="testing";
so string is beta_testing
Run Code Online (Sandbox Code Playgroud)
代码段:
if ( $_ =~ /${release}_${env_type}/ ) {
#do Something
}
Run Code Online (Sandbox Code Playgroud)
此if条件无法解决.请告诉我进行此项检查的正确语法是什么?我在谷歌搜索但没有得到任何好的帖子..
请帮忙!
我有一个内容文件:
admin_vh_c9_simv2_edg=/console,/consolehelp
idminternal_vh_c9_simv2_edg=/oim,/soa-infra
sso_vh_c9_simv2_edg=/oim,/soa-infra,/odsm
my $env_type = "edg";
my $release = "c9_simv2";
#Input file containing contexts
my $idmInternal = "./IdmContexts.conf";
if ( !-e $idmInternal ) {
die "Unable to find the file $idmInternal!\n";
}
open( MYFILE, $idmInternal );
while (<MYFILE>) {
chomp;
if ( $_ =~ /${release}_${env_type}/ ) {
push( @filtered, $_ );
}
}
Run Code Online (Sandbox Code Playgroud)
你的代码很好.问题出在其他地方.以下打印match.
my $release="beta";
my $env_type="testing";
$_ = "so string is beta_testing";
if ( $_ =~ /${release}_${env_type}/ ) {
print "match\n";
}
Run Code Online (Sandbox Code Playgroud)
注意:/\Q${release}_${env_type}/会更好.它将确保插值变量中的特殊字符与自身匹配.
最有可能的问题:您从文件中读取$release和/或$env_type从文件中读取值,并忘记chomp了尾随换行符.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |