Cowの確認
fork(fork(2))したときに親プロセスのコピーとして子プロセスを生成する。ただ、メモリ上の内容をすべてコピーするのはもったいないのでCowって仕組みがあるんだけど、これ子プロセスのほうで内容書き換えたらアドレスがかわるかなと思ってたんだけどかわらない。。
なんか想定してた挙動とちがう。。
use strict; use warnings; my $hoge = { aa => 1, }; if( my $pid = fork() ) { print $hoge . "\n"; print "parent:$$,child:$pid" . "\n"; } else { print $hoge . "\n"; print "child:$$" . "\n"; $hoge->{aa} = 10; print $hoge . "\n"; }
HASH(0x16e2de8) parent:18875,child:18876 HASH(0x16e2de8) child:18876 HASH(0x16e2de8)