perl中的控制语句及函数定义

2024-06-13 02:08
文章标签 perl 语句 定义 函数 控制

本文主要是介绍perl中的控制语句及函数定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 条件控制语句

if(条件表达式)

{

#语句

}

else

{

#语句

}

given…when结构形式为:

given (标量)

when()  { }

when()  { }

when()  { }

when()  { }

 

given语句的用法为:

#!/usr/bin/perl -w
use 5.010001;
my $m=<STDIN>;
given ($m)
{
when (/[0-9]/) {print "it is a number\n";}
when (/[a-z]/)  {print "it is a letter\n"}
default  {print "\n";}
}
2.  循环控制语句

(1)while (条件表达式)

{

# 循环体语句

}

 (2)until (条件表达式)

{

# 循环体

}

(3)do

{

#循环体

}while(条件表达式)

(4)foreach标量(标量)

{

# 循环体

}

foreach的简单使用实例为:

#!/usr/bin/perl -w

foreach $m (1..10)

{

print "$m\n";

}

 (5)for循环语句与foreach等价

形式为

for(表达式;表达式;表达式)

(6)循环控制的next,last以及redo

next语句用于跳过本次循环,执行下一次循环,last语句用于退出循环,redo语句用于回到本次循环的开始。next与redo 的区别在于next会跳过本次循环。下面是三种语句的使用实例:

#!/usr/bin/perl -w
use 5.01;
my $n;
for($n=0;$n<10;$n++)
{
say "$n";
say "input a command:next,last or redo";
my $com=<STDIN>;
last if $com=~/last/;
next if $com=~/next/;
redo if $com=~/redo/;
}

在上面的程序中,输入last会跳出循环,输入redo会再次打印本次循环的输出,输入next会打印下一个数字。

(7)上面讲到的last仅仅能退出本层循环,如果想要退出多层循环,可以使用带有标签的语句。使用的例子为:

#!/usr/bin/perl -w
use 5.01;
my $num;
my $j;
LABEL:for($num=0;$num<10;$num++)
{
for($j=0;$j<$num;$j++)
{
say "input a string";
my $str=<STDIN>;
if ($str=~/stop/)
{
last LABEL;
}
say "you have input: $str";
}
}

在for循环的前面加了LABEL标签,在内层循环中使用last LABEL就可以退出两层循环了。上面的程序中输入stop即可退出循环。

3.   函数的定义及使用

函数的基本形式为

sub  <函数名>

{

# 函数体

}

如定义函数

sub hello

{

print “hello world\n”;

}

可以在意表达式中使用子程序名加上&来调用它,

#! /usr/bin/perl –w
sub hello
{
print “hello world\n”;
}
&hello;

程序中出现hello,world

下面定义了guess函数,用循环语句实现猜数字的功能:

#!/usr/bin/perl -w
my $n=100;
my $num=int(rand($n));
sub guess{
do {
print "input a number which is in the range of (0,100)";
$number=chmop(<STDIN>);
if ($number == $num){
print "riht\n";
}
elsif ($number < $num){
print "too low\n";
}
else {
print "too high\n";
}
}while (1);
}
&guess;


 

这篇关于perl中的控制语句及函数定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055986

相关文章

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

通俗范畴论4 范畴的定义

注:由于CSDN无法显示本文章源文件的公式,因此部分下标、字母花体、箭头表示可能会不正常,请读者谅解 范畴的正式定义 上一节我们在没有引入范畴这个数学概念的情况下,直接体验了一个“苹果1”范畴,建立了一个对范畴的直观。本节我们正式学习范畴的定义和基本性质。 一个范畴(Category) C𝐶,由以下部分组成: 数据: 对象(Objects):包含若干个对象(Objects),这些

SQL Server中,isnull()函数以及null的用法

SQL Serve中的isnull()函数:          isnull(value1,value2)         1、value1与value2的数据类型必须一致。         2、如果value1的值不为null,结果返回value1。         3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。        如

tf.split()函数解析

API原型(TensorFlow 1.8.0): tf.split(     value,     num_or_size_splits,     axis=0,     num=None,     name='split' ) 这个函数是用来切割张量的。输入切割的张量和参数,返回切割的结果。  value传入的就是需要切割的张量。  这个函数有两种切割的方式: 以三个维度的张量为例,比如说一

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用   判断员工是否有权限访问,首先得知道现在操作的人是谁,所以必须先实现登录功能 2 登录流程   ① 提供登录页面,可输入用户名与密码信息,并添加执行登录的按钮。(登录页面不能被拦截)   ② 给按钮绑定点击事件(异步操作,POST请求)   ③ 事件中发送登录请求,使用 AJAX 方式提交。(使用 AJAX 原因:用户体验更好,既可保留用户刚输入的用户名和密码

利用结构体作为函数参数时结构体指针的定义

在利用结构体作为函数的参数进行传递时,容易犯的一个错误是将一个野指针传给函数导致错误。 #include <stdio.h>#include <math.h>#include <malloc.h>#define MAXSIZE 10typedef struct {int r[MAXSIZE]; //用于存储要排序的数组,r[0]作为哨兵或者临时变量int length;

神经网络第三篇:输出层及softmax函数

在上一篇专题中,我们以三层神经网络的实现为例,介绍了如何利用Python和Numpy编程实现神经网络的计算。其中,中间(隐藏)层和输出层的激活函数分别选择了 sigmoid函数和恒等函数。此刻,我们心中不难发问:为什么要花一个专题来介绍输出层及其激活函数?它和中间层又有什么区别?softmax函数何来何去?下面我们带着这些疑问进入本专题的知识点: 1 输出层概述 2 回归问题及恒等函数 3

神经网络第一篇:激活函数是连接感知机和神经网络的桥梁

前面发布的文章介绍了感知机,了解了感知机可以通过叠加层表示复杂的函数。遗憾的是,设定合适的、能符合预期的输入与输出的权重,是由人工进行的。从本章开始,将进入神经网络的学习,首先介绍激活函数,因为它是连接感知机和神经网络的桥梁。如果读者认知阅读了本专题知识,相信你必有收获。 感知机数学表达式的简化 前面我们介绍了用感知机接收两个输入信号的数学表示如下: