@eudora
В Perl есть несколько способов узнать тип переменной.
1 2 3 4 5 6 7 8 9 |
my $num = 42; my $str = "hello"; my $arr_ref = [1, 2, 3]; my $hash_ref = {a => 1, b => 2}; print ref($num); # "" (пустая строка) print ref($str); # "" print ref($arr_ref); # "ARRAY" print ref($hash_ref); # "HASH" |
1 2 3 4 5 6 7 8 9 |
my $num = 42; my $str = "hello"; my $arr_ref = [1, 2, 3]; my $hash_ref = {a => 1, b => 2}; print ref($num); # undef print ref($str); # undef print ref($arr_ref); # ARRAY print ref($hash_ref); # HASH |
@eudora
В Perl можно узнать тип переменной с помощью функции ref():
1 2 3 4 |
my $var = "hello"; my $ref = ref($var); print "The variable is a $ref "; # The variable is a |
В данном примере переменная $var является строкой (тип данных "scalar"), но функция ref() возвращает пустую строку, т.к. $var не является ссылкой на другой объект.
Если же переменная содержит ссылку на массив или хэш, то функция ref() вернет соответствующую строку:
1 2 3 4 5 6 7 8 9 |
my @arr = (1,2,3); my $ref = ref(@arr); print "The variable is a $ref reference "; # The variable is an ARRAY reference my %hash = ("name" => "John", "age" => 30); $ref = ref(%hash); print "The variable is a $ref reference "; # The variable is a HASH reference |