免费注册 查看新帖 |

Chinaunix

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

请问有关数组元素转换的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-18 10:08 |只看该作者 |倒序浏览
请问,数组里面元素的储存形式为
  1. "1..5","10..15","20..25"
复制代码
诸如此类的形式,
这些都是字符标量,
如果想把其全部转换成范围操作符的形式,
也就是“1..5“变成1,2,3,4,5这样的效果,该怎么办?

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
2 [报告]
发表于 2010-08-18 10:13 |只看该作者
eval "1..5";

论坛徽章:
0
3 [报告]
发表于 2010-08-18 11:15 |只看该作者
谢谢

论坛徽章:
0
4 [报告]
发表于 2010-08-18 14:27 |只看该作者
eval 关键字在 Perl 里起两种不同的但相关的作用。这些目的是用两种形式的语法来表现的,eval BLOCK 和 eval EXPR。第一种形式捕获那些致命的运行时例外(错误),类似于 C++ 或 Java 里的 “try 块”。第二种形式在运行时实时地编译和执行一小段代码,并且也和第一种形式一样捕获任何例外。

以上这段资料对eval的描述,怎么都没看明白和eval "1..5";有什么关系。
哪位帮帮忙,解释一下吧,谢谢

论坛徽章:
0
5 [报告]
发表于 2010-08-18 14:40 |只看该作者
学习了哈哈,

论坛徽章:
1
天蝎座
日期:2014-02-28 16:08:53
6 [报告]
发表于 2010-08-18 14:47 |只看该作者
回复 4# shilin320


    就是说它是用来捕捉异常的,类似于try{};

论坛徽章:
0
7 [报告]
发表于 2010-08-18 15:02 |只看该作者
回复 6# snriyt


    如果是捕捉异常的,那怎么还能把"1..5"转换成"1,2,3,4,5"呢。
    捕捉异常应该类似于use strict或者use warnings这样的会提出警告或者中断程序的吧
    我理解的不知是不是有问题。总之,自己没办法把“捕捉异常”和eval "1..5"这段联系起来啊。

论坛徽章:
1
天蝎座
日期:2014-02-28 16:08:53
8 [报告]
发表于 2010-08-18 15:07 |只看该作者
回复 7# shilin320
  1.     2.2. Trapping Errors with  


  2. But just because something has gone wrong with one part of our code, that doesn't mean that we want everything to crash. Perl uses the eval operator as its error-trapping mechanism.

  3. eval { $average = $total / $count }


  4. 2.3. Dynamic Code with eval

  5. There's also a second form of eval, whose parameter is a string expression instead of a block. It compiles and executes code from a string at runtime.


  6. erl executes that code in the lexical context of the code around it, meaning that it's virtually as if we had typed that code right there. The result of the eval is the last evaluated expression, so we really don't need the entire statement inside the eval.

  7. #!/usr/bin/perl

  8. foreach my $operator ( qw(+ - * /) ) {
  9.         my $result = eval "2 $operator 2";
  10.         print "2 $operator 2 is $result\n";
  11.         }

复制代码
书上这么说的

论坛徽章:
0
9 [报告]
发表于 2010-08-18 15:24 |只看该作者
回复 8# snriyt


    谢谢 ,我暂时理解为eval在运行时实时地编译和执行一小段代码“1..5”就应该没错了~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP