perl编程24学时教程008

perl编程24学时教程008

ID:33743284

大小:551.55 KB

页数:12页

时间:2019-02-28

perl编程24学时教程008_第1页
perl编程24学时教程008_第2页
perl编程24学时教程008_第3页
perl编程24学时教程008_第4页
perl编程24学时教程008_第5页
资源描述:

《perl编程24学时教程008》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、下载第8学时函数几乎所有的计算机语言都支持函数。函数是一组代码,可以按名字对它进行调用,以便执行某项工作,然后返回某个值。在本书中,你要使用许多函数,比如,你已经使用了print、reverse、sort、open、close和split等函数。它们都是Perl的内置函数。Perl还允许你编写自己的函数。在Perl中,用户定义的函数称为子例程。与Perl的内置函数一样,用户定义的函数也可以拥有参数,并且可以将值返回给调用者。Perl还支持作用域的概念。作用域用于确定某个时间内程序能够看到的一组变量。

2、由于有了Perl的作用域,你就能够编写运行时不受你的程序的其余部分影响的函数。编写得非常出色的函数可以在其他程序中重复使用。在本学时中,你将要学习:¥如何定义你自己的函数和如何调用这些函数。¥如何将值传递给函数,然后返回值。¥如何使用usestrict来编写程序,以便强制使用某种结构。8.1创建和调用子例程可以使用下面的代码来创建用户定义的子例程:Perl中的子例程名与第2学时中介绍的标量、数组和哈希结构的命名约定是相同的。子例程与现有的变量可以使用相同的名字。但是,你应该避免创建名字与Perl的内

3、置函数和运算符相同的子例程。如果在Perl中创建了名字相同的两个子例程,那么在报警特性激活的情况下,Perl就会发出一条警告消息,否则第二个定义的名字会使第一个名字被忘记。当子例程被调用时,子例程的代码启动运行,并且任何返回值均被重新传递到子例程被调用时的位置。(调用子例程和返回值的内容将在后面介绍。)例如,下面这个短子例程将提示用户输入一个答案:若要调用一个子例程,可以使用下面两个语句行中的一个:&Yesno();或者Yesno();如果代码中已经声明了子例程,那么可以使用第二个语句(不带&);&

4、yesno()语句是任何位置上都能使用的。在本书中,我们将使用不带&的语句形式,虽然两种语句形式都可以使用。90使用第一部分Perl基础下载当子例程被调用时,Perl能够记住它是在什么位置被调用的,并执行子例程的代码,然后,当子例程运行完成时,返回它记住的程序中的位置,如下面这个例子所示:Perl的子例程可以在程序中的任何位置进行调用,包括在其他子例程中进行调用,如下所示:8.1.1返回子例程的值子例程并不只是用于按照一个便于使用的名字将代码组合在一起。子例程与Perl的函数、运算符和表达式一样,它

5、也有一个值。这个值称为子例程的返回值。子例程的返回值是子例程中计算的最后一个表达式的值,或者是return语句显式返回的值。子例程的值是在子例程被调用时计算的,然后该返回值将用于调用的任何子例程中。现在请看下面这个代码:在上面这个代码段中,若要使Perl计算表达式8*two_by_four()的值,那么子例程two_by_four()便开始运行,并返回值8。然后计算表达式8*8,并输出64。值也可以由子例程的return语句显式返回。当你的程序需要在子例程结束之前返回,或者当你想要明确知道返回的是什

6、么值,而不是“堕入”子例程的结尾并使用最后的表达式的值时,就需要使用return语句。下面这个代码段同时使用了两种方法:子例程能够返回数组和哈希结构,也能返回标量,如下所示:第8学时函数使用91下载8.1.2参数上面的所有子例程举例都有一个共同点,那就是它们都对硬编码的数据(2*4)或者变量进行操作,而这些变量里边恰好拥有正确的数据(x_greaterthan100()的$x)。这个限制条件产生了一个问题,因为如果函数依赖硬编码的数据,或者希望得到函数之外的值的数据,那么这样的函数并不是真的能够移植

7、的函数。当你调用函数时说:“取出这个数据并且用它进行某些操作”,然后在以后又调用它并且说:“取出另一些数据并且用它进行某些操作。”这样,函数的运行特性就可以根据传递给它的值来改变。为了改变函数的运行特性而赋予函数的这些值称为参数,在本书中你都需要使用这些参数。Perl的内置函数(grep、sort、reverse和print等)都拥有一些参数,并且现在你的函数也可以拥有参数。若要传递子例程的参数,可以使用下面任何一个语句:只有当Perl已经遇到子例程的定义时,才能使用上面不带括号的第二种参数形式。在

8、子例程中,被传递的参数可以通过Perl的特殊变量@_来访问。下面这个代码段显示了为函数传递参数(3个字符串直接量)和输出参数的情况:若要像下面这个例子中那样,访问传递过来的各个参数,可以使用数组@_上的下标,就像你对任何其他数组操作时那样。请记住,$_[0](@_的一个下标)与标量变量$_毫不相干:对$_[3]这样的变量名进行操作并不是一种“明确的”编程风格。拥有多个参数的函数常常为这些参数赋予一个名字,这样,就能够清楚地知道它们能够做些什么。为理解这些话的含义,请看

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。