在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
数学函数abs 绝对值的获取 $ret = abs $num; #abs(-3)的结果是3 sqrt 平方根获取函数 $ret = sqrt $num; #sqrt(4) 的结果是2 int 整数值提取函数 $ret = int $num; int(1.5)值是1,int(-1.5)值是-1 ceil(POSIX)返回不小于 x 的下一个整数,x 如果有小数部分则进一位。 use POSIX 'ceil'; $ret = ceil $num; floor(POSIX) 输出最小的整数对于给定的实数 use POSIX 'floor'; my $num = 45.4; my $floor = floor($num); #结果是45 rand 随机数的产生 返回大于0小于给定的数。 int(rand(10)); # 0 到 9 之间的整数 looks_like_number(Scalar::Util) 如果表达式是number 返回true use Scalar::Util 'looks_like_number'; $ret = looks_like_number $num; 字符串操作join 把字符片段合成一个字符串 $ret = join(',', @array);
length 字符串的长度 $ret = length $str;
substr($string,$initial_position,$length); 三个参数:一个字符串,一个从零起点算的起始位置以及字符串的长度 如果想要一直取到字符结尾,可以忽略第三个参数(子串长度)就行了。 起始位置可以为负值,表示从字符串结尾开始倒数(-1代表最后一个字符) $ret = substr($str, 2, 4); 替换的模式 substr($str, 0, 2, $replace);
index搜索字符串在主字符串中的相对位置 返回的字符位置从零开始算起的。如果无法找到返回-1. 可以加上可选的第三个参数,来指定开始搜索开始的地方。 $ret = index($str, $search, $pos);
rindex 搜索子串出现的最后的位置。 $ret = rindex($str, $search);
split 根据分隔符拆开一个字符串,第一个参数是正则表达式 @ret = split(/,/, $str);
reverse 在列表上下文,返回一个反序的列表,在标量上下文返回字符的逆序。 print join(", ", reverse "world", "Hello"); # Hello, world print scalar reverse "dlrow ,", "olleH"; # Hello, world
uc 返回字符串的大写 $ret = uc $str;
ucfirst 返回首字母大写的字符串 $ret = ucfirst $str; lc 返回字符串的小写 $ret = lc $str;
lcfirst 返回首字母小写的字符串 $ret = lcfirst $str;
sprintf 指定格式的输出 $ret = sprintf("%08d", $num); #前面前导0补位 ret = sprintf("%.2f", $num); #小数点后2位 %c 数値をASCIIコードに対応する文字に変換 %s 引数を文字列として解釈 %d 引数を符号付整数として解釈 %u 引数を符号なし整数として解釈 %o 正数を8進文字列に変換 %x 正数を16進文字列に変換(小文字表記) %X 正数を16進文字列に変換(大文字表記) %b 正数を2進文字列に変換 %f 引数を浮動少数点として解釈 %e 引数を浮動小数点として解釈(指数表記(小文字)でフォーマット) %E 引数を浮動小数点として解釈(指数表記(大文字)でフォーマット) %g 引数を浮動小数点として解釈(指数表記(小文字)でフォーマット。末尾の0は削除される) %G 引数を浮動少数点として解釈(指数表記(大文字)でフォーマット。末尾の0は削除される) %p 引数に与えられた変数のメモリ上のアドレスに変換
chomp去除末尾换行符 chomp $str
q 单引号圈引 q/aaa'bbb/ # 相当于 'aaa\'bbb'
qq双引号圈引 qq/aaa"bbb/ #相当于 "aaa\"bbb"
quotemeta 正规表达式中使用特殊字符的反义 $ret = quotemeta $str
chr 返回asicii码对应的字符 $ret = chr $num;
数组操作数组长度的获取 $ret = @array;
数组最后索引号的获取 $ret = $#array;
shift 移除数组的第一个元素并返回 $ret = shift @array;
unshift 放入一个或多个元素到数组的开始 unshift(@array, @items);
pop 数组中移除最后一个元素,并返回 $ret = pop @array;
push 添加一个或多个元素到数组的尾端 push(@array, @items);
splice 对数组元素的操作 A.数组元素的取出 @ret = splice(@array, $pos, $size) B.数组元素的替换 splice(@array, $pos, $size, @items);
数组的切片 @ret= @array[0, 1, 3]; # 数组的0,1,3位置的元素列表
grep 符合条件元素的获取 @ret = grep { 条件 } @array; 条件大于3的列表 @ret = grep { $_ > 3 } @array;
map 所有数组元素的处理 @ret = map { 要素の操作 } @array; 所有元素乘以2的集合 @ret = map { $_ * 2 } @array;
max(List::Util) 数组中最大值的获取 use List::Util 'max'; $ret = max @array;
min(List::Util)数组中最小值的获取 use List::Util 'min'; $ret = min @array;
sum(List::Util)数组中元素的求和 use List::Util 'sum'; $ret = sum @array;
sort 数组元素的排序 [A]数值的顺序比较 @ret = sort { $a <=> $b } @array; [B]数值降序的比较 @ret = sort { $b <=> $a } @array; [C]asci码顺序的比较 @ret = sort { $a cmp $b } @array; [D]ascii码的降序排列 @ret = sort { $b cmp $a } @array;
shuffle(List::Util)数组的随机排序 use List::Util 'shuffle'; @ret = shuffle @array;
reverse 数组元素的倒序 ret = reverse @array;
qw文字列的圈引(加上“和逗号) @array = qw/cat dob mouse/;
Hash 的操作
keys 键值的获取操作 @ret = keys %hash;
values值得获取操作 @ret = values %hash;
each 键-值对应的一一获取 ($key, $value) = each %hash; 通过循环进行获取 while (my ($key, $value) = each %hash) { ... }
exists 确定键值是否存在 $ret = exists($hash{$key});
delete键值的删除 delete $hash{$key};
reverse 键值对的翻转 %ret = reverse %hash;
文件的操作open 文件的打开函数 open(my $fh, "<", $file) or die "Cannot open $file: $!"; 文件打开失败注意错误的处理
[A]经常的操作 读取 < 写入> 追加 >>
close 文件句柄的关闭 close $fh;
<> 钻石操作符 文件一行的读入 $line = <$fh>; 通常与循环一起使用 while (my $line = <$fh>) { ... }
[A]所有行的读入 列表上下文一次性所有读取所有文件内容 @lines = <$fh>;
opendir 目录的打开函数 opendir(my $dh, $dir) or die "Cannot open $dir: $!"; 注意失败进行相应的处理
closedir 目录句柄的关闭 closedir $dh;
readdir 目录文件名 目录名的一一读取 while (my $file = readdir $dh) { ... }
文件目录的操作unlink 文件删除 unlink $file or die "Cannot remove $file: $!";
copy(File::Copy) 文件的拷贝 use File::Copy 'copy'; copy($file_from, $file_to) or die "Cannot copy $file_from to $file_to: $!";
move(File::Copy) 文件的移动 use File::Copy 'copy'; move($file_from, $file_to) or die "Cannot move $file_from to $file_to: $!";
chdir 当前目录的变更 chdir $dir or die "Cannot change directory $dir: $!";
mkdir 目录的创建 mkdir $dir or die "Cannot create directory $dir: $!";
rmdir 目录的删除 rmdir $dir or die "Cannot remove directory $dir: $!";
mkpath(File::Path) 多层目录的创建 use File::Path 'mkpath'; eval { mkpath $dir }; if ($@) { die "Cannot create $dir: $@"; }
rmtree(File::Path) 包含文件目录的删除 use File::Path 'rmtree'; rmtree($dir, {error => \my $errors}); for my $diag (@$errors) { my ($file, $message) = each %$diag; warn "problem unlinking $file: $message\n"; }
getcwd(Cwd) 当前目录的获得 use Cwd 'getcwd'; $ret = getcwd;
chmod 文件权限的变更 chmod($permission, $file) or die "Cannot change permission $file: $!";
basename(File::Basename) 文件名的获取 use File::Basename 'basename'; $ret = basename $file; # /a/b/c.txt 结果是 c.txt
dirname(File::Basename) 文件包中目录名的获取 use File::Basename 'dirname'; $ret = dirname $file; # /a/b/c.txt 的结果是 /a/b
文件运算符 确认文件和目录是否存在 #文件确认是否存在 $ ret = - f $file; #目录的存在确认 $ ret = - d $dir;
通常和条件语句一起使用 if (-f $file) { ... }
[A]常用的文件运算符一览 -f 文件是否存在 -d 目录是否存在 -r 是否可读 -w 是否可写 -x 是否可执行 -M 最后更新的天数 -A 最后访问天数 -s 文件尺寸的获取
时间time 1970年1月1日到现在的秒数 $ret = time;
localtime 日期和时间的获取 ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime; $year += 1900; $mon += 1;
sleep 休眠的秒数 sleep $sec;
usleep(Time::HiRes) 休眠微秒 usleep $microsec;
其他函数defined 确定值是否定义 $ret = defined($val);
kill函数的使用 kill($signal_number, $child_process_id); |
请发表评论