Perl语言中的大部分语句表达式后都紧接一个分号,分隔不同的Perl语句。

perl解释器能一次完成编译和运行这两个动作。 perl通过一对反引号"``"来表示运行外部命令。

也可以通过system命令来执行外部程序,但是``返回命令的输出值。/bin/ls返回文件名到数组

system返回命令执行后的状态(1没问题,0有问题)

需要先行定义的变量

my $var;

@var = ();

%var = ();

标量(scalar)包括数字和字符串两部分。

在perl内部按“双精度浮点数”的格式来存储数字,整型常量也会被转换成等效的浮点数。

perl允许在数字直接量间插入“_”分隔符。而且对于十进制(decimal)之外的数。八进制(octal)以“O”开头。

十六进制(hexadecimal)以“0x”开头。二进制(binary)以“0b”开头。

数字操作符包括:+,-,*,/,%。取模操作先取整再求余。

$fred += 5;         $str .= "";

perl内的字符串长度不受限制,从空字符串到无限长都可以。

如果源码内出现除ASCII之外的其他字符,需要加use utf8;来加入任意一个unicode的支持。

单引号内的字符串,基本不会出现特殊字符,除单引号“ ‘ ”和“ / ”,其他字符都表示他们本身。

双引号内的字符串,可以表示多个特殊字符,而且支持变量内插。

字符串操作符有:字符串连接符“ . ”,字符串重复操作符“ x ”。表示重复的直接量在使用前会取整,直接去掉小数。

5x4.8          #得到“5555”

perl内支持数字与字符串直接的自动转换,根据操作符来判断。字符串中的非数字部分及其之后的数字部分,在转换过程中都会被忽略。

标量变量(variable),以美元符号“$”来表示,为了避免变量名的歧义,可以使用花括号{}来将变量名括起来。

perl中的变量不需要初始化,初始值都是undef。而后可以直接用来赋值或运算。

运算操作符有比较操作符:按数字或字符串来划分,==(eq), !=(ne), <(lt), > (gt), <= (le), >= (ge)。

布尔值:perl内部没有专用的布尔类型。如果数字是“0”,则为假,其他都是真。如果字符串是空,则为假,其他都是真。

’0‘是唯一的为假的非空字符串。

perl中的控制结构:if...else..      while( )  {.....}

print输出结果用双引号“”来表示输出内容。

print "The answer is ", 6*7, ".\n";         #也可以用逗号","隔开,连在一块来输出。

perl获得用户输入<STDIN>一般在末尾会带有换行符。

$line = <STDIN>;

chomp()函数,用于去掉字符串末尾的换行符。

chomp($text = <STDIN>);

defined()函数,用来判断某个字符串是不是空字符串。

perl内部的警告功能。可以在命令行用perl   -w perl_file来表示。或者use   warning。

当perl未被告知使用哪个变量或数值时,使用默认变量$_。

如print没参数时,默认打印$_的值。

数组:存放列表变量,可以用“@”字符加数组名来引用整个数组。数组索引从“0”开始到“$#+数组名”

$rock[$#rock] = 'hard rock';              #对最后一个元素赋值。

列表直接量:用圆括号内用逗号隔开的一串字符表示。或者使用qw () {} !!表示,其中的空白符会被自动忽略。

qw( fred barney betty dino )  #表示4个元素的列表。

或者使用范围操作符 ..   (1..100);   #以“1”为单位而递增。

带双引号的字符串内也可以进行数组内插,同时注意数组的索引值中的变量会按普通的字符串表达式来表示,进而计算索引值。

$y =2;   $x = "this is $fred[$y-1]'s place"   #会直接取$fred[1]这个变量。

在标量上下文和列表上下文,perl的处理方式是不同的。

1)数组的名称在列表上下文,返回元素的列表。在标量上下文,返回数组中的元素个数。     $number = 42+@people;

2)在标量上下文,使用reverse函数。  $backwards= reverse qw/yabba dabba doo/;    #赋值oodabbadabbay。

3)在标量上下文,<STDIN>返回输入数据的下一行。在列表上下文,<STDIN>返回所有剩下的行。

pop/push操作:对数组的最后一个变量进行操作。

shift/unshift:对数组的第一个变量进行操作。shift像左移位,变空。unshift像右移位,增加数据

清空一个数组:对数组赋值空列表,不能直接赋值undef,因为undef是一个标量值。

splice操作:对数组随意的修改。第一个参数表示要修改的数组。第二个参数表示操作的元素的起始索引。第三个参数表示操作的长度。

第四个参数表示要替换的列表。

@array= qw( pebbles dino fred barney )

@removed=splice @array,  1, 2, qw(wilma);     #@array=qw( pebbles wilma barney)。

