perl入门--语法和结构(1)

perl入门:
windows下perl的执行:
建立perl文件 a.pl
cmd命令下perl a.pl
1.perl语法和结构
perl语句必须由一个分号结尾。
1)打印输出
注释由#开头。
print+由逗号隔开的字符串或者数字
printf类似c语言中的printf(),归整输出内容格式。
ex:
#filename:a.pl
#author:wjy
#date:20110612
print "hello,world/n";
print "hello,"," world/n";
print ("Hello world/n");
printf "Hello world/n";
printf("My name is %s/n","wjy");
2)数据类型:
标量
数组
关联数组(散列Hash)

变量以特殊字符开头,跟任意数目字母,下划线。
特殊字符由变量类型和语境决定。
变量大小写敏感。

标量:
标量只能保存单个值,单个字符串或单个数字。
以" $ "开头。
ex:
$first_name = "wu";
$last_name = "jiaying";
print "Hello ", $first_name, $last_name
数组:
有序排量的标量。
各个元素从0开始索引。
变量以" @ " 符号开头。
常用内建函数:
pop移除最后一个元素并返回。
push数组尾部添加新元素。
shift移除第一个元素并返回。
unshift数组开头添加新元素。
splice数组指定位置添加或移除元素。
sort数组元素进行排序。
ex:
#pop
print "$names[2]/n";
$names2=pop@names;
print "$names2/n";
print "@names/n";
#push
push (@names,"heihei");
print "@names/n";
#shift
$first=shift(@names);
print "$first/n";
print "@names/n";
#unshift
unshift (@names,"sun");
print "@names/n";
#splice
print "@name/n";
splice (@names,1,2);
print "splice @names/n";
#第一个参数为需要处理的数组,第二个参数为需要删除的元素的数组索引值,第三个参数为需要删除的从索引值开始的第几个元

splice有四种用法,分别是:

1.splice ARRAY,OFFSET,LENGTH,LIST

2.splice ARRAY,OFFSET,LENGTH

3.splice ARRAY,OFFSET

4.splice ARRAY
说明:移除在ARRAY中由OFFSET和LENGTH指定的元素,
同时让LIST中的元素代替移除的元素。
在列表上下文,函数返回溢出后的数组元素。
在标量上下文,返回溢出的最后一个元素,如果无元素移除返回UNDEF。

注意:如果OFFSET为负数, 则以数组的尾部为起始点。
如果省略LENGTH(属于第三种情况),则移除从OFFSET到尾部的元素。
如果LENGTH为负数,则除数组尾部LENGTH个元素外,移除从OFFSET到尾部的所有元素。
如果OFFSET和LENGTH都为空,去移除所有元素。如果 OFFSET越界,PERL会提示警告并在数组尾部中插入LIST或空。

对数组元素进行排序——使用sort函数

程序:

my @line=qw /12 34 9 12 44 3 11 67 23 1 4 1 7 3 0/;
print "The sorted number is : ";
print join(' ',sort{ $a <=> $b }@line);
print "/n";
print join(' ',sort@line);#等同于 print join(' ', sort { $a cmp $b } @languages), "/n";

结果:
The sorted number is : 0 1 1 3 3 4 7 9 11 12 12 23 34 44 67
通过改变$a与$b的位置可以降序排序,若将<=>换为cmp,则可以进行以ASCII进行排序。

散列:
关联数组
一组未经排序的键/值对
通过字符串进行索引
散列变量以" % " 开头.
%employee = (
"Name" => "wujiaying",
"Phone" => "123456",
"Position" => "CEO"
);
#Name为键,wujiaying为值
print $employee{"Name"},"/n";
print $employee{"Phone"} ;
常用内建函数:
keys 检索散列数组中的所有键
values检索散列中的所有值
each检索散列中的某个键/值
delete删除某个键/值对
exists检查散列某个key是否存在
ex:

%employee = (
"Name" => "wujiaying",
"Phone" => "123456",
"Position" => "CEO"
);
#Name为键,wujiaying为值
print $employee{"Name"},"/n";
print $employee{"Phone"},"/n" ;

print keys%employee,"/n";
print values%employee,"/n";

while(($key, $value) = each %hash)
{
print "$key => $value/n";
}

while(($key, $value) = each %employee)
{
print "$key => $value/n";
}

if(exists $employee{'Name'})
{
print "true";
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值