找到 157 篇文章 关于 Perl

如何在 Perl 中使用格式?

Mohd Mohtashim
更新于 2019年11月29日 10:04:54

164 次浏览

为了在 Perl 脚本中调用格式声明,我们将使用 `write` 关键字 - `write EMPLOYEE;` 问题是格式名称通常是打开的文件句柄的名称,`write` 语句会将输出发送到此文件句柄。由于我们希望数据发送到 STDOUT,我们必须将 EMPLOYEE 与 STDOUT 文件句柄关联。但是,首先我们必须确保 STDOUT 是我们选择的文件句柄,使用 `select()` 函数。`select(STDOUT);` 然后,我们将使用特殊变量 `$~` 或 `$FORMAT_NAME` 将 EMPLOYEE 与 STDOUT 关联…… 阅读更多

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` 运算符将变量限制在可以使用和访问它的特定代码区域。在此区域之外,不能使用或访问此变量。此区域称为其作用域。词法作用域通常是一块代码,周围有一组大括号,例如定义子程序的主体或标记代码的那些…… 阅读更多

广告