Perl教程
Perl控制语句
Perl高级

Perl 函数和子程序

Perl 函数和子例程

Perl 函数和子例程用于在程序中重用代码。您可以在应用程序中的多个位置使用不同参数的函数。
函数和子程序只有一个区别,子程序是用 sub 关键字创建的,它返回一个值.您可以将代码划分为单独的子例程。逻辑上每个部门的每个功能都应该执行特定的任务。
子程序的语法:
sub subName{
body
}

Perl 定义和调用子程序函数

Perl 定义子程序函数的语法如下:
sub subName{
body
}
   OR
subName(list of arguments);
&subName(list of arguments);

在下面的例子中,我们定义了一个子程序函数"myOffice"并调用它。
#defining function
sub myOffice{
   print"lidihuo!\n";
}
# calling Function 
myOffice();
输出:
lidihuo!

带参数的 Perl 子例程函数

您可以在子例程中传递任意数量的参数。参数在特殊的@_ list 数组变量中作为列表传递。因此,函数的第一个参数是 $_[0],第二个参数是 $_[1],依此类推。
在这个例子中,我们通过传递一个正方形来计算正方形的周长参数。
$squarePerimeter = perimeter(25);
print("this is the perimter of a square with dimension 25: $squarePerimeter\n");  
sub perimeter {
    $dimension = $_[0];
    return(4 * $dimension);
 }
输出:
100

带有列表的 Perl 子程序

这里的 @_ 变量是一个数组,因此它用于为子程序提供列表。我们已经用 list 声明了一个数组 'a' 并调用它。
sub myList{
   my @list = @_;
   print"Here is the list @list\n";
}
@a = ("Orange", "Pineapple", "Mango", "Grapes", "Guava");
# calling function with list
myList(@a);
输出:
Here is the list Orange Pineapple Mango Grapes Guava

带有哈希值的 Perl 子程序

当哈希值传递给子程序时,哈希值会自动转换为其键值对。
sub myHash{
   my (%hash) = @_;
   foreach my $key ( keys %hash ){
      my $value = $hash{$key};
      print"$key : $value\n";
   }
}
%hash = ('Carla' => 'Mother', 'Ray' => 'Father', 'Ana' => 'Daughter', 'Jose' => 'Son');
# Function call with hash parameter
myHash(%hash);
输出:
Ray : Father
Jose : Son
Carla : Mother
Ana : Daughter

Perl 子程序局部变量和全局变量

默认情况下,所有变量都是 Perl 内部的全局变量。但是,您可以使用"my"关键字在函数内创建局部或私有变量。
"my"关键字将变量限制在可以使用和访问它的特定代码区域。在该区域之外,不能使用该变量。
在下面的例子中,我们同时显示了局部变量和全局变量。首先,$str 在本地调用(AAABBBCCCDDD),然后在全局调用(AEIOU)。
$str = "AEIOU";
sub abc{
   # Defining local variable
   my $str;
   $str = "AAABBBCCCDDD";
   print"Inside the function local variable is called $str\n";
}
# Function call
abc();
print"Outside the function global variable is called $str\n";
输出:
Inside the function local variable is called AAABBBCCCDDD 
Outside the function global variable is called AEIOU
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4