如何在Perl中按逗号将字符串拆分为散列?

我有以下代码:

my @logs = split(",",$opts->{"logs"});
$opt_href->{"logs"} = @logs;

它基本上$opts->{"logs"}用逗号分割并保留数组引用。稍后我需要检查$opt_href->{"logs"}数组中是否存在字符串 。查看这个主题,我看到建议保留散列,而不是数组。我只能这样做:

my %logs;
for each my $log (split(",",$opts->{"logs"})) {
    $logs{$log} = 1;
}
$opt_href->{"logs"} = %logs;

有一个更好的方法吗?也许一个/两个班轮?

回答

my %logs = map { $_ => 1 } split /,/, $opts->{logs};
$opt_href->{logs} = %logs;

或者,使用匿名哈希引用,由 { }

$opt_href->{logs} = { map { $_ => 1 } split /,/, $opts->{logs} };


以上是如何在Perl中按逗号将字符串拆分为散列?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>