8月26日 perl 学习笔记 环境配置 学习标量数据

在Mac开始学习perl 用的书是 Perl 语言入门 浏览脚本之家

1环境配置 

一开始学,只有一本书,不知道如何在电脑上面使用perl,问师兄师姐,他们都是在win7系统下下载 strawberry 的,但是我是Mac系统,我百度了一下,网上说Mac自带这个Perl, 我不是很懂,搞得有点晕头转向。我用Mac自带的脚本编辑无法运行,后来再用之前学习Python的IDLE编辑器,发现可以用,后来发现直接使用vim(Mac终端里面的) 的编辑器是最好的,OK,这样就开始学Perl了。

(后来证明,还是下载一个叫Atom 的编辑器 这个很不错)

当然要养成好的习惯 保存文件

cd Desktop

mkdir myvim

cd myvim

vim test.pl

perl test.pl

2 学习标量数据

Perl 的数据类型分为四种:Scalar(变量)、Scalar Array(数组)、Hash Array(散列)、References(指针)

标量 = 数字 + 字符串

数字 所有数字的内部格式都相同

Perl内部 数字都是按照 双精度浮点数 运算的 (并不存在整数)

% 这个是取余数的操作    10%3=1    ** 是乘幂 2**3  2的三次方

字符串 一个字符序列

hi 就是一个字符串  最短的字符就是一个空字符 “ ”

单引号内的字符串直接量

‘\’\\’ 单引号紧接着反斜线

注意:\n在这里不是换行符 只有在反斜线后面接续单引号或者反斜线时,才表示转义。

双引号内的字符串直接量

\n表示换行符


3字符串操作符

“hi” . “will” = “hiwill”

will X 4.7 = willwillwillwill

X为重复操作符 4.7要取整数为 4

数字与字符串会自己转化

开启警告功能

#! /Usr/bin/perl

use warnings;

#! /Usr/bin/perl

use diagnostics

变量 存储一个或者多个值的容器的名称

标量变量 单存储一个值的变量

$ 变量符号

双目赋值操作符

$will = $ will + 5

$will += 5

$will = $will . “ ”

$will .= “ ”

字符串中的标量变量内插

借助代码点创建字符

$will = chr( 0x05Do ) ;

可以通过ord() 函数把字符转换为代码点

$will=ord(‘? ’)

If 语句布尔值TRUE FALSE获取用户输入$will =;chomp($will);chomp($will =); 去掉末尾的换行符

学习 while的控制结构

学习 undef

常用的操作运算符

算术运算符 

+(加)、-(减)、*(乘)、/(除)、**(幂)、%(余)、-(负) 

(1)求幂(**) 结果不能超出数的范围。当指数为小数时,底数不能为负数,例如:25**1.5=125,(-25)**1.5=?(不成立) 

(2)取余(%) 操作数为整数,否则要截取。第二个数不能为0(因为除数不能为0) 

(3)负(-) -$a=$a*(-1) 

此外,注意当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为0。例如:'2'+1=3,'a'+1=1

数字比较运算符

 <(小于)、=(等于)、>(大于)、==(等于)、<=(小于等于)、>=(大于等于)、!=(不等于)、<=>(比较) 

(1)==:比较运算,比较的结果为真或非零,假或零 

(2)<=>:比较运算 例如:$a<=>$b,当$a>$b时,值为1;当$a<$b时,值为-1;当$a==$b时,值为0 

(3)自动把操作数转化为整数,不能转化为整数则为0 

(4)浮点数不精确,不要把值相近的数比较,否则得到的结果是出乎意料的

字符串比较运算符 

lt(小于)、gt(大于)、eq(等于)、le(小于等于)、ge(大于等于)、ne(等于)、cmp(比较) 

(1)字符串的比较原则:按照字母表的顺序比较,数字<大写字母<小写字母(a小—z大) (2)字符串比较的次序:字符串从左到右比较。'azz'<‘bc'(即:首先a与b进行比较,然后z与c进行比较) 

(3)当一个串是另一个的前缀时,长度长的为大。例如:dog<doghouse

(4)字符串可以从右向左进位,且是字母数字分别进行

(5)自动把操作数转化为字符串。123 lt 45 => '123' lt '45'

   (6)cmp等同于<=>,结果为-1,0, 1

例如:$str1=”a”,$str2=”a“,则print ($str1 cmp $str2) ==> 0

例如:$str1=”a”,$str2=”b”,则print($str1 cmp $str2)===> -1

例如:$str1=”b”,$str2=”a”,则print($str1 cmp $str2)===> 1

(7)空串,0,Undef,这三种情况都为假

例如:如下比较的结果

35 != 30+5    #假

35 == 35.0    #真

'35' eq '35.0'  #假(当成字符串来比较)

'fred'  lt  'barney'  #假

'fred'  lt  'free'      #假

'fred'  eq "fred"    #真

'fred'  eq  "Fred"  #假

'  '  gt  ' '  #真

