綾小路龍之介の素人思考

グロブとは何ぞや

C:\WINDOWS\デスクトップ>perl -e "$L=Hello; @L=(1,2,3,4); *s=*L; print \"$s\n\"; print \"$s[1]\";"
Hello
2
C:\WINDOWS\デスクトップ>

一体グロブとは何ぞや。

*s = *L;

こうすることでLという名前の付いた変数($L)、ハッシュ(@L)、配列(%L)、サブルーチン(&L)をそれぞれ、sという名前の付いた変数($s)、ハッシュ(@s)、配列(%s)、サブルーチン(&s)をとして参照できるんだな。つまり、ものすごく長い名前の変数($verylooooooooooooooooooooongname)を作っても、グロブでこの変数名と短い名前を対応付けておくことで、長い変数名を何回も使わなくてもよくなるということ。

C:\>perl -e "$verylooooooooooooooooooooongname = \"longlong\"; *s = *verylooooooooooooooooooooongname; print $s;"
longlong
C:\>

書き下せば

$verylooooooooooooooooooooongname = "longlong";
*s = *verylooooooooooooooooooooongname;
print $s;

ということ。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2007-10-06T23:42:54+09:00
  2. Modified: 2007-10-06T04:24:37+09:00
  3. Generated: 2017-11-12T23:09:23+09:00