gpt4 book ai didi

regex - 如何使用 $1、$2、$3 动态分配哈希

转载 作者:行者123 更新时间:2023-12-04 13:06:08 24 4
gpt4 key购买 nike

我想动态创建一个 %detail散列,不使用 eval陈述。
此代码与 eval 一起工作正常语句,但有没有更好的方法来执行此操作而不使用 eval ?

my @input=('INFO: Vikram 32 2012','SAL: 12000$','ADDRESS: 54, junk, JUNK');

my %matching_hash= (
qr/^INFO:\s*(\S+)\s+(\S+)\s+(\S+)/ =>['name','age','joining'],
qr/^SAL:\s*(\S+)/ => ['salary'],
qr/ADDRESS:\s*(.*)/ =>['address']
);
my %detail;
while(my ($regex, $array) = each(%matching_hash)) {
foreach (@input){
if(/$regex/) {
for(my $i=0;$i<=$#$array; $i++) {
$j=$i+1;
eval '$detail{$array->[$i]} = $$j';
}
}
}
}
use Data::Dumper;

print Dumper(\%detail);
++++++++++++++

$VAR1 = {
'name' => 'Vikram',
'address' => '54, junk, JUNK',
'age' => '32',
'joining' => '2012',
'salary' => '12000$'
};

最佳答案

相关部分:

if(my @m = /$regex/) {
for(my $i=0;$i<=$#$array; $i++) {
$detail{$array->[$i]} = $m[$i];
}
}

关于regex - 如何使用 $1、$2、$3 动态分配哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com