【发布时间】:2013-02-02 13:27:27
【问题描述】:
我正在尝试从输入字符串创建 Perl 哈希,但我遇到了原始“拆分”的问题,因为值可能包含引号。下面是一个示例输入字符串,以及我的(期望的)结果哈希:
my $command = 'CREATE:USER:TEL,12345678:MOB,444001122:Type,Whatever:ATTRIBUTES,"ID,0,MOB,123,KEY,VALUE":TIME,"08:01:59":FIN,0';
my %hash =
(
CREATE => '',
USER => '',
TEL => '12345678',
MOB => '444001122',
Type => 'Whatever',
ATTRIBUTES => 'ID,0,MOB,123,KEY,VALUE',
TIME => '08:01:59',
FIN => '0',
);
输入字符串为任意长度,未设置key个数。
谢谢!
-hq
【问题讨论】:
-
在
$hash{ATTRIB}值中有MOB,123。他们来自哪里? -
不要重新发明轮子,使用 csv 解析库。
-
您的意思是将
ATTRIB的密钥设为ATTRIBUTES? -
我的错。我修复了
ATTRIBUTES的困惑。所以$hash{'ATTRIBUTES'}="ID,0,MOB,123,KEY,VALUE"我也修复了$command字符串。