LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: devel

征求《Perl高级编程》第125页的内容

[复制链接]
发表于 2004-4-30 12:47:29 | 显示全部楼层
没什么好说的了,书已经贴出来了,大家自己看吧。
“断章取义”,说的好!
发表于 2004-4-30 12:53:04 | 显示全部楼层
那你再解释一下,为什么第二行的 @array = \(1,2,3,4); 把一个你所谓的标量传给了一个数组?
不要自己打自己的脚哦?
发表于 2004-4-30 13:00:19 | 显示全部楼层
把构造符和列表弄混淆是perl中一个非常常见的错误,尤其是……:

这句话你看见了吗?他说这是个错误。

\(1,2,3,4)是(\1, \2, \3, \4)的另一种写法,这是引用的数组,而不是数组的引用,请你搞清楚。
发表于 2004-4-30 13:05:24 | 显示全部楼层
我真想骂人了,你放屁
把构造符和列表弄混淆是perl中一个非常常见的错误,尤其是……:
他说有人会以为 @array1 = [1, 2, 3, 4]; 和@array2 = (1, 2, 3, 4); 是相同的
有人认为 @array1 == @array2 的想法是错误的;
搞清楚
发表于 2004-4-30 13:06:58 | 显示全部楼层
《高级perl编程》(不是《Perl高级编程》)第24页:

初学者老是搞不清数组变量和枚举列表(元素由逗号分隔)的不同,比如在枚举列表前面插入“\”并不表示对枚举列表的引用:

$ s = \('a', 'b', 'c', 'd');   #警告,并不是你想要的结果

这和下面的代码结果相同:

  1. $s = (\\'a', \\'b', \\'c', \\'d');
复制代码
发表于 2004-4-30 13:12:51 | 显示全部楼层
$s = (\'a', \'b', \'c', \'d');
你放屁还是你的书在放屁呀??
(\'a', \'b', \'c', \'d');是数组也,你把他给了标量,把大的给了小的呀?
发表于 2004-4-30 13:17:20 | 显示全部楼层
再看看你的书的第9行:
“Perl中一个常见的错误是试图使用一个反斜杠操作符来创建一个指向现有列表的引用……”

由此可见,\('a', 'b', 'c', 'd')并不是“一个指向现有列表的引用”。
发表于 2004-4-30 13:20:11 | 显示全部楼层
$s = (\'a', \'b', \'c', \'d');
你放屁还是你的书在放屁呀??
(\'a', \'b', \'c', \'d');是数组也,你把他给了标量,把大的给了小的呀?

请你看清楚,我的书上说这样做是错的。
发表于 2004-4-30 13:23:15 | 显示全部楼层
那这样写 @array = \(1,2,3,4);
@array = [1,2,3,4];
有什么区别吧?只不过Perl解析器在处理她们的时候方法不一样而已,看好我上面的措词,你所谓的标量传给了一个数组
发表于 2004-4-30 13:25:47 | 显示全部楼层
另外,我贴的是

  1. $s = (\\'a', \\'b', \\'c', \\'d');
复制代码

但贴上来之后,"\"被吃掉了。
现在我只能写"\\\'a'"。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表