名無し構文と、お前ダレ?
匿名ハッシュとか配列とかスカラーとかサブルーチンを作成するのに、Perlでは下記の構文がある。
my $anon_sub = sub () {}; my $anon_hash = {}; my $anon_arr = []; my $anon_sc = \do { my $anon_scalar = "" };
そしてref関数を使えば、そのスカラーが何者かがわかる。
以下、実験コード
#!/usr/bin/perl -wT use strict; my $anon_sub = sub () {}; my $anon_hash = {}; my $anon_arr = []; my $anon_sc = \do { my $anon_scalar = "" }; $, = "\n"; print "anon_sub -> " . ref $anon_sub, "anon_hash -> " . ref $anon_hash, "anon_arr -> " . ref $anon_arr, "anon_sc -> " . ref $anon_sc, "";
上記のスクリプトを実行した結果。
[negro: ~/perls][16:38] $ ./ref.pl anon_sub -> CODE anon_hash -> HASH anon_arr -> ARRAY anon_sc -> SCALAR [negro: ~/perls][16:38] $
とりあえず、走り書き兼覚え書き。以上かな?