0

「statement:test、data」としてキーと値のペアがあります。ここで、「test、data」はハッシュの値です。そのような値でハッシュを作成しようとしている間、perlは値をコンマで分割します。これを回避する方法はありますか?コンマ付きの文字列を値として使用できます

4

2 に答える 2

5

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;
于 2012-10-17T09:43:33.070 に答える
3

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" }
于 2012-10-17T09:42:51.113 に答える