0
我有鍵值對作爲「語句:測試,數據」其中'測試,數據'是哈希值。在嘗試使用這些值創建散列時,perl將逗號分隔值。是否有解決此問題的方法,其中可以使用帶逗號的字符串作爲值perl:在哈希值中使用逗號
我有鍵值對作爲「語句:測試,數據」其中'測試,數據'是哈希值。在嘗試使用這些值創建散列時,perl將逗號分隔值。是否有解決此問題的方法,其中可以使用帶逗號的字符串作爲值perl:在哈希值中使用逗號
除非您告訴Perl,否則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" }
沒有什麼用Perl阻止你使用 '測試,數據' 作爲哈希值。 如果您收到的字符串字面意思是「聲明:測試數據」,您可以使用此代碼添加到哈希:
my ($key, $value) = ($string =~ /(\w+):(.*)/);
next unless $key and $value; # skip bad stuff - up to you
$hash{$key} = $value;
我懷疑它將該值。請顯示一些代碼。 '%x =(statement =>'test,data')'應該可以正常工作。 – Thilo