找到 449 篇文章,关于编程脚本

Perl 中函数的引用

Mohd Mohtashim
更新于 2019年11月29日 09:59:08

148 次查看

在使用 Perl 脚本时,如果您需要创建一个信号处理程序,则可能会发生这种情况,您可以通过在函数名前加上 \& 来生成对函数的引用,而要取消引用该引用,只需使用 &作为前缀即可。以下是一个示例 -示例 实时演示#!/usr/bin/perl # 函数定义 sub PrintHash {    my (%hash) = @_;    foreach $item (%hash) {       print "Item : $item";    } } %hash = ('name' => 'Tom', 'age' => 19); # 创建对上述函数的引用。 $cref = \&PrintHash; # 使用... 阅读更多

如何在 Perl 中定义格式?

Mohd Mohtashim
更新于 2019年11月29日 10:01:08

95 次查看

Perl 使用名为“格式”的编写模板来输出报表。要使用 Perl 的格式功能,您必须首先定义一个格式,然后可以使用该格式来编写格式化数据。语法以下是定义 Perl 格式的语法 -format FormatName = fieldline value_one, value_two, value_three fieldline value_one, value_two .这里 FormatName 表示格式的名称。 fieldline 是数据的特定格式化方式。values 行表示将输入字段行的值。您用一个句点结束格式。下一个 fieldline 可以包含任何文本或字段占位符。... 阅读更多

Perl 中的循环引用

Mohd Mohtashim
更新于 2019年11月29日 07:19:21

255 次查看

Perl 中的循环引用是指两个引用相互包含对方的引用。在创建引用时必须小心,否则循环引用会导致内存泄漏。以下是一个示例 -示例 实时演示#!/usr/bin/perl my $foo = 100; $foo = \$foo; print "Value of foo is : ", $$foo, "";输出执行上述程序时,会产生以下结果 -Value of foo is : REF(0x9aae38)

Perl 中的解引用

Mohd Mohtashim
更新于 2019年11月29日 07:16:39

1K+ 次查看

Perl 中的解引用返回从指向该位置的引用的值。要解引用一个引用,只需根据引用指向标量、数组还是哈希,在引用变量前面使用 $、@ 或 % 作为前缀即可。以下示例解释了该概念 -示例 实时演示#!/usr/bin/perl $var = 10; # 现在 $r 引用了 $var 标量。 $r = \$var; # 打印存储在 $r 中的位置的值。 print "Value of $var is : ", $$r, ""; @var = (1, 2, 3); # 现在 $r 引用了... 阅读更多

在 Perl 中创建引用

Mohd Mohtashim
更新于 2019年11月29日 07:13:32

130 次查看

Perl 引用是一种标量数据类型,它保存另一个值的地址,该值可以是标量、数组或哈希。由于其标量特性,引用可以在任何可以使用标量的地方使用。通过在其前面加上反斜杠,可以轻松地为任何变量、子例程或值创建引用,如下所示 -$scalarref = \$foo; $arrayref = \@ARGV; $hashref = \%ENV; $coderef = \&handler; $globref = \*foo;您不能使用反斜杠运算符在 I/O 句柄(文件句柄或目录句柄)上创建引用,但可以使用... 阅读更多

Perl 中的子例程调用上下文

Mohd Mohtashim
更新于 2019年11月29日 07:07:35

207 次查看

Perl 子例程或语句的上下文定义为预期的返回值类型。这允许您使用单个函数根据用户期望接收的内容返回不同的值。例如,以下 localtime() 在标量上下文中调用时返回字符串,但在列表上下文中调用时返回列表。my $datestring = localtime( time );在此示例中,$timestr 的值现在是一个由当前日期和时间组成的字符串,例如,Thu Nov 30 15:21:33 2000。相反 -($sec, $min,... 阅读更多

Perl 中使用 state() 的状态变量

Mohd Mohtashim
更新于 2019年11月29日 07:06:24

686 次查看

Perl 中还有另一种类型的词法变量,它类似于私有变量,但它们保持其状态,并且在多次调用子例程时不会重新初始化。这些变量使用 state 运算符定义,从 Perl 5.9.4 开始可用。示例让我们检查以下示例以演示状态变量的使用 - 实时演示#!/usr/bin/perl use feature 'state'; sub PrintCount {    state $count = 0; # 初始值    print "Value of counter is $count";    $count++; } for (1..5) {    PrintCount(); }输出执行上述程序时,会产生以下结果 -Value... 阅读更多

Perl 中使用 local() 的临时值

Mohd Mohtashim
更新于 2019年11月29日 07:03:34

212 次查看

local 主要用于在 Perl 中必须让调用的子例程看到变量的当前值的情况。Perl local 只为全局(即包)变量提供临时值。这被称为动态作用域。词法作用域使用 my 完成,其工作方式更像 C 的 auto 声明如果为 local 提供多个变量或表达式,则必须将它们放在括号中。此运算符的工作原理是将其参数列表中的这些变量的当前值保存在隐藏的堆栈上,并在退出块、子例程或 eval 时恢复它们。示例让我们检查以下示例... 阅读更多

Perl 中子例程中的私有变量

Mohd Mohtashim
更新于 2019年11月29日 07:01:28

436 次查看

默认情况下,Perl 中的所有变量都是全局变量,这意味着可以从程序的任何位置访问它们。但是,您可以随时使用 my 运算符创建称为词法变量的私有变量。my 运算符将变量限制在可以使用和访问它的特定代码区域。在此区域之外,无法使用或访问此变量。此区域称为其作用域。词法作用域通常是一块代码,周围有一组大括号,例如定义子例程主体的大括号或标记代码的大括号... 阅读更多

从 Perl 子例程返回值

Mohd Mohtashim
更新于 2019年11月29日 06:59:28

4K+ 次查看

您可以像在任何其他编程语言中一样从 Perl 子例程返回值。如果您没有从子例程返回值,则子例程中最后执行的任何计算也自动成为返回值。您可以像任何标量一样从子例程返回数组和哈希,但是返回多个数组或哈希通常会导致它们丢失其单独的身份。因此,我们将使用引用(在下一章中解释)从函数返回数组或哈希。示例让我们尝试以下示例,它获取数字列表并... 阅读更多

广告