在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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中打印整个数组,数组之间带空格: print("@array\n") 数组之间不带空格: print(@array, "\n") 数组排序和取反: print sort @test print reverse @test |
请发表评论