構文 |
|
ref 変数 |
返り値 |
|
リファレンスの場合に真 |
説明
- 指定した変数の型がリファレンスの場合に真を返します。真が返ってきた場合の値は,指定した変数の種類によって変化します。
使用例
#!/usr/bin/perl
use strict;
use warnings;
use IO::File;
my $data1 = 1;
my $data2 = 'a';
my $data3 = [1, 2, 3];
my $data4 = {key => 'KEY', val => 'VAL'};
my $data5 = IO::File->new;
my $data6 = sub {my $n = shift; return $n *2;};
print ref $data1, "\n"; # (偽)
print ref $data2, "\n"; # (偽)
print ref $data3, "\n"; # ARRAY
print ref $data4, "\n"; # HASH
print ref $data5, "\n"; # IO::File
print ref $data6, "\n"; # CODE
#!/usr/bin/perl
use strict;
use warnings;
my $data1 = 100;
print "---\n";
print_data($data1);
print "\n";
my $data2 = [1, 10, 100];
print "---\n";
print_data($data2);
print "\n";
my $data3 = {1 => 'one', 2 => 'two'};
print "---\n";
print_data($data3);
print "\n";
sub print_data {
my $data = shift;
if (ref $data eq 'HASH') {
foreach my $key (keys %$data) {
printf "%s = %s\n", $key, $data->{$key};
}
} elsif(ref $data eq 'ARRAY') {
foreach my $item (@$data) {
print $item, "\n";
}
} else {
print "???\n";
}
}