免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Perl Perl map
12下一页
最近访问板块 发新帖
查看: 4055 | 回复: 11
打印 上一主题 下一主题

Perl map [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-19 18:53 |只看该作者 |倒序浏览
For example:

my @newarray=map{...},@array;

对于map, 是把每个map进来的item处理之后缓存到一个地方,处理完所有的@array 一起输出到@newarray呢?还是map进来的每个item处理完之后直接输出到@newarray?

先谢谢大家解答了!

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
2 [报告]
发表于 2016-05-19 19:19 |只看该作者
我也是只会乱用, 不明白原理 也不会做实验验证 同是小白, 请大神出手. 帮顶!

论坛徽章:
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
3 [报告]
发表于 2016-05-19 20:12 |只看该作者
本帖最后由 jason680 于 2016-05-19 20:21 编辑

回复 1# TrishaTie

判断是否使用map原则...
须要取得(回传)数组---map会return传回数组

# 须要(回传)数组 用map
my @newarray = map {...} @array;  

# 不须要(回传)数组 用foreach
foreach (@array) {...}  



Note: ===== map = foreach + push ============

my @newarray = map {...} @array;  

# 结果相同(但map不一定是如此处理)
foreach(@array){
  ...;
  push @newarray, $_;
}


论坛徽章:
0
4 [报告]
发表于 2016-05-19 20:35 |只看该作者
来看试验结果
  1. ➜  tmp  cat map.t
  2. #!/usr/bin/perl
  3. use strict;
  4. use warnings;
  5. use Data::Dumper;

  6. my @array = 1..10;
  7. my @new;
  8. @new = map { my $x=$_; print Dumper(\@new); $x * $x } @array;

  9. print "END " . Dumper(\@new);
  10. ➜  tmp  perl map.t
  11. $VAR1 = [];
  12. $VAR1 = [];
  13. $VAR1 = [];
  14. $VAR1 = [];
  15. $VAR1 = [];
  16. $VAR1 = [];
  17. $VAR1 = [];
  18. $VAR1 = [];
  19. $VAR1 = [];
  20. $VAR1 = [];
  21. END $VAR1 = [
  22.           1,
  23.           4,
  24.           9,
  25.           16,
  26.           25,
  27.           36,
  28.           49,
  29.           64,
  30.           81,
  31.           100
  32.         ];
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
5 [报告]
发表于 2016-05-19 21:01 |只看该作者
@jason680, @kk861123
多谢两位大神的解释 + 实验, 清楚许多...

论坛徽章:
0
6 [报告]
发表于 2016-05-20 15:50 |只看该作者
I see ! Thanks a lot for Jason's answer! 回复 3# jason680


   

论坛徽章:
0
7 [报告]
发表于 2016-05-20 15:52 |只看该作者
谢谢KK君, 一经实验,明朗很多,感觉是先放到一起再输出来呀~   回复 4# kk861123


   

论坛徽章:
0
8 [报告]
发表于 2016-05-20 15:52 |只看该作者
多谢帮顶啦!^.^ 回复 2# sunzhiguolu


   

论坛徽章:
12
2015年亚洲杯之乌兹别克斯坦
日期:2015-04-10 18:29:00狮子座
日期:2016-01-17 15:40:28处女座
日期:2016-01-16 17:36:17巨蟹座
日期:2016-01-16 17:35:48未羊
日期:2015-12-12 16:18:26青铜圣斗士
日期:2015-12-09 01:07:50IT运维版块每日发帖之星
日期:2015-12-05 06:20:00神斗士
日期:2015-12-03 23:13:59IT运维版块每日发帖之星
日期:2015-11-22 06:20:00IT运维版块每日发帖之星
日期:2015-11-08 06:20:00IT运维版块每日发帖之星
日期:2015-10-29 06:20:00IT运维版块每日发帖之星
日期:2016-06-30 06:20:00
9 [报告]
发表于 2016-05-22 17:00 |只看该作者
up up up

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
10 [报告]
发表于 2016-05-28 00:42 |只看该作者
回复 4# kk861123

@new = map { my $x=$_; print Dumper(\@new); $x * $x } @array;

XX le, 3Q ~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP