perl总结(1)

       Perl作为一种脚本语言,用于自然语言处理和文本相关的问题上,非常简单直接。最近用的也比较多,在这里做一个小总结吧。

       首先介绍一下数据类型(变量类型),perl中有三种类型的变量,用不同的前缀来区分,如下所示。Perl中的变量是不需声明也可直接使用的,但是声明变量有助于查错,是比较好的编程习惯,还是建议大家在使用之前先声明一下吧。

perl总结(1)_第1张图片

1、Scalar(标量)

       标量是Perl中最简单最基础的一种数据类型,可以是一个字符、字符串或者数字(整数或浮点数)。变量变量以$开头。如下:

              my $x = “dollar”;

              my $y = 12345;

              my $z = 1.2345;

       数字和串等之间的转换如下所示:

perl总结(1)_第2张图片

       数字和数字之间的比较和C语言一致,为"=="。

       定义串常用到的符号:

perl总结(1)_第3张图片

       字符串中会用到的函数:

perl总结(1)_第4张图片

2、数组(Array)

       数组(array)内存放的变量为列表,列表可以看做一系列标量的一个有序集合,和C里面的数组不同的是,这里的数组不要求内部所有变量是同一种类型的,也就是说,数组中可以同时存储字符串和数值。数组变量以@开头,如下所示:

              my @arr = (22, “why”, 12.34);

              my @arr = (length(“why”), “hello”. “name”;

              my @arr = ($var1.23*55);

              my $var = $arr[5];  # $var will get undef

              $arr[5] = 8;      # @arr changes to (1,2,3,undef,undef,8)

       数组中会用到的函数:

perl总结(1)_第5张图片

3、Hash(哈稀)和散列

       Perl里面的哈稀是值对,一个键对应一个值,其中键必须唯一,可以通过键来映射到值。如下所示:

              my %hash = ("red" => "apple", 2.5 => 1, "yellow" => "banana", 3.14 => "pi");

       符号"=>"很好的表示了哈稀结构中键与值的映射关系,左侧为键,右侧为值。

       哈希中会用到的函数:

perl总结(1)_第6张图片

4、引用(reference)

       提完前面3中类型的变量,我觉得不得不接着提一下引用。Perl里的引用非常强大,你可以创建一个引用让它指向一个数组。Perl 中有两种引用:硬引用和符号引用。因为符号引用被use stric t   禁止了,所以一般的引用都指的硬引用。

perl总结(1)_第7张图片

perl总结(1)_第8张图片

二、基本操作符

1.赋值运算符

       即最常见的“=”操作符,它把右边的表达式的值赋给它左边的变量,例如:

              $str = "string";

2.算术操作符

       见下表:

perl总结(1)_第9张图片

3.字符操作符

       Perl 的字符串操作符包括连接操作符” .”和复制操作符”x”:

              $example = ‘Hello’ . ’World’ ;

              $example = ”\t” x 8; 

              @array = ( 1, 2, 3, 4, 5 ) x 2;  # (1, 2, 3, 4, 5, 1, 2, 3, 4, 5) ; 

4.比较操作符

perl总结(1)_第10张图片

5.逻辑操作符

perl总结(1)_第11张图片

6.组合赋值操作符

perl总结(1)_第12张图片

三、标量上下文和列表上下文

       在perl里面上下文是一个非常重要的概念,在写perl脚本的时候我们无时无刻不在使用它。

       在Perl中,所谓上下文,是指同一个表达式,出现在不同的地方会有不同的结果和意义。体现最明显的是标量和列表两种变量,所以有标量上下文和列表上下文。标量上下文中的表达式被期望返回一个标量值,而列表上下文中的表达式则被期望返回一个列表。例如:

              5 * guess

              shift guess

              keys guess

       上述的例子中,guess出现在三个地方:乘号操作符期望它是一个数值,因此第一个guess处于标量上下文,更准确点是数值上下文;shift操作符期望它是一个列表,因此第二个guess就处于列表上下文;最后keys函数期望something是一个哈稀结构,所以最后一个guess就处于散列上下文。

       在标量上下文中使用产生列表的表达式大多数情况下会返回列表元素的个数,在列表上下文中使用产生标量的表达式,它会自动产生一个仅含此标量值的列表,即使这个标量值为undef。

你可能感兴趣的:(编程语言,总结,perl)