免费注册 查看新帖 |

Chinaunix

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

请教个变量转换的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-15 10:23 |只看该作者 |倒序浏览
用my $rex=['a'..'z','A'..'Z']定义一个数组,
现在想把'a'..'z','A'..'Z' 这段定义放在文件里面,所以用了一个变量来保存:
my $conf = "'a'..'z','A'..'Z'";
print "$conf"; #'a'..'z','A'..'Z'
但是用到 $rex=[$conf] 的时候,[]里的变量会被自动加上转义。
my $rex=        [$conf];
print  $rex; # '\'a\'..\'z\',\'A\'..\'Z\''

请问下这个有什么办法解决!O(∩_∩)O

论坛徽章:
0
2 [报告]
发表于 2009-12-15 10:44 |只看该作者
可用eval,但不建议~

# perl -le '$conf = "'a'..'z','A'..'Z'"; $x = eval "[$conf]"; print "@$x"'
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

论坛徽章:
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
3 [报告]
发表于 2009-12-15 10:50 |只看该作者
my @conf = eval("'a'..'z','A'..'Z'");
my $rex = \@conf;

应该是你想要的。

论坛徽章:
0
4 [报告]
发表于 2009-12-15 10:57 |只看该作者
eval "string" (注意不是eval {block},前者在运行时编译,后者在编译时编译),是server端编程的安全大忌。
有的公司在项目发布前,会请专门的安全审计公司来对代码进行审计,发现一个eval string扣100 USD。
偶就被扣过

论坛徽章:
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
5 [报告]
发表于 2009-12-15 11:00 |只看该作者
原帖由 兰花仙子 于 2009-12-15 10:57 发表
eval "string" (注意不是eval {block},前者在运行时编译,后者在编译时编译),是server端编程的安全大忌。
有的公司在项目发布前,会请专门的安全审计公司来对代码进行审计,发现一个eval string扣100 USD。 ...


eval()跟eval ""好像没区别吧?我习惯加(),如close(READ)等等。。。

论坛徽章:
0
6 [报告]
发表于 2009-12-15 11:05 |只看该作者

回复 #5 yybmsrs 的帖子

我说过eval ()么?一点也不细心

论坛徽章:
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
7 [报告]
发表于 2009-12-15 11:06 |只看该作者
原帖由 兰花仙子 于 2009-12-15 11:05 发表
我说过eval ()么?一点也不细心

论坛徽章:
0
8 [报告]
发表于 2009-12-15 11:08 |只看该作者

回复 #2 兰花仙子 的帖子

O(∩_∩)O~  谢谢仙子和yybmsrs
弄的是个造数程序,都自己用的,就不去考虑它安不安全了。

论坛徽章:
0
9 [报告]
发表于 2009-12-15 11:10 |只看该作者
原帖由 yybmsrs 于 2009-12-15 11:06 发表


啥呀?说你还说错了啊???
明明我讲的是eval {},你非的理解成eval ()~ hmmmmmm~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP