perl 的基本数据类型

1、变量

scalar:$varname 变量

数组:  @varnanme

Hsah:  %varname

文件:  通常大写字母

2、变量名的命名规则

简单变量以$开头后面跟字母数字或者下划线;

区分大小写;

变量名长度不限;

没有关键字,但是不能和内置变量重名;

数值:

12 
-12 
12e3   #(科学计数法,e不区分大小写)
1_222_2333  #-只是分隔符,便于阅读,perl语句执行时会自动忽略
012    #0开头的默认是八进制数
0x2f   #十六进制数,f不区分大小写
#/usr/bin/perl
$a=1283_11_31_51;
print "$a \n";

结果:

[[email protected] tmp]# perl txt 
1283113151

浮点 

11.5
-.3
.3
0.3
2.5E6  #(e不区分大小写,后面数字为1-3位,整数位15位有效数字,超出则截断)
指数型浮点:指数为-309~308 ,太小则数值为0,太大则为1.#INF

字符串

 "" 或者‘‘

最少为为空"",最多可以占满空余内存,结尾不包含c语言的null(‘\0‘)
变量引用

变量引用使用变量名的最长匹配为原则:

$var="it";
$varing="ms";
print "\$var is $var\n"   #此处最长匹配输出的为$varing的值
print "\$var is ${var}\n" #这是正确引用$var的方法
[[email protected] tmp]# perl txt 
$var is it
$var is ms

转义字符

 perl的转义字符和其他语言的转义字符类似:

\a \b \l \xnn
\cn \e \r ‘‘
\L \f \t \‘
\n \Q \nnn \\

字符比较

数值比较:

>,<,==,<=,>=,!=,<=>

<=>:$a <=> $b;

$a < $b,返回-1

$a = $b,返回0

$a > $b,返回1

perl会自动转换操作数到int,不能转换的转换为0

字符串比较:

lt gt ge eq le ne cmp

安照字母表的顺序:num<大写<小写 (a-z)

从左向右比较

当一个是另一个前缀时,较长的一个值大:god < godness

字符串可以从右向左进位,字母和数字分别进行

自动转换操作数为字符串

cmp用法同<=>

空字符串,0,undef的为假

字符串的连接

. 连接

print $x=‘a‘.‘b‘ ; #$x=‘ab‘
#/usr/bin/perl
$a="ace";
$b="me";
print "$a$b\n";         #把$a$b分别替换
print $a.$b;            #把$a$b进行字符串拼接,作为一个整体
[[email protected] tmp]# perl txt 
aceme
aceme

x 重复 x次数小于1,则为空,x的前后需要空格

#/usr/bin/perl
$a=‘ox‘ x 5;
print "$a\n";
[[email protected] tmp]# perl txt 
oxoxoxoxox

逻辑运算

&& and || or  ! not xor

先计算逻辑运算左在计算右边

位操作

& | ~ ^ << >>

操作数为二进制整数,小数则截取为整数处理

赋值运算

= += -= *= /= %= **= &= |= ^= .=

($a=$b)+=3
#等价于
$a=$b;
$a=$a+3;

 ++ --
可以用于字符串的自增,z Z 9时进位:

$a=‘az‘,$a++;
→$a=‘ba‘

不可以用于字符串的自减运算,$a--,按数值运算,转换为0,再自减

$a=‘az‘,$a--;
→$a=-1

字符串含有非字母数值,数值位于字母中间,++运算转为0在自增

$a=‘a2z‘,$a++;
→$a=1

$b=++$a先执行自增在执行赋值,$b=$a++先执行赋值在执行自增

$a=‘a2z‘;
$b=$a++;
→$b=‘a2z‘
$a=‘a2z‘;
$b=++$a;
→$b=1

只能作用于单一变量:

($a+$b)++;#这种是错误的

条件运算

条件?真:假

优先执行条件表达式,真执行?后的内容,假则执行:后的内容

$result=$var==0?14:7

执行条件语句:$var==0,成立则执行赋值 $result=14,不成了则$result=7

条件变量在等号左边

$var==42?$var1:$var2 =14

各种运算的优先级

++/--  < <= > >= lt le gt ge ?: -~! == != <=> eq ne cmp = += *= ** |^ 

时间: 2024-10-12 13:21:01

perl 的基本数据类型的相关文章

perl: 数据类型 和 运算符

