• 热门专题

perl 语言入门chapter2 标量数据

作者:pugolo  发布日期:2012-05-25 11:08:06
Tag标签:perl    chapter2    标量数据  
  • 标量scalar      $example  表示一个独立的数值(数字或字符串)

    数组 array      @example       表示一列数值,用编号作键字,如$example[0]

    散列 hash       %example        表示一组数值,用字符串作标记,如$example{“key”}

    子过程 sub-router         &example        表示一段可以调用的perl代码

    类型团            *example 所有叫example的东东

     

    数字标量

    Perl总是按双精度浮点数来进行保存和运算。

    直接量literal是写在perl代码中的数据,如:

    浮点数直接量-6.5e24(负6.5乘以10的24次方)

    整数直接量12_242_244_242,在这里起分隔符作用的是”_”,而不能用逗号,因它已有别的用途。

    非十进制整数直接量0377(8进制377),0xFF(16进制FF),0b11111111(2进制1213),同样可以使用”_”来进行区隔。

     

    数字操作符 + - * / %(取模,先分别取整再求余,如10.5%3.2等同于10%3)**(乘幂,2**3表示2的3次方)。

     

    字符串

    字符串就是一连串的字符,最短为空,最长没有限制。字符串通常由可输出的字母、数字及标点符号组成,其范围介于ASCII码的32到126之间(其它ASCII为一些控制键)。

    字符串直接量在单引号和双引号中有不同的规则。

    单引号字符串直接量:除了单引号和反斜线\外,所有字符都代表它本身。要表示单引号用“\’”,要表示反斜线用“\\”。

    双引号字符串直接量:在这里反斜线拥有更强大的功能:

    \n     换行(光标移动到下一行)

    \r      回车(光标移动到行首)

    \t      水平制表符

    \f      换页符

    \b     退格

    \a     系统响铃

    \e     ESC(ASCII编码的转义字符)

    \007 任何8进制的ASCII码值(这里的007表示系统响铃)

    \x7f 任何16进制的ASCII码值(这里的7f表示删除键的控制代码)

    \cC   控制符,也就是control键的代码(这里表示同时按下CTRL和C键的返回码)

    \\     反斜线

    \”     双引号

    \l      将下个字符转为小写

    \L     将到\E为止的所有字符转为小写

    \u     将下个字符转为大写

    \U    将到\E为止的所有字符转为大写

    \Q    将到\E为止的非单词字符加上反斜线

    \E     结束\L,\U或\Q

    字符串操作符

    “hello”.” World”表示”hello world”

    “fred”x3表示”fredfredfred”,5x(3+1)表示”5555”。右边的数字如果是浮点数则会先取整。

    不管是字符串还是数字,操作符前后的空格只是为了显示美观,没有实际意义。

     

    数字与字符串之间的自动转换

    Perl会根据操作符的需要自动在数字和字符串之间进行类型转换,即如果是数字操作符则把操作数看成数字,如果是字符操作符则把操作数看成是字符串。

    数字操作符遇到字符串类型的操作数,会自动将字符串转换成等效的十进制浮点数进行运算。字符串中后面的非数字部分和前置的空白会被忽略,如“12fred34”*“ 3”相当于“12”*“3”。第一个非空白字符不是数字的字符串会被转换成零,如“a12312”、“ q23”。

     

    Perl内建的警告

    有以下几种方式可以让perl发出警告:

    a.      运行perl时加上-w选项,如:[root@centos1 chp1]# ./perl1 –w

    b.      写入程序中:#!/usr/bin/perl –w

    c.      在perl5.6以上版本中,在程序中写入use warnings;

    d.      在程序中写入use diagnostics;这将显示更详细的警告,但是程序启动会慢很多

    e.      运行perl时机上-Mdiagnostics选项,如:[root@centos1 chp1]# ./perl1 –Mdiagnostics

     

    标量变量

    标量变量名称以$开头,后面接着perl标识符:字母或下划线为首,后面可以跟上字母、数字或下划线,区分大小写。建议使用小写字母和下划线方式的命名方式。

     

    双目操作符

    $fred = $fred +5;    采用双目操作符写法为: $fred += 5;

    $str = $str . “ing”;   采用双目操作符写法为:$str .= “ing”;

    几乎所有的操作符都可以这么使用。

     

    变量内插

    在双引号中可以进行变量内插。如果在内插值后面紧接着输出其它字符,可以用花括号将变量名包围起来,如print “fred ate $n ${what}s. \n”;   #这里进行了变量$n和$what的内插。

     

    Perl比较操作符

     

比较 数值 字符串 记忆帮助
相等 == eq Equal
不等 != ne Not equal
小于 lt Less than
大于 gt Greater than
小于或等于 <= le Less equal
大于或等于 >= ge Greater equal   

布尔值

Perl没有专用的布尔数据类型,它靠以下这些简单的规则来判断:

a.      如果值为数字,0为假,其余为真

b.      如果值为字符串,空字符串(’’)为假,其余为真

c.      如果值不是数字也不是字符串,就先转换成数字或字符串再判断

特例:如果字符串是’0’时,会将其视为数字0,判断其布尔值为假。

可以用!这个单目取反操作符取得任何布尔值的相反值,如 ! $boolean

 

标准输入和chomp

标准输入<STDIN>返回的字符串,一般在最后都会跟有一个换行符。

Chomp的作用很简单:只能用在一个字符串变量上,用来去除它最后的一个换行符,而且只去除一个。Chomp的返回值是它实际移除的字符数(0或1)。

 

Undef值

如果某标量变量没有被赋值,那其初始值就是undef。在把该变量当做数字使用时undef表示0,当做字符串时undef表示空。可以把undef值赋值给变量,如$madonna = undef;

 

Defined函数

可以用defined函数来判断某变量值是不是undef,如:if (defind($madonna))

延伸阅读:

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规