加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Learning 1 Scalar Data

发布时间:2020-12-15 23:43:19 所属栏目:大数据 来源:网络整理
导读:【本文原创,转载请说明】 唉,虽然立志搞硬件,但并不是弄底层电路,需要和大量代码打交道,看到VTR-to-Bitstream中不断的用到了perl脚本语句,心血来潮地想学学,找到了 Randal L. Schwartz写的第六版Learning Perl,并且按照里面的顺序来学习。以下是我在

【本文原创,转载请说明】

唉,虽然立志搞硬件,但并不是弄底层电路,需要和大量代码打交道,看到VTR-to-Bitstream中不断的用到了perl脚本语句,心血来潮地想学学,找到了Randal L. Schwartz写的第六版Learning Perl,并且按照里面的顺序来学习。以下是我在看书时做的一些零碎的笔记,恕只是给我看的,根本没有内在联系可言。


Perl:?Practical?Extraction?and?Report?Language,需要运行一个pl语句,我在我的电脑中输入perl XX.pl即可。

事实上,Perl程序里最缺乏可移植性的就是#!这行了,因为我们必须确定每台机器上perl解释器是放在什么路径下的。不外乎就是/usr/bin/perl或者usr/local/bin/perl

这是我第一个敲的代码,linux环境,只是我用的是Tsinghua的Linux服务器。

#!/usr/bin/perl

printf?"What's?your?name?";

$name=<STDIN>;

chop($name);

printf?"hello,$name,?welcome!";

第一个输入的Perl语句,这里第三行表示从终端获得行输入并赋值给$name,这里$name的值有一个换行符,第四行”chop($name)”表示去掉$name的最后一个字符(即换行符),第五行显示输入。

?

Perl允许直接在整数直接量中插入下划线,乘幂操作符以双星号,比如2**3代表2的三次方

Perl完全支持Unicode,所以在字符串中可以使用任意一个合法的Unicode字符。不过由于Perl的历史原因,他不会自动将程序源代码当作Unicode编码的文本文件读入,所以如果我们想要在代码中使用Unicode书写直接量的话,得手工加上utf8编译器指令:use?utf8

?

单引号内的字符串直接量(single-quoted?string?literal)指的是一对单引号(‘)圈引的一串字符。前后两个单引号不属于字符串的内容,单引号内所有字符都代表它们自己。要表示反斜线字符本身,需要在这个反斜线字符前再加一个反斜线字符表示转义;要表示单引号本身时,同样在单引号前加一个反斜线字符表示转义。

?

双引号的字符串直接量(double-quoted?string?literal)?反斜线可以转义许多字符。

字符串操作符,字符串可以用.操作符连接(因为句号连接)”hello”?.?“world”??#等同于”helloworld”?string?repetition?operator?:x,?此操作符会将其左边的操作数(也就是要重复的字符串)与它本身重复连接,重复次数则由右边的操作数指定。?“hsl”?x?3?#”hslhslhsl”

“前置零”的技巧只对直接量有效,不能用于字符串的自动转换,自动转换总是按照10进制数字来处理的。?

0377??#十进制数字255的八进制写法;‘0377’?#会转换成十进制数377;**操作符向右结合,4**3**2?#4**(3**2),得到4**9

这是第二个代码,让我进一步了解变量的引用以及字符串的应用。结果如下:


以下是第二章给出的习题:


下面是我写的代码,都已经在linux平台上跑通。

1-3题:

#!/usr/bin/perl

print?"Please?input?the?radius?to?calculate?the?Perimeter:?n";

$Pi?=?3.141592654;

$Radius?=?<STDIN>;

chop($Radius);

if($Radius?lt?0){

print?"The?Perimeter?is?0.n";}

else{

$Peri?=?2*$Pi*$Radius;

print?"The?Perimeter?is?$Peri.n";}

4题:

#!/usr/bin/perl

print?"This?is?2-Multipler?Multiplication?Program?n";

print?"Input?the?first?Multiplier?:?";

$input1?=?<STDIN>;

chop($input1);

print?"Input?the?second?Multiplier?:?";

$input2?=?<STDIN>;

chop($input2);

$results?=?$input1?*?$input2;

print?"The?results?is?$results.n";

5题:

#!/usr/bin/perl

print?"Input?the?strings?you?want?to?repeat:?n";

$Str?=?<STDIN>;

chop($Str);

print?"Input?the?number?of?repetition:?n";

$Num?=?<STDIN>;

chop($Num);

print?"$Strn"?x?$Num;


在Learning Perl这本书的最后,有每章的习题答案,我看了以后发现有这么几个可以改进的地方:

1、$XX=<STDIN>; 和chop($XX)可以直接合并为一句: chop($XX=<STDIN>),其中的chop也可以改为chomp

2、在第5题中,按照题目的要求,我没有必要用chop($Str)这句,因为题中说了输出是要有空行,而chop的作用就是去掉最后一个换行符

3、把第一句改为:#!/usr/bin/perl -w,启用警告信息,能让我们更清楚地了解代码的运行情况


以上就是我对Perl语言的初步接触,在之后的日子里我也会继续,但是应该做不到每章都写这么多了~~期末考试就要来了,我还没有预习,god bless me.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读