Perl数据类型和运算符: ----------------------- 布尔类型bool: 数字:0为假,其它为真. 字符串:空字符串为假(包括'0'),其它非空为真. -------------------------- Perl的标量scaler: 1.数字:整数.浮点数 2.字符串:单引号.双引号 浮点数直接量: 可以用小数点表示也可以用指数表示. 整数直接量: 在perl里整数其实都是转换成浮点数运算的. 有十进制.二进制(0b开头).八进制(0开头).十六进制(0x开头). 数字的

perl多线程使用

原文来自:博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun <<=========================threads===========================>> #!/usr/bin/perl use?threads ('yield', ????????????'stack_size'?=> 64*4096, ????????????'exit'?=> 'threads_only'

perl学习之:函数总结

一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量[email protected]为空串,如果有错误,[email protected]中为错误信息. 例子 $print = "print (\"hello,world\\n\");";eval ($print); 结果输出 hello, world 函数名 system 调用语法 system(list) 解说

javascript 变量 数据类型typeof

ECMAscript语言大量借鉴了c语言及类c语言(java和Perl)的语法.因此熟悉这些语言的开发人员在接受ECMAScript更加宽松的语法时,一定会有种轻松自在的感觉. 区分大小写 要理解的第一个概念就是ECMAScript中的一切(变量.函数.操作符)都区分大小写.这也就意味着test和Test分别表示两个不同的变量,而函数名不能用typeof ,因为它是一个关键字.而typeOf则完全可以是一个有效的函数名. 标识符 所谓标识符,就是变量,函数,属性的名字或者函数的参数.标识符的规范

PHP100-第三讲 PHP5.4 语法、常量、变量、数据类型详解

内容摘要: ①PHP5.4 的基本语法与写作格式 ②PHP5.4 的变量与变量数据类型 ③PHP5.4 的系统常量与自定义常量 PHP5.4 的基本语法与写作格式: 任何程序语言都有自己的语言风格,PHP语言也有自己独特的风格,虽然也继承了许多Perl和C的语言特色.但经过多年的发展PHP已经成为了一个成熟 的编程语言,所以我们还需要认真的学习PHP的独特语法.PHP一个很大的特色就是与HTML标签语言进行混编,这种模式是今后很长一段学习过程中所用到 的格式,因此我们先来通过一个例子来认识一下P

关于perl bignum模块用法

用bignum处理大数: 对于32位的perl来说,他的整数范围被限定在32位. perl -le "print 873498127389471892374891723489172389407128947891234" 8.73498127389472e+50 打印的结果为科学记数法显示 在命令行中输入一个较大位数的整数,显示结果与我们预想结果存在较大的偏差,精度缺失. 在perl中使用bignum模块可以解决数据精度缺失的问题. 我们来看两个例子: 对比上述结果可以看到,当加入big

【python学习笔记02】python的数据类型2

列表和元组之间的主要区别是:列表括在括号([])和它们的元素和大小是可以改变的,而元组在圆括号(),不能被更新.元组可以被认为是只读列表. 存储在一个列表中的值可以使用切片操作符来访问([]和[:])用索引从0开始,在列表的开始位置和结束为-1.加号(+)符号列表连接运算符,星号(*)重复操作. Python字典是一种哈希表型.他们像关联数组或哈希在Perl中一样,由键 - 值对组成.字典键几乎可以是任何Python类型,但通常是数字或字符串.值可以是任意Python的对象. 字典是由花括号括号

Perl语言学习之变量

1.类型 Perl只有三种类型,标准变量,数组和散列(哈希),分别用三种符号进行表示,即$,@,%. #!/usr/bin/perl $name = "xuzhang"; print "$name\n"; #xuzhang @months = ('xuzhang','mating','mao'); %person = ( 'name' => 'xuzhang', 'age' => 18, 'adress' => 'china' ); print &

Python数据类型笔记

Python中能够直接进行处理的数据类型可以分为整数.浮点数.字符串.布尔值以及空值. Python中整数和浮点数表示的大小是任意的,不会像Java等其他高级语言对每种数据类型表示的范围有限制,这也是python使用起来简单方便的原因之一. 针对整数和浮点数运算,python提供了+(加).-(双目减,单目得到负数).*(乘)./(除).%(取模).**(幂).//(取整除) 其中除和取整除的区别如下: 9/2 == 4 9 // 2 == 4 9.0/2 == 4.5 9.0//2==4.0