您的位置:首页 > 其它

Perl内置常用函数

2013-09-24 14:11 459 查看
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, 0, 8) = $hexdigit;

print vec($data, 3, 1);

print vec($data, 2, 1);

print vec($data, 1, 1);

print vec($data, 0, 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('11111111111111111111');

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) = $c3\n";

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 => $value\n";

}

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, 2, 3, 4, 5, 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) . " keys\n";

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", pack("N", $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, 2, 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 "$reversed\n";

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, 5, 6, 7, 3, 2);

print join(", ", @array) . "\n";

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 "%.4f\n", $value;

print sprintf "%.5f\n", $value;

print sprintf "%6.6f\n", $value;

print sprintf "%+.4ef\n", $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, 12, 4, "word");

print "$text\n";

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))), " degrees\n";

36、values函数

得到hash表值

#!/usr/bin/perl

$hash{sandwich} = 'ham and cheese';

$hash{drink} = 'diet cola';

foreach $value (values %hash) {

print "$value\n";

}

37、vec函数

访问无符号整数向量

#!/usr/bin/perl

# 得到数据中的每位,以二进制形式显示16进制数据

$hexdigit = 0xA;

vec($data, 0, 8) = $hexdigit;

print vec($data, 3, 1);

print vec($data, 2, 1);

print vec($data, 1, 1);

print vec($data, 0, 1);

POSIX函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: