Perl内置常用函数
发布时间:2020-12-16 00:08:20 所属栏目:大数据 来源:网络整理
导读:1、join函数 #!/usr/bin/perl @array = (1,2,3,4,5,6); print join(",",@array); 2、vec函数 #!/usr/bin/perl # 16进制数字转为二进制数字 $hexdigit = 0xA; vec($data,8) = $hexdigit; print vec($data,1); print vec($data,1,1); 3、abs函数 ??? 绝对值 #!
1、join函数 #!/usr/bin/perl @array = (1,2,3,4,5,6); print join(",",@array); 2、vec函数 #!/usr/bin/perl # 16进制数字转为二进制数字 $hexdigit = 0xA; vec($data,8) = $hexdigit; print vec($data,1); print vec($data,1,1); 3、abs函数 ??? 绝对值 #!/usr/bin/perl $s = -5; print "The absolute value of $s = ",abs $s; 4、atan2函数 ??????? 反正切 #!/usr/bin/perl print (4 * atan2 1,1); 5、Math::BigInt和Math::BigFLoat函数 ??????? 大数 ??????? 扩展算数的精确度 #!/usr/bin/perl use Math::BigInt; $bi = Math::BigInt->new('22222222222222222222'); print $bi * $bi; 6、chr函数 ??????? 字符码中的字符 #!/usr/bin/perl foreach (65 .. 68) { ??? print chr()," "; } 7、Math::Complex函数 ??????? 复数 #!/usr/bin/perl use Math::Complex; $c1 = Math::Complex->new(-2,3); $c2 = Math::Complex->new(4,5); $c3 = $c1 * $c2; print "($c1) X ($c2) = $c3n"; 8、cos函数 ??????? 余弦 #!/usr/bin/perl # 45度转化为弧度后再计算余弦值 $angle = 45; $conversion = 3.14159265358979 / 180; $radians = $angle * $conversion; print "The cosine of $angle degrees = ",cos $radians; 9、each函数 ??????? hash表键/值 对 #!/usr/bin/perl # each 返回键值对表 $hash{sandwich} = grilled; $hash{drink} = 'root beer'; while (($key,$value) = each(%hash)) { ??? print "$key => $valuen"; } 10、eval函数 ??????? 运行期间计算Perl代码 #!/usr/bin/perl eval {print "Hello "; print "there.";}; #!/usr/bin/perl #??? eval 将报告错误 sub try(&) { ??? my $code = shift; ??? eval {&$code}; ??? if($@) {print "eval says: $@";} }; try{ ??? $operand1 = 1; ??? $operand2 = 0; ??? $result = $operand1 /$operand2; }; 11、exists函数 ??????? 检查hash表键,仅指出hash表是否存在某个键 #!/usr/bin/perl $hash{ID} = 12334; $hash{Name} = Bertie; $hash{Division} = Sales; if (exists($hash{Phone})) { ??? print "Key is in the hash."; } else { ??? print "Key is not in the hash."; } ??????? 要真正确定是否定义了哈希表中的某个元素,用defind #!/usr/bin/perl $hash{ID} = 12334; $hash{Name} = Bertie; $hash{Division} = Sales; if (defined($hash{Phone})) { ??? print "Element is defined."; } else { ??? print "Element is not defined."; } 12、exp函数 ???????? 计算e的幂 #!/usr/bin/perl # 让用户输入幂次数 print "Welome to the Exponentiator!n"; print "Enter a number: "; while ($s = <>) { ??? print "n"; ??? print " $s"; ??? print "e = " . exp($s) . "n"; ??? print "Enter a number: "; } 13、grep函数 ??????? 查找匹配函数 #!/usr/bin/perl # 删除由4个字母构成的单词 print join(" ",(grep{!/^w{4}$/} (qw(Here are some four letter words.)))); 14、hex函数 ??????? 16进制转换 #!/usr/bin/perl print hex("10") . "n"; print hex("0x10") . "n"; print hex("ab") . "n"; print hex("Ab") . "n"; 15、index函数 ? ??????? 子串的位置 #!/usr/bin/perl $text = "Here's the text!"; print index $text,'text' 16、int函数 ??????? 截断整数 #!/usr/bin/perl print int 1.999; print "n"; print int 2.001; print "n"; 17、integer模块 ??????? 整数计算 #!/usr/bin/perl #? 从$value 数字中剥离连续的16进制数字,从而将那个数字转换为16进制数字 use integer; $value = 258; print "$value in hex = "; while($value) { ??? push @digits,(0 .. 9,a .. f)[$value & 15]; ??? $value /= 16; } while(@digits){ ??? print pop @digits; } 18、join函数 ??????? 将表加入到字符串中 #!/usr/bin/perl @array = (1,6,7,8,9); print join(",@array) . "n"; 19、keys函数 ??????? 得到hash表键 #!/usr/bin/perl # $hash{sandwich} = salami; $hash{drink} = 'root beer'; foreach $key (keys %hash) { ??? print $hash{$key} . "n"; } #!/usr/bin/perl # 哈希表的键数量 $hash{sandwich} = salami; $hash{drink} = 'root beer'; print "%hash has " . keys(%hash) . " keysn"; 20、lc函数 ??????? 转换为小写 ??????? lu转为大写 #!/usr/bin/perl while(<>) { ??? print "Here's what you typed lowercased: " . lc($_) . "n"; ??? print "Here's what you typed uppercased: " . uc($_) . "n"; } 21、lcfirst函数 ??????? 第一个字符转换为小写 ??????? ucfirst第一个字符转换为大写 #!/usr/bin/perl print lcfirst "I like poems by e.e. cummings."; 22、length函数 ??????? 得到字符串的长度 #!/usr/bin/perl $text = "Here is the text."; print length $text; 23、pack函数 ??????? 将值打包到字符串中 #!/usr/bin/perl print pack("ccc",88,89,90) . "n"; print pack("c3",65,66,67) . "n"; print pack("c*",68,69,70,71) . "n"; #!/usr/bin/perl # 将数字转换为二进制构成的字符串 $decimal = 100; $binary = unpack("B32",pack("N",$decimal)); print $binary; #!/usr/bin/perl # 将二进制构成的字符串转换为数字 $decimal = 100; $binary = unpack("B32",$decimal)); $newdecimal = unpack("N",pack("B32",$binary)); print $newdecimal; 24、rand函数 ??????? 创建随机数 #!/usr/bin/perl $random = rand(100); print $random; #!/usr/bin/perl $letter = ('a' .. 'z')[26 * rand]; print $letter; #!/usr/bin/perl print "Some lottery numbers to try:"; foreach (1 .. 6) { ??? print " " . int rand(50) + 1; } 25、reverse函数 ??????? 颠倒表 #!/usr/bin/perl print join(" ",reverse(1 .. 20)); #!/usr/bin/perl @array = (1,3); print join(",reverse @array); #!/usr/bin/perl $hash{sandwich} = grilled; $hash{drink} = 'root beer'; %reversed = reverse %hash; while($key = each(%reversed)) { ??? print "$key => $reversed{$key}n"; } #!/usr/bin/perl $string = "Hello!"; $reversed = reverse($string); print "$reversedn"; 26、rindex函数 ??????? 颠倒索引 #!/usr/bin/perl $text = "I said,no,I just don't know."; print "First occurrence of "no" is at position: " . index ($text,"no") . "n"; print "Last occurrence of "no" is at position: " . rindex($text,"no") . "n"; 27、sin函数 ??????? 正弦 #!/usr/bin/perl $angle = 45; $conversion = 3.14159265358979 / 180; $radians = $angle * $conversion; print "The sine of $angle degrees = ",sin $radians; 28、sort函数 ??????? 排序表 #!/usr/bin/perl @array = ('z','b','a','x','y','c'); print join(",@array) . "n"; print join(",sort{$a cmp $b} @array) . "n"; print join(",sort{$b cmp $a} @array) . "n"; @array = (1,2); print join(",sort{$a <=> $b} @array) . "n"; print join(",sort{$b <=> $a} @array) . "n"; 29、split函数 ??????? 字符串拆分为字符串数组 #!/usr/bin/perl print join('-',split(//,'Hello')); print "n"; print ((split " ","Now is the time")[3]); print "n"; 30、sprintf函数 ??????? 格式化字符串 #!/usr/bin/perl $value = 1234.56789; print sprintf "%.4fn",$value; print sprintf "%.5fn",$value; print sprintf "%6.6fn",$value; print sprintf "%+.4efn",$value; 31、sqrt函数 ??????? 平方根 #!/usr/bin/perl print "Welcome to the Hypotenusizer!n"; print "Enter two sides of a right triangle: "; while(<>) { ??? ($a,$b) = split; ??? $hypotenuse = sqrt($a * $a + $b * $b); ??? print "The hypotenuse is: ",$hypotenuse,"n"; ??? print "Enter two sides of a right triangle: "; } 32、srand函数 ??????? 设置随机数种子 #!/usr/bin/perl srand; $random = rand(100); print $random; 33、substr函数 #!/usr/bin/perl $text = "Here is the text."; print substr($text,12) . "n"; print substr($text,12,4) . "n"; substr($text,"word"); print "$textn"; 34、time函数 ??????? 得到1970年1月1日以来的秒数 #!/usr/bin/perl print "Current epoch time in seconds = ",time,"n"; print "Current time = ",scalar localtime(time()),"n"; 35、Math::Trig函数 ??????? 三角函数 #!/usr/bin/perl use Math::Trig; print "Pi = ",pi,"n"; print "Pi in degrees = ",rad2deg pi,"n"; print "The tangent of 0 = ",tan(0),"n"; print "The arccos of 1= ",acos(1),"n"; print "The arcsin of 1 / sqrt(2) = ",rad2deg(asin(1/sqrt(2)))," degreesn"; 36、values函数 ??????? 得到hash表值 #!/usr/bin/perl $hash{sandwich} = 'ham and cheese'; $hash{drink} = 'diet cola'; foreach $value (values %hash) { ??? print "$valuen"; } 37、vec函数 ??????? 访问无符号整数向量 #!/usr/bin/perl # 得到数据中的每位,以二进制形式显示16进制数据 $hexdigit = 0xA; vec($data,8) = $hexdigit; print vec($data,1); POSIX函数
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |