本文概述
- Perl定义和调用子例程功能
- 具有参数的Perl子例程功能
- 带列表的Perl子例程
- 带哈希的Perl子例程
- Perl子例程局部和全局变量
函数和子例程之间只有一个区别, 子例程是使用sub关键字创建的, 并返回一个值。你可以将代码分成单独的子例程。从逻辑上讲, 每个部门中的每个功能都应执行特定任务。
子程序的语法:
sub subName{body}
Perl定义和调用子例程功能Perl定义子例程函数的语法如下:
sub subName{body}ORsubName(list of arguments);
&
subName(list of arguments);
在下面的示例中, 我们定义一个子例程函数” myOffice” 并调用它。
#defining functionsub myOffice{print "srcmini!\n";
}# calling Function myOffice();
输出
srcmini!
具有参数的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子例程这里的@_变量是一个数组, 因此用于将列表提供给子例程。我们用列表声明了一个数组” a” 并调用它。
sub myList{my @list = @_;
print "Here is the list @list\n";
}@a = ("Orange", "Pineapple", "Mango", "Grapes", "Guava");
# calling function with listmyList(@a);
输出
Here is the list Orange Pineapple Mango Grapes Guava
带哈希的Perl子例程当哈希传递给子例程时, 哈希将自动转换为其键值对。
sub myHash{my (%hash) = @_;
foreach my $key ( keys %hash ){my $value = http://www.srcmini.com/$hash{$key};
print"$key : $value\n";
}}%hash = ('Carla' =>
'Mother', 'Ray' =>
'Father', 'Ana' =>
'Daughter', 'Jose' =>
'Son');
# Function call with hash parametermyHash(%hash);
输出
Ray : FatherJose : SonCarla : MotherAna : Daughter
Perl子例程局部和全局变量默认情况下, 所有变量都是Perl内部的全局变量。但是你可以使用” my” 关键字在函数内创建局部变量或私有变量。
” my” 关键字将变量限制为可以在其中使用和访问它的特定代码区域。在此区域之外, 不能使用此变量。
在下面的示例中, 我们同时显示了局部变量和全局变量。首先, $ str在本地被称为(AAABBBCCCDDD), 然后在全球被称为(AEIOU)。
$str = "AEIOU";
sub abc{# Defining local variablemy $str;
$str = "AAABBBCCCDDD";
print "Inside the function local variable is called $str\n";
}# Function callabc();
print "Outside the function global variable is called $str\n";
【Perl函数和子例程】输出
Inside the function local variable is called AAABBBCCCDDD Outside the function global variable is called AEIOU
推荐阅读
- Android使用adb命令查看CPU信息
- Perl第一个例子
- Perl文件处理用法和实例
- 进阶开发(Perl目录全解)
- Perl错误处理
- Perl do-while循环
- Perl DBI数据库操作
- Perl命令行参数
- Perl日期和时间