2.数据类型&运算符

1.数据类型

1.1标量

#!/usr/bin/per -w
use strict;    #强制类型声明,可声明为my,our等

#标量以$标识,可以是整形、浮点、字符串
my $int1 = 1;
my $real1 = 1.1e2;
my $octal = 017;    #0开头是八进制
my $hexa = 0x1ff;    #0x开头是十六进制
my $str1 = "abc";
my $str2 = "ab
            c";    #支持多行
my ($var1,$var2) = (1,"a");    #支持几个变量一起声明

print "\$int1=$int1\n";        #$需要转义,否则直接输出$int1的值
printf "\$str1=%s\n",$str1;    #格式化输出,区分整形、浮点、字符串

my $var = $int1.$str1;         #标量间用"."可以拼接字符
print $var."\n";               #"1abc"

=head1
特殊字符串:__FILE__是当前脚本文件名,__LINE__是当前行号
=cut

1.2数组

#!/usr/bin/perl -w

#数组以@标识,有序的存放标量、数组,也可以存放哈希
my ($a,@array1) = (2,(3,"a"));    #@array1=(3,"a")
my ($a,@array2,@array3) = (2,(3,"a"),(4,"b"));    #@array1=(3,"a",4,"b"),@array3=();
my @array4 = (1,"a",$a,@array1);

#qw返回字符串列表,以空格分隔,也可用qw/.../标识
my @array4 = qw(1 2 a);

#支持字符或数字的“..”范围声明
my @array5 = (1..10);
my @array6 = (a..z);

#数组索引($[)默认从0开始,以$array[index]方式取值
print $array1[0],"\n";    #3,","或"."在print时可连接字符
print $array1[0]."\n";
print $array[-1];    #支持倒序索引
print $array[0..2,4];    #多个索引用“,”隔开,连续索引可用".."

#数组函数:
#1.添加、删除元素
push @array1, $var1;    #push $var1 into the end of @array1;
push @array2,@array1;    #push @array1 into the end of @array2;
pop @array2;            #弹出末尾一个元素
shift @array2;            #弹出数组第一个值,并返回它。数组的索引值也依次减一
unshift @array2,$var2;    #push $var2 into the front of @array2
unshift @array1,@array2;    #push @array2 into the front of @array1;

#替换、删除元素:splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
splice @array,0;    #LENGTH没有则选到末尾,LIST没有则进行删除
splice @array,0,1;    #从索引为0的元素开始,选择1个元素,替换为空,即删除
splice @array,0,2,@arrya2;    #用@array2替换数组前两个元素,@array2大小不限

#字符串分割成数组: split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
my $var = "a_b_c";
my @array = split "_",$var;
my @array2 = split "_",$var,2;    #限制返回数组的元素个数为2,则返回("a","b_c")
#连接数组成字符串: join EXPR, LIST
my var2 = join "_",@array;    #$var2="a_b_c"

#排序:sort @array;
#$[: 数组第一个索引,默认为0;
#$_: 遍历数组时的当前元素;
#数组合并:my @array3 = (@array1,@array2);

1.3哈希

#!/usr/bin/perl -w

#哈希以%标识,是key/value键值对无序组合
my %hash1 = ("a"=>1,"b"=>"2");    #推荐key=>value形式,key,value形式也可,但不直观;注意不是{}
print $hash1{"a"}."\n";    #$hash{key}形式访问value

my @keys = keys %hash1;    #key方法返回哈希的key集合,注意不是key;不保序
my @values values %hash1;    #value方法返回哈希的value集合,注意不是value;不保序

#添加删除元素
my $hash1{"c"} = 3;    #直接赋值
delete $hash{"c"};

#检测key是否存在:exists
if(exists $hash1{"c"}){print "exist\n";}

 1.4上下文

赋值时,perl根据=左边的变量类型决定返回值

#!/usr/bin/perl -w

my $var;
my @array = (1,2,3);

$var = @array;    #3,标量上下文,数组返回元素个数

 

2.1运算符

赋值运算符支持自操作:+=,-=,*=,/=,%=, **=,++,--

引号运算符:q{},qq{},qx{}
q{abc}:'ab',即添加单引号
qq{abc}:"abc",即添加双引号
qx{time}:`time`,即添加反引号,主要用于输出系统命令,``不直接输出到屏幕,system()直接输出到屏幕

关系运算符:

1.数字关系运算符:>,<,==等,<=>:左边<右边,返回-1,=返回0,>返回1,如:my $var1 = 1<=>2;    #-1;

2.字符关系运算符:eq等于,ne不等于,<,>等

其他:
.连接字符串
..范围运算符
x字符串重复,如my $var = "a" x 2;则$var = "aa"

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值