数组作为hash元素的时候如何push

时间:2023-02-23 07:45:26
#######################################################################
# Copyright (C) 2015 All rights reserved.
#
# 文件名称:p.pl
# 创 建 者:
# 创建日期:2015年05月11日
# 描 述:
#
# 备 注:
#
######################################################################### use strict;
use warnings;
use Time::HiRes;
# please add your code here!
my $tmStarted=Time::HiRes::time;
if ( != scalar @ARGV)
{
&PrintUsage();
exit ;
}
=pod
Subroutine(s);
=cut
sub PrintUsage
{
print STDERR "perl program.pl [IN] ref_file [IN] input_file [OUT] output_file\n";
}
my $line = "";
my $linecount = ;
my %hash = ();
open FIN, "<$ARGV[0]" or die "can not open inputfile:$!\n";
open FOUT, ">$ARGV[1]" or die "can not create outputfile :$!\n";
while(defined($line=<FIN>))
{
chomp $line;
my @vec = split /\t/, $line;
my $size = scalar @vec;
if ($size < )
{
print STDERR "$line\n";
}
if (not defined($hash{$vec[]}))
{
my @vectemp = ();
push @vectemp, $vec[];
$hash{$vec[]} = \@vectemp;
}
else
{
push @{$hash{$vec[]}}, $vec[];
} }
close FIN;
foreach my $key (keys%hash)
{
my @vec2 = @{$hash{$key}};
my $size = scalar @vec2;
my $part = "";
for (my $i = ; $i <$size; $i++)
{
$part.=$vec2[$i];
if ($i < $size - )
{
$part.=",";
}
}
print FOUT "$key\t$part\n";
}
close FOUT;
print STDERR "$0 has finished,congratulations!\n";
print STDERR "Time elapsed:".(Time::HiRes::time-$tmStarted)."\n";

数组作为hash元素的时候如何push的更多相关文章

  1. 数组中的元素 增加push用法 unshift&lpar;&rpar; 方法 和减少pop&lpar;&rpar; 方法 shift&lpar;&rpar; 和其他位置增删 splice&lpar;&rpar; 方法 join&lpar;&rpar; 方法 reverse&lpar;&rpar; 方法 sort&lpar;&rpar; 方法

    push用法 push 英 [pʊʃ] 美 [pʊʃ] vt. 推,推动; vt. 按; 推动,增加; 对…施加压力,逼迫; 说服; n. 推,决心; 大规模攻势; 矢志的追求 定义和用法 push( ...

  2. Perl数组和hash相关函数

    Perl数组和hash相关函数 内置的数组函数有: each, keys, pop, push, shift, splice, unshift, values 内置的hash函数有: delete, ...

  3. Perl匿名数组、hash和autovivification特性

    可有构建匿名的对象,这样就没必要去为只用一两次的数组.hash去取名字,有时候取名是很烦的事. 使用中括号[]构建匿名数组 使用大括号{}构建匿名hash 不包含任何元素的[]和{}分别是匿名空数组. ...

  4. &lbrack;Perl&rsqb; 删除数组中重复元素

    写一个小程序时候,需要去除一个数组中的重复元素,搜索了一下,找到的代码主要是两种,一种是使用grep函数,一种是转换为hash表,代码分别如下: 使用grep函数代码片段:代码: my @array ...

  5. perl 引用(数组和hash引用) --- perlreftut - Mark 的一个简单的&&num;39&semi;引用&&num;39&semi;教程 ---Understand References Today&period; --Mark Jason Dominus&comma; Plover Systems &lpar;mjd-perl-ref&plus;&commat;plover&period;com&rpar;

    https://blog.csdn.net/fangwei1235/article/details/8570886 首页 博客 学院 下载 论坛 APP 问答 商城 活动 VIP会员 招聘 ITeye ...

  6. 6&period;数组和Hash表

    当显示多条结果时,存储在变量中非常智能,变量类型会自动转换为一个数组. 在下面的例子中,使用GetType()可以看到$a变量已经不是我们常见的string或int类型,而是Object类型,使用-i ...

  7. 为什么for不能有序遍历数组的所有元素?&lpar;Array的设计原理&rpar;

    这个题目略微浅显,但却不易讲明白.如果我告诉你,我们不能以任何代码保证可以有序遍历出一个数组的所有元素,你肯定会反驳我,因为使用for明明就可以啊!但其实不是. 一.为什么FOR不能保证遍历所有? 代 ...

  8. 数组和Hash表

    数组和Hash表 当显示多条结果时,存储在变量中非常智能,变量类型会自动转换为一个数组. 在下面的例子中,使用GetType()可以看到$a变量已经不是我们常见的string或int类型,而是Obje ...

  9. js向一个数组中插入元素的几个方法-性能比较

    向一个数组中插入元素是平时很常见的一件事情.你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素. 但是这些已知的方法,并不意味着没有更 ...

随机推荐

  1. &OpenCurlyDoubleQuote;&period;Net 社区虚拟大会”&lpar;dotnetConf&rpar; 2016 Day 3 Keynote&colon; Scott Hanselman

    美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.9 是第三天, Scott Hanselman 做Keynote.今天主题围绕的是.NET ...

  2. 在asp&period;net mvc4项目里bootstrap datetimepicker控件的使用

    前段时间写了一篇关于调用阿里大于的短信接口来开发例会短信群发通知功能的文章http://www.cnblogs.com/zhouyuangan/p/apicall_1.html,其中的例会时间是需求中 ...

  3. 利用NABC模型进行竞争性需求分析

    利用NABC模型进行竞争性需求分析:   1>N(Need 需求)   越来越多的,各式各样的游戏层出不穷,大的小的中等的都已经琳琅满目了,用户貌似都看不过眼了.现在大游戏费时伤神,当然了得在有 ...

  4. Linux下设置memcached访问IP

    在虚拟机上装了memcached,本地访问可以,但从其它机器连这台机器的memcached应用总是报连接失败.防火墙的端口都是打开的.Google了才知道原来需要修改memcached的配置文件,将默 ...

  5. java中的基本数据类型存放位置

    基本数据类型是放在栈中还是放在堆中,这取决于基本类型声明的位置. 一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中, ...

  6. UVALive - 3713 Astronauts

    给定n个宇航员的年龄,平均年龄为 ave,根据下列要求分配任务: B任务只能分配给年龄<ave的宇航员: A任务只能分配给年龄>=ave的宇航员: C任务可以任意分配. 给定m组互相憎恨的 ...

  7. asp&period;net mvc Remote远程验证

    1.Model实体 /// <summary> /// 课程编号 /// </summary> [MaxLength()] [Remote("IsUnique_Ava ...

  8. js给div动态添加控件,然后给这个控件动态添加事件

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  9. python select epoll poll的解析

    select.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组(在linux中一切事物皆文件 ...

  10. &num;define WIN32&lowbar;LEAN&lowbar;AND&lowbar;MEAN

    不加载MFC所需的模块.用英语解释:Say no to MFC如果你的工程不使用MFC,就加上这句,这样一来在编译链接时,包括最后生成的一些供调试用的模块时,速度更快,容量更小.不过对于较大工程,MF ...