千家信息网

Perl用户函数怎么用

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍了Perl用户函数怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Perl用户函数Perl用户函数又称子程序(Su
千家信息网最后更新 2025年02月22日Perl用户函数怎么用

这篇文章主要介绍了Perl用户函数怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Perl用户函数

Perl用户函数又称子程序(Subroutine),在Perl中用下面的结构来定义Perl用户函数: 

 sub子程序名{  语句块;  }

这里的子程序名与变量的取名规则类似。

以显示欢迎词的程序为例:

subsay_hello{  print"你好,欢迎光临网上学园";  }

Perl用户函数的定义可以位于程序的任何位置,比如说放在文件的未尾。如果两个子程序使用了相同的程序名,后面的子程序将覆盖前面子程序。

Perl用户函数中的变量默认为全局变量,与其他程序共享。

Perl用户函数的调用:通过在子程序前加"&"调用,可在任一表达式内调用。子程序中可以再调用另外的子程序。

调用Perl用户函数产生的结果称为返回值(returnvalue)。返回值是每次调用函数中***一个表达式的计算值。以加法函数为例: 

 subadd_a_b{  $a+$b;  }

函数***一条表达式为$a+$b,故返回值为$a+$b。以下是调用情况:

$a=5;
$b=6;
$c=&add_a_b;#$c的值为11
$d=5*&add_a_b;#$d的值为5*11即55

上述的Perl用户函数功能与传统直接写在程序中没什么两样,如果加上参数传递就可以实现全新的功能了。在Perl中,如果函数调用后面跟着一个用括号括起来的列表,则在函数调用期间该列表将被自动分配给以@_命名的特殊变量。函数可以访问该变量,从而确定参数的个数及赋值。

仍以加法函数为例: 

 subadd_a_b{  $_[0]+$_[1];  }  $c=&add_a_b(5,6);#$c的值为11  $d=5*&add_a_b(2,3);#d的值为5*5即25

如何改变参数的个数呢?我们可以用循环的方式来实现: 

 subadd_all{  $sum=0;#将sum初始化  foreach$_(@_){#遍历参数列表   $sum+=$_;#累加每个元素  }  $sum;#返回sum即总和的值  }  $a=&add_all(3,4,5);#$a的值为3+4+5即12  $d=2*&add_all(1,2,3,4,5);#d的值为2*15即30

既然Perl用户函数中的变量全为全程变量,那么上述程序中若调用程序中含有$sum变量时将替换,这不是我们所要的。那么如何解决这一问题呢?

答案就是:使用局部变量,使用local()操作符就可实现此功能。在上面的程序中,只需在***行$sum=0;前加入:

local($sum);

当函数执行时,$sum的全程变量的值被保留起来,同时建立一个局部变量$sum,退出函数add_all后将全程变量$sum的值恢复。如:

subadd_all{  local($sum);#将$sum定义为局部变量  $sum=0;#将sum初始化  foreach$_(@_){#遍历参数列表   $sum+=$_;#累加每个元素  }  $sum;#返回sum即总和的值  }  $sum=88;#$sum的原始值为88  print$sum;#显示$sum的值即88  $a=&add_all(3,4,5);#$a的值为3+4+5即12  print$sum;#显示$sum的值仍为88

比较:若未加入local($sum);行,***一行的执行结果将为12。

下面再举一例:计算十以内的加法,并以中文形式输出。当超过十时输出阿拉伯数字。如:输入两个数字,显示"一加二等于三"。程序如下:

#/!/usr/bin/perl  subcnumber{  @chinese=("0","一","二","三","四","五","六","七","八","九");  #将@chinese定义为数组  local($number);#将number定义为局部变量  $chinese($number)||number;#想想为什么?  }  #主程序  print"请输入一个数:"  chop($num1=);  print"请再输入一个数:"  chop($num2=);  $msg=&chinese($num1)."加".&chinese($num2)."等于".  &chinese($num1+num2)."。\n"  print$msg;#打印$msg的值   其中$chinese($number)||number;行的初级写法为:  if($chinese(number){  &chinese($number);#返回中文  }else{  &number;#返回阿拉伯数字  }

看看执行结果:输入2,3,显示:"二加三等于五。";输入3,12,显示:"三加12等于15。"

感谢你能够认真阅读完这篇文章,希望小编分享的"Perl用户函数怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

函数 变量 用户 子程序 程序 参数 输入 个数 局部 篇文章 全程 功能 加法 结果 表达式 两个 元素 同时 总和 阿拉伯数字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 关于网络安全的知识题目 喀什购物软件开发 北京远舰网络技术开发中心 服务器哪个国家强 计算机电视手机网络技术视频 弥勒市本地软件开发 网络安全法 贯彻意见 南师大互联网创新创业科技节 淘宝标题服务器三个字直接给下架 php复杂条件查询数据库 共道互联网科技公司 网络安全周记中学生 比特币基于哪种网络技术 无盘电脑直连服务器启动不了 免流用什么服务器 超市收银系统链接不到数据库 php读数据库和文件速度慢 数据库技术题100道 上海软件开发 光遇游戏服务器是什么怎么填 每年网络安全汇报时间 天下数据韩国服务器怎么样 软件开发商标注册几类 崇明区网络营销网络技术价格咨询 湛江无限软件开发报价行情 java多线程读取数据库 网络安全核心股票 浙江省数据库药品备案 蒙纳士大学网络安全 广州软件开发我选优米科技
0