字符串连接(.)、字符/字符串重复(x)

(1)连接( “.“),例如:$a=‘a'.'b';  =>‘ab'

在print时可以直接写print $a$b=>print $a.$b; 但是这两者的原理是不一样的

(2)重复( “x” ),注意:前后有空格(目的:为了和变量名分开),例如:‘a'  x  5=‘aaaaa',若重复次数<1,则返回空串

例如:"5" x 4,即为:"5555"

例如:"love" x (4+1),即为:"lovelovelovelovelove"

例如:"4.8" x 4,即为:"4.84.84.84.8"

例如:6.1 x 3,即为:"6.16.16.1"

即:左边是一个字符串,右边是该字符串出现的次数

逻辑运算符(&&(and)(与)、||(or)(或)、!(not)(非)、xor(异或)

(1)先算左边的值,后算右边的值

(2)&&和and的优先级不同,但除非特殊情况,很难有区别

位操作运算符

&(按位与)、 |(按位或)、 ~(按位非)、 ^(按位异或)、 <<(左移)、>>(右移)

(1)操作数为二进制整数,如果是小数则截取为整数

(2)<<左移,移开后空位补0,值为原数值的2*N倍(例如:z<<4,则z=z*(2的4次方))

(3)>>右移,首位补0,值为原值一半(并取整)(例如:z>>4,则z=z/(2的的次方))

赋值运算符

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

(1)$a+=1=>$a=$a+1

(2)可以连等$a=$b=3;=>$a=3;$b=3;

(3)混用 ($a=$b)+=3;=>$a=$b;$a=$a+3;(不建议使用)

自增(++)、自减(--)

(1)不要在变量两边都使用此种操作符:++$var--

(2)不要在变量自增/减后在同一表达式中再次使用:$var2 = $var1 + ++$var1;

(3)可用于字符串的自增,当z、Z、9时进位。$a=‘caz'; $a++; ==> $a=‘cba';

(4)不能用于字符串的自减,当$a--时,按数字运算,字符先转化为0再自减

(5)如果字符串含有非字母数字符号,或数字位于字母中时,自增也先化为0再自增

例如:$a=‘ab*c'; $a++;  ==> $a=1;

例如:$a=‘ab5c'; $a++;  ==> $a=1;

(6)预增$b=++$a,$a先自增再赋值,后增$b=$a++;$a先赋值再自增;反之,同理

例如:$a=1; $b=++$a; =>$a=2,$b=2;

例如:$a=1; $b=$a++; =>$a=2,$b=1;

(7)只能用于单一变量,不能对运算后的变量进行。例如:($a+$b)++

逗号(相当于:将两条语句写在一行)

适用范围: 只有当两个语句关联紧密时才使用

例如:$a+=1,$b=$a;  => $a+=1; $b=$a;

例如:$a="ab5c", print $a."\n";

条件运算符

条件? 真:假

(1)三个操作数:先对条件表达式运算,为真时执行:的左边的运算,为假时执行:的右边的运算

例如:$result = $var == 0 ? 14 : 7;

(2)用于简单的条件

(3)条件表达式用在=的左边

例如:$condvar == 43 ? $var1 : $var2 = 14;

例如:$condvar == 43 ? $var1 = 14 : $var2 = 14;

三、操作符优先级别( precedence--优先级)

当一个表达式中出现几种不同的运算符,哪个先计算,哪个后计算

例如:$condvar == 43 ? $var1 : $var2 = 14;(先算条件,后算赋值)

例如:$x = $a == $b;(先算关系,后算赋值)

例如:$x == 0 || $y / $x > 5;(先算除,接着算大于、接着算等于,最后算关系或)

例如:$result = 11 * 2 + 6 ** 2 << 2;(先算幂,再算乘,接着算加,再接着算左移,最后算赋值)

(1)一般的优先级如下:自增自减最高,单操作数高于多操作数,数字运算 > 比较运算(数字比较与字符串比较) > 位运算 > 赋值运算 > 逻辑运算

(2)数字运算:幂 > */>+-

(3)比较运算: <(小于)、>(大于)高于(== 与!=)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 2009 有用的和有意思的循环 让我们来看一个基本的例子. 这是一个最简单清晰的语法的例子.在这并没有使用括号来包...
    焉知非鱼阅读 525评论 0 0
  • 标题: Rakudo and NQP Internals子标题: The guts tormented imple...
    焉知非鱼阅读 1,313评论 1 3
  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,252评论 1 27
  • 灯光 灯光 唤醒床角的黑暗 晚冬未归的飞蛾哦 请不要向往 那不是天堂 只是我想念你 只是夜来寒风起 只是稠雨尽天明...
    半余阅读 409评论 0 0
  • 北京的夜晚,清风轻起,歌声四溢。快乐的人们健步穿行在路灯下的夜色里。沿路有几处歌声相与,嘹亮悦耳!好羡慕天天生活在...
    蕙妍阅读 200评论 0 0