+ -
当前位置:首页 → 问答吧 → 如何在子进程中对父进程的hash赋值

如何在子进程中对父进程的hash赋值

时间:2010-08-28

来源:互联网

my $childPid;
  my %childPids;
  my %hash;
sub write{
        $key=shift;
        $value=shift;
        $hash{$key}=$value;
}
  for(my $p=0; $p<6; $p++){
      $childPid = fork();
      if($childPid != 0){
          #parent process
          $childPids{$childPid} = undef;
      }else{
         #child process
       }
}
  my $exitPid;
  while( scalar(keys(%childPids))>0 ){
    while (($exitPid = waitpid(-1, WNOHANG)) > 0){
        delete($childPids{$exitPid});
     }
  }
我希望在子进程中对%hash进行赋值。。。。求助。。。。

作者: zhuxiaolong2   发布时间: 2010-08-28

把hash的地址传递进去

作者: iamxesam   发布时间: 2010-08-28

回复 iamxesam


    不明白......可以给个例子吗

作者: zhuxiaolong2   发布时间: 2010-08-28

本帖最后由 iamxesam 于 2010-08-28 22:39 编辑
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my %hash;
  5. Assignment(\%hash);
  6. foreach  (keys %hash) {
  7.         print "$_->$hash{$_}\n";
  8. }
  9. sub Assignment{
  10.         my $temp=shift;
  11.         $temp{key1}="value1";
  12.         $temp{key2}="value2";
  13. }
复制代码
回复 zhuxiaolong2


哪个temp前面有两个$,不知道为什么代码贴不出来··

作者: iamxesam   发布时间: 2010-08-28

回复 iamxesam


    在子进程中还是调用不了。。。。悲剧

作者: zhuxiaolong2   发布时间: 2010-08-28