关于Perl 绑定变量问题,谁给看下
时间:2010-11-24
来源:互联网
本帖最后由 DIYBYPERL 于 2010-11-24 00:20 编辑
在《Perl编程语言》 14.1.3 神奇地消除 $_ 节中,有如下的例子
复制代码
复制代码
运行结果报以下错误信息:
Read access to $_ forbidden at main.pl line 3
但是在按这一节(14.1.3 神奇地消除 $_ )如下陈述看,只要局部化$_变量,就应该能访问$_,但为什么还不能访问呢?各位给看看:
这个让人好奇的外部的捆绑类用于防止非局部的 $_ 的使用。
通常,如果你想反悔并且让自己可以使用 $_,你就要对它使用 local,这也是所有要点所在。
在《Perl编程语言》 14.1.3 神奇地消除 $_ 节中,有如下的例子
- #文件Underscore.pm
- package Underscore;
- use Carp;
- sub TIESCALAR { bless \my $dummy => shift }
- sub FETCH { croak 'Read access to $_ forbidden' }
- sub STORE { croak 'Write access to $_ forbidden' }
- sub unimport { tie($_, __PACKAGE__) }
- sub import { untie $_ }
- tie($_, __PACKAGE__) unless tied $_;
- 1;
- #文件main.pl
- #!perl -w
- no Underscore;
- local $_='a';
Read access to $_ forbidden at main.pl line 3
但是在按这一节(14.1.3 神奇地消除 $_ )如下陈述看,只要局部化$_变量,就应该能访问$_,但为什么还不能访问呢?各位给看看:
这个让人好奇的外部的捆绑类用于防止非局部的 $_ 的使用。
通常,如果你想反悔并且让自己可以使用 $_,你就要对它使用 local,这也是所有要点所在。
作者: DIYBYPERL 发布时间: 2010-11-24
本帖最后由 zhlong8 于 2010-11-24 10:25 编辑
perlsub 大骆驼上的不少代码已经过时了,毕竟10年了
复制代码
perlsub 大骆驼上的不少代码已经过时了,毕竟10年了
QUOTE:
Localization of special variables
If you localize a special variable, you'll be giving a new value to it, but its magic won't go away. That means that all side-effects related to this magic still work with the localized value.
If you localize a special variable, you'll be giving a new value to it, but its magic won't go away. That means that all side-effects related to this magic still work with the localized value.
- #Similarly, but in a way more difficult to spot, the following snippet will die in perl 5.9.0 :
- sub f { local $_ = "foo"; print }
- for ($1) {
- # now $_ is aliased to $1, thus is magic and readonly
- f();
- }
作者: zhlong8 发布时间: 2010-11-24
回复 zhlong8
这里面的 its magic 指的是什么了?不明白
这里面的 its magic 指的是什么了?不明白
作者: DIYBYPERL 发布时间: 2010-11-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28