perl语言入门(小骆驼)学习(一)

0、前言与目录

由于近期有闲,想提升一下自我的技能;故想学习一下Perl脚本语言,想利用这个脚本提升开发的效率!

首先我使用小骆驼(perl语言入门)进行学习,那么就先将小骆驼的目录列出:

  1. 简介
  2. 标量数据
  3. 列表与数组
  4. 子程序
  5. 输入与输出
  6. 哈希
  7. 漫游正则表达式王国
  8. 用正则表达式进行匹配
  9. 用正则表达式处理文本
  10. 其他控制结构
  11. perl模块
  12. 文件测试
  13. 目录操作
  14. 字符串与排序
  15. 智能匹配与given-when结构
  16. 进程管理
  17. 高级perl技巧

1、简介

首先作者介绍了Perl这个名字的含义,Perl是一个溯写词(backronym),而不是一个缩写词(acronym),这是因为该语言作者(Larry Wall)是先想出了这个词,然后在考虑怎么解释这个名字。现在主要被认同的名称有:“实用摘录与报表语言(Practical Extraction and Report Language)”和“病态折中式垃圾列表器(Pathologically Eclectic Rubbish Lister)”

该语言的一个特点是学习比较难,但完成学习后的使用会非常方便;这是由于作者在设计该语言的时候就偏向于程序员的使用便捷而非容易学习。选择这种方式的原因也很简单,学只学一次,而用却是一辈子可以用下去。所以Perl有很多便捷的写法,可以让使用者节省大量的时间;比如大部分函数都具有默认行为,这种默认行为在使用的时候很方便,可对于初学者来说可以说是噩梦了。例如:

while(<>){
    chomp;
    print join("\t",(split/:/)[0,2,1,5],"\n");
}

以上是本人认为简介中有用的内容,仅供参考!

2、标量数据

对于标量数据也就是数字字符串,perl对这一块做了比较多的工作,在大多数情况下让使用者可以不区分这两者的区别而直接使用。对于标量数据最常见的情况也就是将数据存入到一个标量变量中。在对标量数据操作中,需要注意的有一下几点:

  • 单引号与双引号的区别

Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。其中也有个例外,单引号内反斜线后续接反斜线或者单引号也是表示转义的。

另注:双引号内字符串有一种特性成为标量内插:

$meal = "noodles";
$test = "I ate $meal";         # $test="I ate noodles"
$test = 'I ate noodles'.$meal; # 另一种等效的写法,使用“.”操作符连接

上述代码描述了标量内插;也写了一种使用“.”句号操作符的连接情况也能实现相同的功能。同时下一章才讲到的列表也是可以在双引号内进行内插的!

  • 反斜线转义符号

在双引号内的字符串使用转义字符实现转义含义,或保存相应的转义所使用的符号(如反斜杠“\”)。

  • chomp

功能很简单却非常常用的一个函数,其只能作用于单个变量,且该变量必须为字符串,chomp()的任务就是去掉字符串末尾的换行符。

chomp($text = <STDIN>);  #从输入值读入字符串,并去掉换行符存入变量$text中。
  •  undef值

在变量未被赋值时,其状态即为undef;或者操作符在参数越界或不合理是会返回undef(例如:STDIN没有输入时,返回状态为undef)。对于数字时,undef会被作为0;对于字符串时,undef会被作为空字符串。

对于操作符可能返回undef的值,perl有defined的函数对返回状态进行判别,使用者可以用该函数判断返回状态并进行相应的操作。例:

$input = <STDIN>;
if( defined($input) ){
    print "The input was $input";
}
else {
    print "No input available!\n";
}

$input = undef;    #也可手动向变量赋undef的状态

第二章的主要重要内容差不多就以上了,其他操作都符合一般编程语言的思维就不再赘述。后面就做一下节后习题!

节后习题:

由于该章题目较为简单就不进行解释,直接上代码:

第三题代码如下:

#!/usr/bin/perl


$pi = 3.1415926;

#read user input
print "please input radius\n";
chomp( $radius = <STDIN> );

#determine if the input radius is less than 0
if($radius < 0) {
    $radius = 0;
}

#compute the result
$perimeter = 2 * pi * $radius;
print "perimeter = $perimeter\n";

 

第五题代码如下:

#!/usr/bin/perl

#read user input
print "please input a string\n";
chomp( $s = <STDIN> );

#read user input
print "please input num\n";
chomp( $num = <STDIN> );

#determine if the input number is less than 0
if($num =< 0) {
    print "please input a digital great than 0\n";
}

#output the string
while($num--){
    print "$s\n";
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第一章 Perl概述............................................................................................................................10 1.1 从头开始..........................................................................................................................10 1.2 自然语言与人工语言......................................................................................................11 1.2.1 变量语法...............................................................................................................12 1.2.2 单数变量...............................................................................................................13 1.2.3 复数变量...............................................................................................................14 1.2.4 复杂数据结构.......................................................................................................17 1.2.5 简单数据结构.......................................................................................................19 1.2.6 动词.......................................................................................................................21 1.3 一个平均值例子..............................................................................................................22 1.3.1 如何运行...............................................................................................................24 1.4 文件句柄..........................................................................................................................26 1.5 操作符..............................................................................................................................28 1.5.1 双目算术操作符...................................................................................................28 1.5.2 字符串操作符.......................................................................................................28 1.5.3 赋值操作符...........................................................................................................29

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值