無窮 i ラボ Blog

知的ネット社会、知そのもの、機械との共生、プログラミングに関して。

 
 

Abstract: Call by reference in Perl.

送信側:
\@Array, \$var, \%hash, \&method

受信側:
*Array, *var (ただし、サブルーチン中での宣言は my ではなく local )
あるいは
@{ } ${ }

call送信、sub受信の場合、引数もcallする側に返される(場合がある?)ので注意。それが不都合ならば、callする前にコピーをとればいい。

例:

&Method_A(\@Array, \$Var);

*Array = &Method_B();
@Array = @{&Method_B()};

sub Method_A {
my ( $Array_ref, $Var_ref ) = @_;
my @Array = @{$Array_ref};
my $Var = ${$Var_ref};
...
return (0);
}

sub Method_B {
return ( \@Array );
}
スポンサーサイト
 このエントリーをはてなブックマークする このエントリーを含むはてなブックマーク  
  
 
 
■  ■  ■

 
本文へは上スクロールしてください












管理者にだけ表示

トラックバックURL↓
http://nhm.blog75.fc2.com/tb.php/292-ef5741b2

新しいトラックバックほど上に表示されます。