②安薇理工大学 ANHUI UNIVERSITY OF SCIENCE TECHNOLOGY Linux开发基础 Development Foundation on Linux Os 教师:赵宝 安徽理工大学计算机科学与工程学院
安徽理工大学 计算机科学与工程学院 Linux开发基础 Development Foundation on Linux OS 教师:赵宝
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG Section 4 Perl programming
3 Section 4 Perl programming
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 4.1编写第一个Perl程序 第一步:选择一个自己喜欢的编译器,例如我们选择ⅵ编 辑器。 第二步:在编辑器中输入Per程序: vi helloworld.pl >代码如下: hellloworld.pl ># /usr/bin/perl print“ Helllo, word!n”; 第三步:设置该文件为可执行文件: chmod +x helloworld. pl >第四步:运行程序即可: S /helloworld. pl
4 4.1 编写第一个Perl程序 ➢ 第一步:选择一个自己喜欢的编译器,例如我们选择vi编 辑器。 ➢ 第二步:在编辑器中输入Perl程序:vi helloworld.pl ➢ 代码如下:helloworld.pl ➢ #! /usr/bin/perl ➢ print “Hello,word!\n”; ➢ 第三步:设置该文件为可执行文件: ➢ chmod +x helloworld.pl ➢ 第四步:运行程序即可: ➢ $./helloworld.pl
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 4.1.1提问并保留结果 在此基础上做稍微复杂一点的改变,我们使该程序按你的 名字打招呼。要做到这一点,需要一个变量来存放姓名。 我们使用$name来保存姓名。 if!/usr/bin/perl printf"请问您的姓名?"; Sname=: chop(sname) printf"你好,$name,欢迎光临!n"; 这里第三行表示从终端获得行输入并赋值给$name, 这里的$name的值有一个换行符,第四行chop($name) 表示去掉$name的最后一个字符即换行符)。第五行显示 输入
5 4.1.1 提问并保留结果 ➢ 在此基础上做稍微复杂一点的改变,我们使该程序按你的 名字打招呼。要做到这一点,需要一个变量来存放姓名。 我们使用$name来保存姓名。 #!/usr/bin/perl printf "请问您的姓名?"; $name=; chop($name); printf "你好, $name,欢迎光临!\n"; 这里第三行表示从终端获得行输入并赋值给$name, 这里的$name的值有一个换行符,第四行chop($name) 表示去掉$name的最后一个字符(即换行符)。第五行显示 输入
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 4.1.2增加选择 现在让我们为 admin编写一个特殊的欢迎辞,而对其他人则采用 普通欢迎辞。要达到这样的效果必须将输入的姓名与 admin作比较, 如果相同则执行特殊功能。 F!/usr/bin/perl printf"请问您的姓名?"; Sname= chop(name); if($ named“ admin" pin"欢迎admn进入本系统n"; helse I printi"你好,$name,欢迎光临n"; 这里第五行用eq操作符对两个字符串进行比较,相同则执行下 句,否则执行ee下的语句(是不是和C语言差不多?)
6 4.1.2 增加选择 ➢ 现在让我们为admin编写一个特殊的欢迎辞,而对其他人则采用 普通欢迎辞。要达到这样的效果必须将输入的姓名与admin作比较, 如果相同则执行特殊功能。 #!/usr/bin/perl printf "请问您的姓名?"; $name=; chop($name); if ($name eq “admin"){ printf "欢迎admin进入本系统!\n"; } else { printf "你好, $name,欢迎光临!\n"; } 这里第五行用eq操作符对两个字符串进行比较,相同则执行下 一句,否则执行else下的语句(是不是和C语言差不多?)
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 413猜测密码 >现在已经可以对 admin发不同的欢迎辞,但如何加上密码 来控制权限呢?比如说,可以让除admn以外的人都必须 输入密码直到正确为止: i!/usr/bin/perl $ password="wsxy";#密码为wsxy printf"请问您的姓名?; Sname=<sTAINS: chop(sname); if($ name eg“ admin" prnt"欢迎 admin进入本系统!n";
7 4.1.3 猜测密码 ➢ 现在已经可以对admin发不同的欢迎辞,但如何加上密码 来控制权限呢?比如说,可以让除admin以外的人都必须 输入密码直到正确为止: #!/usr/bin/perl $password="wsxy"; #密码为wsxy printf "请问您的姓名?"; $name=; chop($name); if ($name eq “admin"){ printf "欢迎admin进入本系统!\n";
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG >else i printf"你好,$name!n请输入密码:"; Suess=; chop(guess while($guess ne $password printf"密码错误,请重新输入:" Guess=<STDIN chop(Guess); 8
8 ➢ } else { printf "你好, $name!\n 请输入密码:"; $guess=; chop($guess); while ($guess ne $password){ printf "密码错误,请重新输入:"; $guess=; chop($guess); }
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 这里先将密码保存在标量变量$ password中,然后当不 是zmd登录后,先显示欢迎语句,然后要求输入密码,通 过ne操作符将输入结果和$ password相比较,密码相同 则退出,不同则一直循环下去
9 ➢ 这里先将密码保存在标量变量$password中,然后当不 是zmd登录后,先显示欢迎语句,然后要求输入密码,通 过ne操作符将输入结果和$password相比较,密码相同 则退出,不同则一直循环下去
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG >当运行程序时,Perl的内部编译器首先遍历整个源程序, 把它转变为内部的字节码,它是程序的一种内部数据结 构。Per的字节码引擎将运行这些字节码。 10
10 ➢ 当运行程序时,Perl的内部编译器首先遍历整个源程序, 把它转变为内部的字节码 ,它是程序的一种内部数据结 构。Perl的字节码引擎将运行这些字节码
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 4.2标量数据 >标量是Perl中最简单的数据类型。大多数的标量是数字 (如255或325e20)或者字符串(如helo◆或者盖茨 堡地址) 标量数据可有操作符(如相加和串联),通常会产生一个 新的标量数据。标量数据的值可以存放在标量变量中。标 量可以从文件或设备读取,也可以写进去
11 4.2 标量数据 ➢ 标量是 Perl 中最简单的数据类型。大多数的标量是数字 (如 255 或 3.25e20)或者字符串 (如 hello◆或者盖茨 堡地址) 。 ➢ 标量数据可有操作符(如相加和串联),通常会产生一个 新的标量数据。标量数据的值可以存放在标量变量中。标 量可以从文件或设备读取,也可以写进去