perl笔记(一)

1.perl擅长文字处理

2.指定解释器

#!/usr/bin/perl

3.标量数据

数字

浮点直接量: 1.2,3.0,1.2E-7
整数直接量: 0,1,10,12_345_678
非十进制整数直接量:037,0xff,0b1111

字符串:

'helloworld'
"helloworld"
点"."操作符用于连接字符串
"hello" x 3  :重复字符串3遍

数字和字符串之间的自动转换:

+ 数值计算
. 字符串连接

开启警告功能(早期版本不能使用)

use warning; 或
perl -w script.pl;
use strict;#指示编译器,严格检查

标量变量

$variable

比较操作符: 数字   字符串
相等         ==      eq
不等         !=      ne
小于         <       lt
大于         >       gt
小于或等于    <=      le
大于或等于    >=      ge

4.if语句

if(){}
else{}
数字0,空字符串""为假,其他情况为真

5.输入

$line=<STDIN>
chomp($line);#去除字符串末尾的换行符
defined($line);#判断字符串是否为undef,无法判断空字符串
chomp($line = <STDIN>);#读取下一行,文件结尾返回undef

while(defined($line = <STDIN>)){
    print "$line";
}

while(<STDIN>){
    print "$_";
}
#两种方法效果一样

6.列表和数组(list,array)

列表是数据
数组是变量
列表的值不一定放在数组里;
每个数组变量一定包含一个列表

列表和数组的每个元素都是单独的标量变量,都是有序的,从0开始
访问数组元素:

$arr[0]="boy 1";
$arr[1]="boy 2";
$arr[2]="boy 3";

$#arr 表示数组个数

(1,2,3);
("boy1","boy2","boy3");
(1..100);#1-100整数构成的列表,.. 为范围操作符
qw简写(quoted word):加上引号的单词
qw(fred barney betty wilma dino);

列表赋值

($a,$b,$c)=("boy1","boy2","boy3");
($a,$b)=($b,$a);#交换变量的值
@:all的意思,引用整个数组
@copy=@src;#复制整个数组到另一个数组
$a=pop(@arr);#数组末尾出栈一个元素
pop(@arr);#丢弃末尾的一个元素
push(@arr,1);#末尾添加元素1

$a=shift(@array);#数组开头移出一个元素
unshift(@array,5);#数组开头加入一个元素

@remove = splice @arr, 1, 3;移除arr中1开头的3个元素

@arr=reserve(@arr);#翻转数组
@arr=sort(@arr);#数组排序

foreach my $var (@arr){}#遍历数组

$_ ;默认变量
$n=@people;#得到people的元素个数

7.子程序

定义全局的,可定义在任何位置
默认返回最后一次的运算结果
sub func1
{
    $_[0];#第一个参数
    $_[1];#第二个参数
    @_;#子程序的私有变量,包含整个参数列表
}

8.文件

文件句柄

open CONF '<',$file;#只读
open CONF '>',$file;#覆盖写,不存在则创建
open CONF '>>',$file;#追加写
die func;#die用于处理致命错误

9.哈希

$some_hash{$some_key}=$some_value;
my %some_hash = (
"a" => "aaa",
"b" => "bbb",
"c" => "ccc",
);

%some_hash;  #访问整个哈希
@ayy=%some_hash;#列表上下文  
my %some_hash = %old_hash;#拷贝  

print my @k = keys %some_hash;#获取所有的key
print my @v = values %some_hash;#获取所有的value
my $count = keys %some_hash;#键值对数量

#遍历哈希
while( my ($key,$value) = each %some_hash)
{print "$key => $value\n"; }

exist $some_hash{$key}  存在返回真
delete $some_hash{$key};#删除键值对
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值