Perl子例程中的私有变量

默认情况下,Perl中的所有变量都是全局变量,这意味着可以从程序中的任何位置访问它们。但是您可以随时使用my运算符创建称为词法变量的私有变量。

我的操作者地限制在其中它可以被用来访问和一个特定的代码区域的变量。在该区域之外,无法使用或访问此变量。该区域称为其范围。词法作用域通常是一组带有花括号的代码块,例如定义子例程主体的代码块或标记if,while,for,foreacheval语句的代码块的代码块。

以下示例显示了如何使用我的运算符定义单个或多个私有变量-

sub somefunc {
   my $variable; # $variable is invisible outside somefunc()
   my ($another, @an_array, %a_hash); # declaring many variables at once
}

示例

让我们检查以下示例,以区分全局变量和私有变量:

#!/usr/bin/perl
# Global variable
$string = "Hello, World!";
# Function definition
sub PrintHello {
   # Private variable for PrintHello function
   my $string;
   $string = "Hello, Perl!";
   print "Inside the function $string\n";
}
# Function call
PrintHello();
print "Outside the function $string\n";

输出结果

执行以上程序后,将产生以下结果-

Inside the function Hello, Perl!
Outside the function Hello, World!