Perl内置常用函数

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函数
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值