社交网站的建设现状,莆田网站建设电话,注册登录,建设公司企业网站Perl引用是一个标量数据类型#xff0c;该数据类型保存另一个值的位置#xff0c;该值可以是标量#xff0c;数组或哈希。
创建引用
变量#xff0c;子程序或值创建引用很容易#xff0c;方法是在其前面加上反斜杠#xff0c;如下所示:
$scalarref \$foo;
$arrayref …
Perl引用是一个标量数据类型该数据类型保存另一个值的位置该值可以是标量数组或哈希。
创建引用
变量子程序或值创建引用很容易方法是在其前面加上反斜杠如下所示:
$scalarref \$foo;
$arrayref \ARGV;
$hashref \%ENV;
$coderef \handler;
$globref \*foo;
您不能使用反斜杠运算符在I/O句柄上创建引用但可以使用方括号创建对匿名数组的引用如下所示- $arrayref[1, 2, [a, b, c]];
您可以使用大括号以类似方式创建对匿名哈希的引用如下所示:
$hashref{Adam Eve,Clyde Bonnie,
};
可以通过使用不带子名的sub来创建对匿名子程序的引用如下所示-
$coderefsub { print Boink!\n };
取消引用 要取消引用的引用只需使用$或作为引用变量的前缀具体取决于引用是指向标量数组还是哈希。 示例-
#!/usr/bin/perl$var10;# Now $r has reference to $var scalar.
$r \$var;# Print value available at the location stored in $r.
print Value of $var is : , $$r, \n;var(1, 2, 3);
# Now $r has reference to var array.
$r \var;
# Print values available at the location stored in $r.
print Value of var is : , $r, \n;%var(key1 10, key2 20);
# Now $r has reference to %var hash.
$r \%var;
# Print values available at the location stored in $r.
print Value of %var is : , %$r, \n;
当执行上述程序时将产生以下输出-
Value of 10 is : 10
Value of 1 2 3 is : 123
Value of %var is : key220key110
如果不确定变量类型则可以使用 ref 轻松了解其类型如果其参数是引用则返回以下字符串之一。否则它返回false-
SCALAR
ARRAY
HASH
CODE
GLOB
REF
让我们尝试以下示例-
#!/usr/bin/perl$var10;
$r \$var;
print Reference type in r : , ref($r), \n;var(1, 2, 3);
$r \var;
print Reference type in r : , ref($r), \n;%var(key1 10, key2 20);
$r \%var;
print Reference type in r : , ref($r), \n;
当执行上述程序时将产生以下输出-
Reference type in r : SCALAR
Reference type in r : ARRAY
Reference type in r : HASH
循环引用
当两个引用包含彼此的引用时将发生循环引用。创建引用时必须要小心否则循环引用可能会导致内存泄漏。以下是一个示例-
#!/usr/bin/perlmy $foo100;$foo \$foo;print Value of foo is : , $$foo, \n;
当执行上述程序时将产生以下输出-
Value of foo is : REF(0x9aae38)
引用函数
如果您需要创建一个信号处理程序则可能会发生这种情况因此您可以通过在函数名称前添加\来生成对该函数的引用 以下是一个示例-
#!/usr/bin/perl# Function definition
sub PrintHash {my (%hash)_;foreach $item (%hash) {print Item : $item\n;}
}
%hash(name Tom, age 19);# Create a reference to above function.
$cref \PrintHash;# Function call using reference.
$cref(%hash);
当执行上述程序时将产生以下输出-
Item : name
Item : Tom
Item : age
Item : 19 Perl - References(引用) - 无涯教程网无涯教程网提供Perl引用是一个标量数据类型该数据类型保存另一个值的位置该值可以是标量数组或...https://www.learnfk.com/perl/perl-references.html