小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlで型グロブとは

Perlで型グロブといえば変数名のワイルドカードと思えばいいのかな。
今のstrict・リファレンス時代(謎)では、すでに過去の悪の遺産ですか?
以下に、サブルーチン引数参照渡しのリファレンスと型グロブのサンプルです。

@a=(1,2,3);
@b=(4,5,6);
print "\@a=@a \@b=@b\n";
func1(\@a,\@b);
print "\@a=@a \@b=@b\n";
func2(*a,*b);
print "\@a=@a \@b=@b\n";

# リファレンス
sub func1 {
  ($ref_a,$ref_b)=@_;
  foreach ( @$ref_a ){ $_++ }
  foreach ( 0..$#{$ref_b} ){ $$ref_b[$_]++ }
}

# 型グロブ
sub func2 {
  (*glob_a,*glob_b)=@_;
  foreach ( @glob_a ){ $_++ }
  foreach ( 0..$#glob_b ){ $glob_b[$_]++ }
}
http://www.tohoho-web.com/lng/199912/99120187.htm

ちなみに、$_には、何が入るかわかりますよね。