【发布时间】:2016-09-04 22:23:41
【问题描述】:
我有两个从两个单独的 tex 文件创建的哈希值。我想用散列的第一个散列更改散列的第二个散列的值,并希望将其写入第三个文件。或者我可以自己替换第二个文本文件中的值。
文件1:
family (){
kapoor(){
member1(){
male(){
between : 0 to 5
person : 2
their name is bla & bla.
and bla bla......
blaa.....
}
male(){
between : 5 to 5
person : 20
their name is bla & bla bla.
and bla bla......
blaa.....
}
}
member2(){
male(){
between : 0 to 5
person : 2
their name is bla & bla.
and bla bla......
blaa.....
}
male(){
between : 5 to 5
person : 20
their name is bla & bla bla.
and bla bla......
blaa.....
}
}
}
rai(){
member1(){
male(){
between : 0 to 5
person : 2
their name is bla & bla.
and bla bla......
blaa.....
}
male(){
between : 5 to 5
person : 20
their name is bla & bla bla.
and bla bla......
blaa.....
}
}
member2(){
male(){
between : 0 to 5
person : 2
their name is bla & bla.
and bla bla......
blaa.....
}
male(){
between : 5 to 5
person : 20
their name is bla & bla bla.
and bla bla......
blaa.....
}
}
}
哈希1:
family=>{
kapoor => {
member1=>{
0 to 5=> person : 2
their name is bla & bla.
and bla bla......
blaa.....
}
member2=> {
5 to 5 => person : 20
their name is bla & bla bla.
and bla bla......
blaa.....
}
rai =>{
/...................etc
}
哈希 2 相同,但值不同。
我试过了:
while(my$line=<$fh>) ******** to store hashes of hash from file 1***
{
if($line=~/$family_name_re/)
{
$family_name=$1;
$family_count=$cell_count+1;
}
elsif ($line=~/$member_re/)
{
$member = $1;
}
elsif ($line=~/$age_re/)
{
$age_range=$1;
push @{$data{$family_name}{$member}{$age_range}{values}},$line;
}
}
print Dumper(\%data);
print "Number of cell is $cell_count\n";
close ($fh);
与我从第二个文件读取并将其存储在哈希 2 的哈希中的方式相同。
有什么建议可以替换这个值吗? 我尝试在第二个文件中替换,但没有成功。
$_=~s/$newvalue/$data{$family_name}{$member}{$age_range}/;
我认为不是替换,而是将 file2 写在第三个文件中,并且只有第一个文件中的值才会反映在第三个文件中。
【问题讨论】:
-
你的 RegEx 发生了什么?您是否获得了正确的值(例如通过
print)? -
是的。我在哈希的两个哈希中都得到了正确的值