加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl使用总结

发布时间:2020-12-16 00:18:39 所属栏目:大数据 来源:网络整理
导读:1. 如何检查变量是否初始化? if(defined($var)) 对于数组的初始化检测,可以同样适用,但并不提倡这么做,运行会提示使用了 Deprecate函数。可以通过检测数组长度判断: if($#array eq -1){} 2. 数组遍历 my $i = 0; while($i $#ar) #$#取得数组@ar的最后一

1. 如何检查变量是否初始化?

if(defined($var))

对于数组的初始化检测,可以同样适用,但并不提倡这么做,运行会提示使用了Deprecate函数。可以通过检测数组长度判断:

if($#array eq -1){}

2. 数组遍历

my $i = 0;

while($i < $#ar) #$#取得数组@ar的最后一个索引

3. HASH遍历

while(my ($key,$value) = each %hash)

4. 获取HASH中数组或HASH

my @msgs = @{$data->{Message}};

my %msgs = %{$data->{Message}};

@{}和%{}是必要的

5. 常见的比较操作

lt(小于)、gt(大于)、eq(等于)、le(小于等于)、ge(大于等于)、ne(等于)、cmp(比较)

6. 文件读取

open(OUTPUT,">>$output_file") || die "Could not write into file,program halting.";

print OUTPUT "tHello Worldn";

>>添加到文件末尾,>将替换文件

open(INPUT,"<$input_file") || die "Could not read from file,program halting.";

my @lines = <INPUT>;

将文件读入到数组,每行(包括换行符)为数组的一个元素

close(OUTPUT);

close(INPUT);

7. XML操作

use XML::Simple;

use Data::Dumper;

my $simple = XML::Simple->new();

my $data = $simple->XMLin('a.xml');

XML::Simple将XML文件转化为一种由数组和HASH构成的内部表示形式,非常方便处理。对于较大的XML可能造成内存不足。

Data::Dumper帮组输出数组和HASH的内容。

8. 去掉换行符

chomp,删除末尾n。它的返回值表示是否成功,不是处理后串

$str =~ s/[rn]//;

9. 正则匹配

If($str =~ /^/) 如果匹配

如果想取出匹配的子串,需要添加(),这样便可以通过Perl的内部标量$i访问。(i是括号编号)

取出函数名:

$fn =~ /^w+s+(w+)s*(.*)/;
$fn = $1;

10. 字符串处理

length($str)

substr($str,0) # substr($str,length($str))

index($str,$substr)

uc,lc,U,L来修改变量的大小写

11. 参数传递

脚本参数存放在@ARGV中

函数参数存放在@_中

可以通过类似于$ARGV[0]和$_[0]进行访问

12. 执行其他程序

``命令输入,可获取命令输出

System 执行系统中的程序,并返回退出状态

Exec 结束当前程序,执行另一个外部程序,不返回

13. GUI

http://www.ibm.com/developerworks/cn/aix/library/au-perltkmodule2/

14. 找出指定串中所有匹配模式的子串

while($doc =~ /<scs+?id=[wW]+?</sc>/g)
{
??? print "$&n------------n";
}

模式//g表明匹配所有可能的子串。正则表达式中的+?是为了修正表达式的贪婪性。

while循环将匹配的完整串放在变量$&中,如果使用了括号进行部分匹配,匹配的子串放在$i,其中i是括号的编号。

[wW]或者[sS]匹配所有字符,包含换行。.匹配不包含空格。

14. 获取文件绝对路径

use Cwd 'abs_path';

my $abs_file_path = abs_path($file_path);


15. 判断变量是否为HASH或数组,判断HASH或数组是否为空


%hash=('Tom'=>'Male','Jerry'=>'Female');
if ( ref($hash) eq "HASH" ) {
?print "href is a reference to a hash./n";
}

my @list = () ;
if(@list){???
?print "Not empty!n" ;
}

my %hash = () ;
if(%hash){???
?print "Not empty!n" ;
}

?16.s

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读