【问题标题】:perl: useing commas in hash valuesperl:在哈希值中使用逗号
【发布时间】:2012-10-07 12:54:16
【问题描述】:

我有键值对作为“语句:测试,数据”,其中“测试,数据”是哈希值。在尝试使用这些值创建散列时,perl 将值拆分为逗号。有没有办法解决这个问题,可以将带逗号的字符串用作值

【问题讨论】:

  • 我怀疑它会分割价值。请显示一些代码。 %x = ( statement => 'test,data') 应该可以正常工作。

标签: string perl hash


【解决方案1】:

Perl 不会用逗号分割字符串,除非你告诉它这样做。

#!/usr/bin/perl

use v5.16;
use warnings;
use Data::Dump 'ddx';

my $data = "statement:test,data";
my %hash;

my ($key, $value) = split(":", $data);

$hash{$key} = $value;

ddx \%hash;

给予:

# split.pl:14: { statement => "test,data" }

【讨论】:

    【解决方案2】:

    在 Perl 中没有什么可以阻止您使用 'test,data' 作为哈希值。 如果您传入的字符串字面意思是“statement:test,data”,您可以使用此代码添加到哈希中:

    my ($key, $value) = ($string =~ /(\w+):(.*)/);
    next unless $key and $value;  # skip bad stuff - up to you
    $hash{$key} = $value;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-13
      • 2013-08-26
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      相关资源
      最近更新 更多