【perl】学习手记(一)--基本类型及运算符
一、Perl的基本类型
Per的基本类型分为两种:数值型和字符串型。
数值型可细分为
- 整数型。如123。
- 浮点型。如123.123、0.123456。
- 科学计数型。如1.23E2、1.23e2。
- 大数值类型。如1_156_123_585_123。
字符串型
- 字符串。如“123456”,‘123’,qq(this is a string too!)
二、用变量存储基本类型值
Perl定义变量很简单。格式为:$变量名 (PS:Perl的程序员肯定是想钱想疯了);引用的方式也很简单:$变量名。
下面给出一个简单的示例:
- #!user/bin/env perl -w
- $int = 123456;
- $float = 123.456789;
- $sci_notation1 = 1.2E10;
- $sci_notation2 = 1.2e10;
- $big_num = 1_789_854_654_894_654_355_223;
- $string = "this is a string";
- printf "int value :$int\n";
- printf "float value :$float\n";
- printf "sci_notation1 value :$sci_notation1\n";
- printf "sci_notation2 value :$sci_notation2\n";
- printf "big_num value :$big_num\n";
- printf "string value :$string\n";
输出结果如下
- int value :123456
- float value :123.456789
- sci_notation1 value :12000000000
- sci_notation2 value :12000000000
- big_num value :1.78985465489465e+021
- string value :this is a string
简单解释一下:
- 科学技术型数值中E不区分大小写
- 大数值类型采用“_”进行分隔仅是为了方便阅读,上面采用千分法,你也可以采用万分法,也可以直接不使用“_”
- print和printf均为内置的输出函数。如果想要接收键盘输入数据可以采用后面的格式:$from_key_board = <STDIN>; 从DOS窗口接收输入,存储到$from_key_board中
注意:
- 如果数据过长,会有精度上的舍入。
- 字符类型的表示
- 可以使用双引号"",也可以使用单引号'',必须成对出现。
- 当单引号内部内容包含单引号或双引号内部内容包含双引号时,可以采用反斜杠“\”进行转义。如:"Tom said:\"it is rainning outside!\"".
- Perl提供另外一种字符串表示方式qq代表双引号(not Tencent QQ),q代表单引号,配合界限符使用。界限符可以使任意非空格、tab、换行字符。例如:qq(Tom said :"it is raining outside")。但是不推荐使用数字和字母作为界限符,会造成程序阅读困难.
- 但是也会碰到第二点的问题,如果内部字符创包含界限符,1.成对出现的是允许的,但是会降低可读性。2.使用转义字符。3.界限符那么多,换一个。
- 上述printf输出中有引用到之前定义的变量。这种方式仅在“”或pp内部可以使用,其他方式不可。
三、Perl中运算符
多数都和其他语言一样,如果你有一定的语言基础,可以只看红字部分
赋值运算符
- = 赋值
- += 例如:$num += 1; 等价于$num =$num+1;
- -= 例如:$num -= 1; 等价于$num =$num-1;
- *= 例如:$num *= 1; 等价于$num =$num*1;
- /= 例如:$num /= 1; 等价于$num =$num/1;
- %= 例如:$num %= 1; 等价于$num =$num%1; #取模,除以那个数取余数
- **= 例如:$num **= 2; 等价于$num =$num**2; #**代表幂,$num的2次方
- .= 例如:$str.=“ string” 等价于 $str = $str." string";# . 代表连接符,将两个字符串拼接起来
算术运算符
- +
- -
- *
- /
- % 取余数
- ** 幂指数 10**2 即10的2次方
- ++
- --
- . 连接字符串,"this is a "."string" = "this is a string"
数值关系运算符
- > 大于
- >= 大于等于
- < 小于
- <= 小于等于
- == 等于
- != 不等于
- <=> 大于:1;等于:0;小于:-1;
字符串关系运算符
- gt 大于
- ge 大于等于
- lt 小于
- le 小于等于
- eq 等于
- ne 不等于
- cmp 大于:1;等于:0;小于:-1;
逻辑运算符
- &&或and 与 全真则真
- || 或or 或 全假则假
- !或not 非 真假假真
- xor 异或 同假异真
位运算
- & 按位与
- | 按位或
- ~ 按位非
- ^ 按位异或
- << 左移位
- >> 右移位
特殊运算符
- .. 区间表示 如 1..3 等价于 1,2,3
- ?: 三目操作符,满足?前条件执行:前内容,不满足执行:后内容
文件数据运算符
- -r $file 如果$file是可读取的话,返回1的值
- -w $file 如果$file是可写入的话,返回1的值
- -x $file 如果$file是可执行的话,返回1的值
- -e $file 如果$file存在的话,返回1的值
- -o $file 如果$file是被执行才所拥有的话,返回1的值
- -s $file 返回$file的文件大小(bytes)
- -f $file 如果$file是正常文件的话,返回1的值
- -T $file 如果$file是文本文件的话,返回1的值
- -B $file 如果$file是Binary文件的话,返回1的值
- -M $file 返回$file文件最后一次更改时间到现在的日期数
特别注意:
1.Perl不刻意强调变量的初始化,如果一个变量没有初始化就进行运算,则会取其默认值:数字为0,字符串为""空字符串。
2.Perl中字符串可以和数值进行运算,如果字符串看上去不像个数字,则会用0代替
3.千万注意数值型关系运算符和字符串型关系运算符的区别。数字比较时用数值关系运算符,字符串比较时用字符串关系运算符。
如果在字符串比较时使用了数值关系运算符,如: $name="Jack";$name == "Tom";运算的结果总会是1,原因参见 2。
(到时候你从数据库里取出几千万的数据别怪我没说啊,等着被项目经理打死吧)
4.移位操作中<<与操作系统位数有关,如64位操作系统中 1<<64 =1,每移动64位为一个循环。
5.Perl中认为0,空字符串,未定义值undef为false,其他均为true。
6.字符串关系运算中,对两边的字符串从左到右进行按位比较,比较依据Ascii码表顺序
7.&& 和and并不完全相同,&&要早于and执行
8.逻辑运算符并不是返回0或1,而是返回判断结束前处理条件的结果。如 1&&2 返回2 ,0&&2返回0,1||2返回1。
Perl常用函数
printf:输出函数,用法同c语言中一样;
length:输出包含内容的长度:如length("asdf")=4;
chop:去除最后一个字符:chop("abcd")="abc";
chomp:去除尾部的回车换行:chomp("abcd\n")="abcd";
substr($string,m,n):给定字符串,从地m位开始截取n位长度:substr("Hello",2,3)="llo",计数从0开始,n可省略,即至尾部
【perl】学习手记(一)--基本类型及运算符相关推荐
- python pip安装失败红字_Perl入门(一)Perl的基本类型及运算符
在学习Perl的基础之前,还是希望大家有空去看以下Perl的简介.百度百科 一.Perl的基本类型 Per的基本类型分为两种:数值型和字符串型. 数值型可细分为 整数型.如123. 浮点型.如123. ...
- R语言学习手记 (1)
R语言学习手记 (1) 经管的会计和财管都会学数据统计与分析R语言这门课,加上我也有点兴趣,就提前选了这门课,以下的笔记由老师上课的PPT.<R语言编程艺术>和<R语言数据科学> ...
- webpack入门学习手记(一)
本人微信公众号:前端修炼之路,欢迎关注. 之前用过gulp.grunt,但是一直没有学习过webpack.这两天刚好有时间,学习了下webpack.webpack要想深入研究,配置的东西比较多,网上的 ...
- uni-app官方教程学习手记
本人微信公众号:前端修炼之路,欢迎关注 背景介绍 大概在今年的十月份左右,我了解到Dcloud推出了uni-app.当时下载了一个Hbuilder X,下载了官方提供的hello示例教程.经过一番努力 ...
- webpack入门学习手记(一) 1
本人微信公众号:前端修炼之路,欢迎关注. 之前用过gulp.grunt,但是一直没有学习过webpack.这两天刚好有时间,学习了下webpack.webpack要想深入研究,配置的东西比较多,网上的 ...
- Docker学习手记-1
1.Docker简介 docker的历史 2010年,几个的年轻人,就在美国的旧金山成立了一家公司 dotcloud.做一些Paas平台的创业公司! 从事LXC(Linux Container容器)有 ...
- ActionScript 学习手记之ExternalInterface的使用
Flash ActionScript 学习手记之ExternalInterface的使用回家之前接到来自学校软件协会的一个开发任务,要求实现.Net与Flash之间的相互操作,具体要求实现C#对fla ...
- Perl学习教程大纲
以下是一个可能的 Perl 学习教程大纲: 一.Perl 简介 Perl 的历史和发展 Perl 的特点和优点 Perl 的应用领域 二.Perl 基础语法 Perl 的变量和数据类型 Perl 的运 ...
- webpack入门学习手记(三)
本人微信公众号:前端修炼之路,欢迎关注. 距离上一次更新这个系列,过去了两天.最近实在是有点忙,没有挤出时间整理.感觉日更还真是困难? 以下是正文. 管理资源 如果看过之前的系列文章,应该会有一个学习 ...
- 实验c语言程序数据类型,C语言程序设计实验报告——实验2--数据类型、运算符和表达式.doc...
C语言程序设计实验报告--实验2--数据类型.运算符和表达式.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档 ...
最新文章
- 查找窗口隐藏了怎么办_如何还原U盘隐藏空间 U盘隐藏空间还原方法【详解】
- PowerPoint什么意思
- java中位于集合框架顶层位置的是,CoreJava第二次内测有答案
- 二、optimizer_trace基本使用
- Cocosbuilder使用教程
- android 添加字幕,字幕添加器app-字幕添加器安卓版v2.0.1 - 起点软件园
- MAC安装JDK详细教程
- DES、3DES、AES以及RSA加密介绍
- 林海峰讲的python_python常用模块-------转自林海峰老师
- 有些事现在不做,一辈子都不会做了
- 国企的面试我们应该怎么准备?
- 08-Hadoop之Zookeeper详解
- chrome无法从该网站添加应用、扩展程序和用户脚本
- beyond compare 3中文乱码
- 蓝桥杯-【交换瓶子】【2016年省赛B组题解】【C++】
- 生活陪伴、健康监测、紧急呼叫 ,深兰科技康养服务机器人成智慧养老新标配
- 文件处理与垃圾回收机制
- 联盟广告回利模式4种
- HTC 系列手机解锁,刷recovery以及刷Rom教程
- 有什么毫不起眼,却可以闷声发大财的工作?
热门文章
- python sklearn svm多分类_sklearn中SVM一对一多分类参数的研究
- 直播预告 | 北京大学、北京航空航天大学、阿里巴巴、小米的四位讲者来啦!...
- mysql建库 utf_mysql创建数据库 utf
- GRNN、RBF、PNN、KELM之间究竟有什么联系?
- 一个月能卖400套房子的顶尖模式,跨界的威力
- Git 用户手册(1.5.3 及后续版本适用)
- 相机投影模型以及畸变模型
- 去掉字符串最后一个字符的方法
- 软件测试实验三 修正条件/判定覆盖测试设计
- 【phpcms-v9】category.php文件分析-添加栏目