本篇主要介绍Perl中数字标量和字符串标量的相关基础知识;
首发于本人公众号:pythonic生物人
-
更好的阅读体验请戳:
目录
1 数字
浮点数
整数
数字操作符
2 字符串
单引号(A single-quoted string literal)
双引号(A single-quoted string literal)
字符串操作符
重复操作符
数字与字符串之间的转换
3 标量变量
变量命名规则
标量等号赋值
标量双目赋值符赋值
字符串变量内插
数值标量与字符标量比较操作符
chomp函数
chop函数
substr函数
split函数
1 数字
-
浮点数
3.25e20 3.25乘以25的20次方;
-
整数
1415926 1_415_926,Perl允许整数之间加下划线以便以清楚可识别。
例如,int1.pl
#!/usr/bin/perl
use strict;
use warnings;
my $int1 = 1_415_926;
print "$int1\n";
perl int1.pl
1415926
-
数字操作符
加(+),减(-),乘(),除(/),取模(%),求幂(2*3为2的3次方等于8)
例如,compute.pl
#!/usr/bin/perl
my $compute_result = 10%4;
print "$compute_result\n";
perl compute.pl
2
2 字符串
-
单引号(A single-quoted string literal)
支持转义,引号内的任何字符都是字符本身,例如,\n不是换行符,\t不是tab键
例如,string1.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string1 = 'perl\t\n';
my $string2 = 'perl\\t\\n'; #此时\t \n分别表示tab键和换行符;
print "$string1\n";
print "$string2\n";
perl string1.pl
perl\t\n
perl\t\n
-
双引号(A single-quoted string literal)
\ 此时表示特殊含义
例如,string2.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string1 = "perl\tperl1\n"; #\t表示tab,\n表示换行;
print "$string1\n";
-
字符串操作符
句点操作符
句点操作符(.),连接句点前后的字符串,句点前后的字符不会发生任何修改。
例如,string3.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string1 = "Come";
my $string2 = "on!";
my $string3 = $string1.$string2;
print "$string3\n";
print "$string1"." "."$string2"."\n";#string1 空格 string2
perl string3.pl
Comeon!
Come on!
-
重复操作符
重复操作符(string repetition operator),将字符拷贝多次,当次数为非整数时,向下取整(若4.8则取5)
例如,string4.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string4 = "Comeon!\t"x3;
my $string5 = "Comeon!\t"x3.5;
print "$string4\n";
print "$string5\n";
perl string4.pl
perl string4.pl
Comeon! Comeon! Comeon!
Comeon! Comeon! Comeon!
-
数字与字符串之间的转换
Perl会根据操作符自动完成转换,使用者只需正确使用操作符。
例如,string5.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string6 = "12fred34" * "3";
my $string7 = "Z" . 5 * 7;
print "$string6\n";
print "$string7\n";
perl string5.pl
Argument "12fred34" isn't numeric in multiplication (*) at string6.pl line 5. #Perl会发出警告
36
Z35
3 标量变量
存储一个值的变量,变量名称在整个程序中保持不变,但是变量值可以随着程序执行发生改变。
-
变量命名规则
以$符号(魔符sigil)开头,后接变量标识符;
变量标识符由字母、数字及下划线构成,但是变量标识符的首字符不能为数字;
变量名称区分大小写,例如,scalar不同;
-
标量等号赋值
$fred = 17; #将17使用赋值符等号赋值给变量$fred
-
标量双目赋值符赋值
例如,scalar + 4; 等价于$scalar += 4;
-
字符串变量内插
在字符串中引用另外一个变量。
例如,string6.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string6 = "Lady cai";
my $string7 = "I like $string6 !";
print "$string7\n";
perl string6.pl
I like Lady cai !
-
数值标量与字符标量比较操作符
数值标量 字符标量 含义
== eq 等于
!= ne 不等与
< lt 小于
> gt 大于
<= le 小于等于
>= ge 大于等于
-
chomp函数
去掉字符串末尾换行符,chomp()函数的返回值是
例如,chomp1.pl
#!/usr/bin/perl
use strict;
use warnings;
my $text = "Start from here\n";
print "$text\n";#此处会输出两个换行符
my $text1 = chomp ($text);# 返回值为去掉的字符个数,去掉1个\n,所以输出为1
print "$text\n";#此处只输出一个换行符
print "$text1\n";
perl chomp1.pl
Start from here
Start from here
1
chop函数
去掉末尾字符
例如,chop.pl
#!/usr/bin/perl
use strict;
use warnings;
my $scalar1="Perl";
my $chop1=chop $scalar1;#返回去掉的值,修改原字符
print "$scalar1\n";
print "$chop1\n";
perl chop.pl
Per
l
substr函数
取出字符一部分,语法如下:
substr EXPR,OFFSET,LENGTH,REPLACEMENT
EXPR,待处理字符串
OFFSET,处理起始位置为0时,从第一个字符开始,为负时从右端开始
LENGTH,如果不提供值,从起始位置至末尾
REPLACEMENT,替换取出的字符
例如,substr1.pl
#!/usr/bin/perl
use strict;
use warnings;
my $string="I love LadyCai";
my $substr1=substr $string,1;
my $substr2=substr $string,1,3;
my $substr3=substr $string,1,3,"XX";
print "$substr1\n";
print "$substr2\n";
print "$substr3\n";
print "$string\n";#原字符已改变
perl substr1.pl
love LadyCai
lo
lo
split函数
将字符串分割为一个数组。
语法:split /PATTERN/,EXPR,LIMIT
- If only PATTERN is given, EXPR defaults to $_ ;
- PATTERN,分隔符,可以是正则,可以同时指定多个分隔符,defaults是
" ",
省略分隔符所有连续空白都会被当作单个分隔符; - LIMIT,表示最多分割为几个元素,defaults为1,若则表示尽可能多地分隔。
#limit,限制分割次数
print join(':', split(//, 'abc', 1)), "\n"; #abc
print join(':', split(//, 'abc', 2)), "\n"; #a:bc
print join(':', split(//, 'abc', 3)), "\n"; #a:b:c
print join(':', split(//, 'abc', 4)), "\n"; #a:b:c
4 参考资料
![](https://img.haomeiwen.com/i15446909/9a42795b33432ff0.jpg)
网友评论