免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3439 | 回复: 5
打印 上一主题 下一主题

求助一个perl数组问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-28 17:20 |只看该作者 |倒序浏览
本帖最后由 flysky_coool 于 2014-05-28 22:04 编辑
  1. our $accout_record = {
  2.         1 => ["serial","110000001"],
  3.         2 => ["account_id","1000001"],
  4.         3 => ["order_id","DA20140501010000001"],
  5.         4 => ["order_price","1.00"],
  6.         5 => ["integral","0.00"],
  7.         6 => ["type","0"],
  8.         7 => ["create_time","20140501010010"],
  9.         8 => ["remark","the record from wangyin"],
  10. };

复制代码
目前我把accout_record的每个value的第二个元素放到了一个数组@a中

我想从控制台输出一下格式
110000001|1000001|DA20140501010000001|1.00|0.00|0|20140501010010|the record from wangyin
110000002|1000001|DA20140501010000002|1.00|0.00|0|20140501010010|the record from wangyin
110000003|1000001|DA20140501010000003|1.00|0.00|0|20140501010010|the record from wangyin
110000004|1000002|DA20140501010000004|1.00|0.00|0|20140501010010|the record from wangyin
110000005|1000002|DA20140501010000005|1.00|0.00|0|20140501010010|the record from wangyin
110000006|1000002|DA20140501010000006|1.00|0.00|0|20140501010010|the record from wangyin
110000007|1000003|DA20140501010000007|1.00|0.00|0|20140501010010|the record from wangyin
110000008|1000003|DA20140501010000008|1.00|0.00|0|20140501010010|the record from wangyin
110000009|1000003|DA20140501010000009|1.00|0.00|0|20140501010010|the record from wangyin
.......



好多人看不懂。于是我重新编辑下。。

第1、2、3个字段依次加1,只不过第2个字段对应3个第1、3个字段,如上个样式

第2个字段比如从 1000001加到1050000,那第1、3个字段也要跟着变。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2014-05-28 17:29 |只看该作者
回复 1# flysky_coool

print join("|",@a), "\n";
   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
3 [报告]
发表于 2014-05-28 17:46 |只看该作者
反正我是看不懂需求~

论坛徽章:
0
4 [报告]
发表于 2014-05-28 22:05 |只看该作者
回复 3# huang6894


    已经重新编辑过,不知道是否还清除了

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [报告]
发表于 2014-05-29 09:04 |只看该作者
回复 4# flysky_coool


    不知道理解对了没~反正好奇怪的需求。。。
     


不是没有其他更好的方法,只不过刚好在学for循环~所以将就着用吧~

论坛徽章:
0
6 [报告]
发表于 2014-05-29 13:10 |只看该作者
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;

  4. my @a = ("110000001", "110000002");

  5. foreach (@a) {
  6.     my $accout_record = {
  7.         1 => ["serial","110000001"],
  8.         2 => ["account_id","1000001"],
  9.         3 => ["order_id","DA20140501010000001"],
  10.         4 => ["order_price","1.00"],
  11.         5 => ["integral","0.00"],
  12.         6 => ["type","0"],
  13.         7 => ["create_time","20140501010010"],
  14.         8 => ["remark","the record from wangyin"],
  15.     };
  16.     my @new =  map { my $key = $_; $accout_record->{$key}->[1] } sort keys %{$accout_record};
  17.     unshift (@new, $_);
  18.     print join("|",@new), "\n";
  19. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP