【发布时间】:2014-03-06 03:10:20
【问题描述】:
我有一个包含类似值的数组
my @tmp = ('db::createParamDef xy', 'data $data1', 'model $model1', 'db::createParamDef wl', 'data $data2', 'model $model2')
我想用xy 和wl 的值创建一个哈希值
my %hash;
my @val;
for my $file(@files){
for my $mod(@tmp){
if($mod=~ /db::createParamDef\s(\w+)/){
$hash{$file}="$1";
}
else{
my $value = split(/^\w+\s+/, $mod);
push (@val,$values);
}
$hash{$fname}{$1}="@val";
@val=();
}
}
这只会返回文件名和$1 的值,但我希望输出是这样的:
%hash=(
'filename1'=>
{
'xy'=>'$data1,$model1',
}
'filename2'=>
{
'wl'=>'$data2,$model2',
}
)
我哪里做错了?!
【问题讨论】: