1. Perl
  2. オブジェクト指向プログラミング
  3. here

ref関数 - クラス名の取得・リファレンスの種類の取得

ref関数を使うと、bless関数を使って生成したオブジェクトから、クラス名を取得できます。

my $http = HTTP::Tiny->new;

# ref関数でクラス名を取得
my $class_name = ref $http;

HTTP::Tinyという文字列を取得できます。

blessされていないオブジェクトへのリファレンスの場合は、以下の値が返ります。

オペランドが bless されていないオブジェクトへのリファレンスの場合、 返り値はオブジェクトの型を示します。 bless されていないリファレンス先がスカラではない場合、 返り値はオブジェクトの種類を示す、 ARRAY, HASH, CODE, FORMAT, IO のいずれかの文字列です。 bless されていないリファレンス先がスカラの場合、 返り値はそのスカラが現在保持している種類に依存して、 SCALAR, VSTRING, REF, GLOB, LVALUE, REGEXP の いずれかの文字列です。 しかし、qr// は既に bless されて作成されるので、 ref qr/.../ はおそらく Regexp を返すことに注意してください。 これらの組み込み型名はまたクラス名として使われることができるので、 ref がこれらの名前の一つを返すことは、 明らかにリファレンス先がその名前が示している種類のものであることを 示しているわけではないことに注意してください。

Perlの組み込み関数 ref の翻訳 - perldoc.jp

blessされていないオブジェクトへのリファレンスの場合のサンプルです。

# ARRAY
my $ref_array_ref = ref [];

# HASH
my $ref_hash_ref = ref {};

業務に役立つPerl

Perlテキスト処理のエッセンス 書籍版

関連情報