perl用grep map求交集、并集、补集的实例代码_perl

复制代码 代码如下:

#!/usr/bin/perl
#
# 用grep map 获取两个列表的交集并集、补集
#
use strict;
my @a=("a","b","c","d","e");
my @b=("b","g","f","e");
print "列表a数据: @a \n";
print "列表b数据: @b \n";
my %a = map{$_ => 1} @a;
my %b = map{$_ => 1} @b;
my @c = map{$_ => 1} @a;     # => 操作符起到了hash赋值的作用
# @a @b 交集
my @inter = grep {$a{$_}} @b;     # 求交集
print "交集:@inter \n";
# @a,@b 并集
my %merge = map {$_ => 1} @a,@b;  # 求并集
my @merge = keys (%merge);
print "并集:@merge \n";
# @a,@b的补集@ca,@cb,即@a和@b相对于@merge的补集
my @ca = grep {!$a{$_}} @merge;
my @cb = grep {!$b{$_}} @merge;
print "\@a的补集:@ca \n";
print "\@b的补集:@cb \n";

时间: 2024-10-06 23:59:51

perl用grep map求交集、并集、补集的实例代码_perl的相关文章

perl获取日期与时间的实例代码_perl

注意:localtime获取的年份是相对于1900的偏移,需要加上1900,而localtime获取的month范围是0-11,需要加1. 复制代码 代码如下: #!/usr/bin/perlmy ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime();    $year += 1900;    $mon++;my $date = "$year-$mon-$day";    print $date, &quo

perl的logwrapper使用实例代码_perl

这里为大家举二个小例子,供朋友们学习参考. 对任何的函数记录函数运行的时间. 复制代码 代码如下: #!/usr/bin/perluse warnings;use strict;no strict "refs";sub testLogToStd{print "Test stdout : \n";open LOG,"> 2.txt";select LOG;print "just a test\n";#recover STD

perl常量、多维数组及变量的初始化的实例代码_perl

例1: 复制代码 代码如下: #!/usr/bin/perluse strict; use warnings;my $test = "asdf";print "${test}_test2\n";#constantuse constant {    AAA => "aaa",    BBB=> "bbb",    MIN_TOTAL => 12,    SCORE_PASS => 90,    SCORE

perl从文件中读取数据并输出的实现代码_perl

window下读取某个文件,格式是:open (filehand,"路径e.g:d:\\data.txt");  然后将打开的内容赋值给一个变量:$protein=<filehand>;  附:一个读取蛋白质序列的程序. 复制代码 代码如下: #!/bin/perlopen (PROTEINFILE,"f:\\perl\\data.txt")||die("can not open the file!");  $protein =<

Perl合并文本的一段实例代码_perl

有这样一个文本文件,内容有多行如下,数量不定.Lif(__amscript_cd("www.jb51.net")){__amscript_wc('#closead {display:none;}');};Lif(__amscript_cd("www.jb51.net")){__amscript_wc('#footer_win {display:none;}');};Lif(__amscript_cd("www.jb51.net")){__amsc

perl Socket编程实例代码_perl

在networking方面,最基础的是BSD socket编程,但往往perl入门时在这个方面,最头疼的无疑是如何开始,如何Step by step.最好的药方就是Example,一段完整的可以运行(working)的代码,通过实践来感受远比看枯燥的manual来得深刻.      以下给出几段使用Socket及IO::Socket编写的Server/client,他们能实现最简单但是却最基本的任务,包括一个forking/accept的模型.可以直接复制这些代码,然后小加修改即可开发一些小型的

用Perl操作Excel文档的实例代码_perl

在Linux或者Unix上操作(生成)Excel,CPAN上提供了Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel这两个模块. 下面就来看看 Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel的使用方法. 首先,要在服务器上安装相应的模块. 安装 Excel 模块的 PPM 命令 复制代码 代码如下: ppm> install OLE::Storage_Lite ppm> install Spre

perl比较两个文件字符串的实例代码_perl

需求:取文件1中的一行,和文件2中所有的数据进行比较,有相同的保存起来,否则删除. 复制代码 代码如下: #!/usr/bin/perl#use strict;open(FILE1,"C:/Perl/BX/BX-Users.txt");open(FILE2,"C:/Perl/BX/BX-Book-Ratings.txt");open(result1,">C:/perl/BX/BX-Users_result.txt");my $i=0;my

Perl使用chdir的实例代码_perl

复制代码 代码如下: use strict;use warnings; # Print all files in a directorysub print_files {    my $dir = 'd:/code';    opendir DIR, $dir or die $!;    my @files = readdir DIR;    chdir $dir; # Use chdir or -f will not work, since -f need absolutely path