Perl脚本语言学习1:

一、perl基本要素:数字和字符串

perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用。
第一篇博文就这么潦草的结束,慢慢摸索,希望这是一个开始



  • 标量常量:数字 和 字符串
  • 标量变量:存放标量

字符串
只有使用转义字符才能在字符串中插入特殊的字符。

  • 单引号:‘ ’中的每个字符都表示它本身,$a, \n等等,都不会进行处理,原样输出。
  • 双引号:“ ”中Perl会查看是否存在 变量名 和 转义序列,一旦发现,会自动替换。

如何便捷的将字符串用 双引号 或 单引号 括起来?

  • qq运算符:qq(I said, “I love you!”) 用法如上 q运算符: q(Tom’s tree)
  • 用法与之前单引号一样,会原样输出单引号内的所有内容。

标量变量

  • 特殊变量($_):当前默认值

运算符(运算符之间可以有空格)

数字运算符有哪些?

  • 加+;减-;乘*;除/;求余%;取幂**;

字符串运算符有哪些?

  • 并置运算符(.)(运算对象必须为字符串标量或者标量变量)
  • 可以使用反斜杠\,指定屏蔽字符串内的内插替换(标量变量和转义字符)
  • 如果字符串中标量名和字符串过于紧密,可以用{}显示指定变量名,如${name}space
  • 重复运算符(x),如“-”x 10;

例如,
如果操作数属于混合类型(譬如数字与字符串),Perl 会首先判断运算符期望的操作数类型,然后作相应的类型转换。这个过程又称为运算符重载(overload)。

如果运算符是数值型的(如代数运算符),而操作数却是字符串的话,Perl 将把该字符串转换为相应的十进制浮点数。未定义的字符串值会转换为数字 0。如果字符串首部拥有空格前缀,或者末尾带有非数字字符的话,Perl 会忽略它们。如果某个字符串无法转换为相应数字的话,Perl 会将其变成 0。

(示例):

$string1 = "5 dogs ";
$string2 = 4;
$number = $string1 + $string2; # Numeric context
print "Number is $number.\n"; # Result is 9

同样,如果 Perl 碰到了字符串型运算符,而相应操作数是数值型的话,便会将数字转换为字符串进行处理。例如,下面使用了连接运算符,负责把两个字符串连接到一起。

(示例):

$number1 = 55;
$number2 = "22";
$string = $number1 . $number2; # Context is string
print "String is $string.\n" # Result is "5522"

在这里插入图片描述

代码如下(示例):

(The Script)
 $x = " 12hello!!" + "4abc\n";
# Perl will remove leading whitespace and trailing non-numeric
# characters
 print "$x";
 print "\n";
 $y = ZAP . 5.5;
 print "$y\n";
(Output)
 16
 ZAP5.5

解释:

  1. 加号(+)是一个数值运算符。字符串“ 12hello”和“4abc\n”会转换成数字(需去除其空格前
    缀和末尾的非数字字符),然后再执行加法运算。其运算结果存储到标量 $x 中。
  2. 打印标量 $x。
  3. 由于在转换成数字时会把 \n 从字符串 4\n 中去除,因此在打印时需要提供另一个换行符 \n。
  4. 点号(.)左右都是空白字符,因此它是一个字符串运算符,作用是连接两个字符串。在本行
    中,数字 5.5 将先转换成字符串,然后和另一个字符串 ZAP 连接在一起。
  5. 打印标量 $y 的值。

尖括号运算符?

  • 用于读写文件,,从标准输入读入一行;默认会读入我们最后输入的回车,可以使用从chomp运算符去掉;
  • chomp可以去除任何参数结尾的换行符,返回被删除的字符数(删除了返回1,没删除返回0)。

示例: 把输入内容赋值给标量型变量
当从文件句柄 STDIN 读取输入内容时,倘若上下文语境是标量型,程序将每次读取输入的一行(包括换行符),并将其内容作为单个字符串赋予标量型变量。

代码如下(示例):

(The Script)
 # Getting a line of input from the keyboard.
print "What is your name? ";
$name = <STDIN>;
print "What is your father's name? ";
$paname=<>;
print "Hello respected one, $paname";
(Output)
What is your name? Isabel
What is your father's name? Nick
Hello respected one, Nick


解释:

  1. 把字符串 What is your name? 发送给 STDOUT 文件句柄,该句柄默认指向终端屏幕。
  2. 位于输入运算符 <>(又称方块运算符)中的 STDIN 读取一行输入,并把这一行内容及其末
    尾的换行符赋值给变量 $name。在把输入内容赋予标量型变量时,程序会一直读取输入字符
    直到用户按下 Enter 键。
  3. 把字符串打印到 STDOUT 文件句柄。
  4. 如果输入运算符是空的,则从 STDIN 读取下一行输入内容,其行为与上述第 2 步相同,只
    不过这次是将输入值赋予 $paname。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值