2つの別々のtexファイルから作成したハッシュのハッシュが2つあります。ハッシュの最初のハッシュでハッシュの2番目のハッシュ値を変更し、3番目のファイルに書きたいと思っています。または私はそれを自分自身の2番目のテキストファイルに置き換えることができます。ハッシュのハッシュを別のハッシュのハッシュに置き換えます。
ファイル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.....
}
}
}
HASH1:
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番目のファイルからの読み取りと
私は値を置き換えることができますどのように任意の提案ハッシュ2のハッシュに格納するのですか? 2番目のファイルに置き換えようとしましたが、動作しませんでした。
$_=~s/$newvalue/$data{$family_name}{$member}{$age_range}/;
の代わりに置き換えて、私はそれは3番目のファイルのみ値であるように、第3のファイルに反映されます最初のファイルからFILE2書くことだと思います。
RegExには何が起こったのですか?あなたは正しい値を得ましたか(例えば 'print'を介して)? – Sebastian
はい。私はハッシュの両方のハッシュで正しい値を得ています。 – Raj