第二章 标量数据

perl用标量称呼单个事物,存放在标量变量中

数字

perl内部总是用双精度浮点数保存数字和运算

允许在数字中插入下划线,如321=3_21

八进制数以0开头,16进制数以0x开头,二进制数以0b开头,并且可以用_隔开

2**3表示2的3次方

字符串

字符串可以包含任何字符,所以可以用于创建、扫描和操控二进制数据,比如用于存放图形文件或可执行文件

要在源代码中使用Unicode书写直接量的话,要手工加上utf8编译指令(use utf8;无特殊原因建议都加)

除了单引号和反斜线字符外,单引号内所有字符都代表它们自己:

'hello

there'     #hello、换行符、there(11个字符)

'\'\\'       #'和\两个字符

双引号内的字符直接量

反斜线具有转义的作用:

\n 换行

\r 回车

\t 水平制表符

\f 换页符

\b 退格

\a 系统响铃

字符串的变量名称替换成该变量的当前值

字符串操作符

两个字符串用.连起来形成更长的字符串:"hello".' '.'world'."\n"='hello world\n'

小写字母x为重复操作符:"clc"x3="clc"x(2+1)="clc"x3.8="clcclcclc"

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

自动完成,数字还是字符串取决于操作符,如+为数字,.为字符串("5"."7"="57")

判定为数字时忽略非数字部分,且字符串只会转换为10进制数:"12"*"3"="12abc34"*"3"="012"*"03"

警告

开启:use warnings;或者#! /usr/bin/perl -w

不会修改程序的行为,只是给程序员看的

查看更详细信息:use diagnostics;

标量变量

以$开头,所以无论取什么名字都不会和perl自带的函数或操作符冲突

赋值:

$a=10;

$b=$a*2;

$b+=10;

$str.="";

打印:

print

print "fred ate $n ${what}s";   #{}是为了区分变量名和后面普通的字符

借助代码点创建字符

chr()把代码点转换成字符:$alef=chr(0x05D0);

ord()把字符转换成代码点:$code_point=ord('?');

直接用代码点\x{}:“x\{03B1}”

比较

lt,le,gt,ge,eq,ne

if和while控制语句

一定要加表示边界的花括号

如果是数字,则0为假,其余为真;字符串则空字符串('')和'0'为假,其余为真;既不是数字也不是字符串则转换为数字或字符串再判断

if($name gt 'fred'){...}

while($count<10)

{$count+=2;...}

!表示取反

读取用户输入

<STDIN>

$line=<STDIN>;

chomp()

去除单个字符串变量末尾的换行符

chomp($test=<STDIN>);

undef值

变量未赋值时的值,表现的像0和''

所以perl中变量未被赋值却被使用不会发生问题

defined函数用于判断变量是否为undef,如果不是返回真,如果是返回假:

$test=<STDIN>;

if(defined($test)){...}

else {...}


你可能感兴趣的:(perl,标量数据)