首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单Perl字符串与特殊字符匹配,即‘

简单Perl字符串与特殊字符匹配,即‘
EN

Stack Overflow用户
提问于 2013-07-07 10:34:41
回答 2查看 79关注 0票数 1
代码语言:javascript
运行
复制
my $var_cot_descn="Veteran's Affairs";
my %cot_descn= ("Correctional","Veteran's Affairs","State Pharmacy Assistance Program","VA Medical Center","VA Mail Order Pharmacy","PHS 340B Entity");

if (exists $cot_descn{$var_cot_descn}){
    print  "CustomerDomain=\"GOV\"
        />
        </Org>
        \n";
}
else{
    print  "CustomerDomain=\"COM\"
        />
        </Org>
        \n";
}

除了我比较“老兵事务”导致if条件失败之外,所有的工作都很好。

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-07 11:03:55

您的哈希没有"Veteran's Affairs"键,它有一个"Veteran's Affairs"值。如果您以更常见的方式定义散列:

代码语言:javascript
运行
复制
my %cot_descn = (
    "Correctional" => "Veteran's Affairs",
    "State Pharmacy Assistance Program" => "VA Medical Center",
    "VA Mail Order Pharmacy" => "PHS 340B Entity"
);

那么结构就会更清晰。由于没有"Veteran's Affairs"密钥,该测试当然会将您转到else分支:

代码语言:javascript
运行
复制
if (exists $cot_descn{$var_cot_descn})

$var_cot_descn"Veteran's Affairs"时。

也许你的%cot_descn中的第一个键/值是反向的。

票数 5
EN

Stack Overflow用户

发布于 2013-07-07 20:29:08

你的意思不是:

代码语言:javascript
运行
复制
#!/usr/bin/env perl

use strict;
use warnings;

# --------------------------------------
use Data::Dumper;

# Make Data::Dumper pretty
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Indent   = 1;

# Set maximum depth for Data::Dumper, zero means unlimited
local $Data::Dumper::Maxdepth = 0;

# --------------------------------------

my @cot_descn = (
        "Correctional",
        "Veteran's Affairs",
        "State Pharmacy Assistance Program",
        "VA Medical Center",
        "VA Mail Order Pharmacy",
        "PHS 340B Entity",
    );
my %cot_descn = map { $_ => 1 } @cot_descn;

print Dumper \%cot_descn;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17508762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档