可以使用foreach循环体来遍历列表或数组中的数值,并且在此过程中列表或数组或变量都不会被改变。

foreach $rock (@rocks) {....}

reverse操作符:返回次序相反的列表或数组。

sort操作符:按ASCII码的大小或字符的代码点的大小来对列表或数组进行排序。

each操作符:返回数组中下一操作元素的索引值及数值。

while (my ( $index, $value) = each @rocks)   {...}

Perl的变量及语境(一)的更多相关文章

  1. perl 纯变量(Scalar) 转载

    转载http://blog.chinaunix.net/uid-20639775-id-154591.html Perl有三种变量: 纯变量(Scalar Varible) 数组(Array) 关联数 ...

  2. Perl的变量

    变量 在perl中,普通变量被称为"标量变量"(scalar),标量是指单个值的意思.还有非标量的数据,如数组.列表.hash等.标量变量和这种非标量的关系,类似于英语里面的单数和 ...

  3. 2章 perl标量变量

    标量变量 单单存储一个值得变量   ,单个标量值 $name   为变量  区分大小写 $barney=$barney*2   第一次  取值  等号右边    :第二次  赋值 等号左边 双目操作符 ...

  4. perl 数组变量(Array) 转载

    Perl 变量(2)--数组 原文地址:Perl 变量(2)--数组 作者:飞鸿无痕 二.数组 数组是标量数据的有序列表. 数组可以含任意多个元素.最小的数组可以不含元素,而最大的数组可以占满全部可用 ...

  5. perl静态变量

    state操作符功能类似于C里面的static修饰符,state关键字将局部变量变得持久. state也是词法变量,所以只在定义该变量的词法作用域中有效,举个例子: #!/usr/bin/perl u ...

  6. perl检查变量是否定义

    my $label = defined($pieces[0]) ? $pieces[0] : ""; my @alreadyAddedCol = $node1->{DB}-& ...

  7. perl选项、特殊变量、一些函数参考手册

    perl一行式程序系列文章:Perl一行式 本文用来收集Perl一行式中涉及到的一些选项.特殊变量的说明,可以用来做速查手册. 本文会逐渐更新. 第一次学Perl一行式时,请直接忽略本文内容,并直接从 ...

  8. perl基本语法--转载

    http://www.cnblogs.com/zhtxwd/archive/2012/03/06/2381585.html 本文介绍从变量类型.操作运算符.控制叙述.子程序.I/O和档案处理. Reg ...

  9. C,C++,Lisp,Java,Perl,Python

    (译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来. 巴别塔不建自毁,与其说上帝的分化将 ...

随机推荐

  1. myisam innodb 次级 索引的区别

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  2. Nginx之让用户通过用户名密码认证访问web站点

    有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问. 那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那 ...

  3. 在pycharm中运行nose测试框架

    之前一直在pydev上或命令行上运行nosetests. pycharm上如果运行nosetests,在看了管网后,总结果如下: 全新的pycharm: 填加完成后,打开你要的脚本,运行,即可以以no ...

  4. React 事件处理函数

    触摸事件:onTouchCancel\onTouchEnd\onTouchMove\onTouchStart (只会在移动设备上接受) 键盘事件:onKeyDown\onKeyPress\onKeyU ...

  5. CBV之详解

    一,CBV,基于反射实现根据请求方式不同,执行不同的方法. 1. 开发模式 - 普通开发方式(前后端放在一起写) - 前后端分离 2. 后端开发 为前端提供URL(API/接口的开发) 注:永远返回H ...

  6. 统计Java项目的代码行数

    Java项目谈论行数多少有点无聊,但是有的时候就想看看一个开源的代码的量级,用Shell命令统计再合适不过了 去掉空行和注释: find . -name "*.java" |xar ...

  7. Sublime Text3注册激活和部分配置

    1.  更改hosts文件(参照:sublime text3 破解方法,亲测有效) windows系统的hosts文件在C:\Windows\System32\drivers\etc在hosts文件中 ...

  8. PL/SQL常用表达式及举例(二)

    使用LOOP循环 declare v_i number:=1; begin loop dbms_output.put_line('v_i='||v_i); exit when v_i>=3; v ...

  9. wxWidgets与其他工具库的比较(上)

    本文是在wxWidgets Wiki上面找到的一篇,对比了wxWidgets和其他一些界面工具的特点.看到很多朋友在网上询问这些库各自的特点,我想先把这篇文章翻译出来——毕竟这也算是一篇官方的文章,应 ...

  10. Cow Contest---poj3660

    题目链接:http://poj.org/problem?id=3660 题意:有n头牛,m个关系,a b意思是a能打败b:求能确定排名的有几个: 如果一头牛被x头牛打败,并且可以打败y头牛,如果x+y ...