Chinaunix
标题:
智能匹配given在5.14.2中的问题
[打印本页]
作者:
无双六
时间:
2012-11-10 16:09
标题:
智能匹配given在5.14.2中的问题
我在linux版perl5.14.2中建立的练习程序,如下;
#!usr/bin/perl
use utf8;
use strict;
given ($ARGV[0]) {
when ('Fred') {print 'Name is Fred'; continue}
when (/\AFred/) {print 'Name starts with Fred'; continue}
when (/fred/i) {print 'Name has fred in it'; continue}
default {print "I don't see a Fred"}
}
复制代码
执行的时候,总是说第5行“) {”语法错误,但我在开头加上“use 5.010001;”它就能正常运行,可我在5.14.2的perlsyn文档中看到的例子跟我的程序没区别呀,请问这是怎么回事呢?:wink:
作者:
rubyish
时间:
2012-11-10 16:41
use 5.014;
复制代码
作者:
无双六
时间:
2012-11-10 16:59
回复
2#
rubyish
能告诉下这是为什么吗?难道以后写程序又要多写一行吗
作者:
zhlong8
时间:
2012-11-10 18:11
given when 可能和 5.10 前代码中的函数名冲突,为了保持向前兼容默认不可用。需要 use feature 'switch';
作者:
Perlvim
时间:
2012-11-10 18:12
为了保持向上兼容,新语言的特性,需要声明才能启用。否则就乱了
作者:
无双六
时间:
2012-11-10 18:37
回复
4#
zhlong8
多谢,之前在文档中看到了要用这个声明的,当时可能是打错了导致用不了,现在能用了。
作者:
rubyish
时间:
2012-11-11 09:18
Perlvim 发表于 2012-11-10 14:12
为了保持向上兼容,新语言的特性,需要声明才能启用。否则就乱了
多谢
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2