免费注册 查看新帖 |

Chinaunix

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

一个关于文件句柄的问题 [复制链接]

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-21 17:01 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2009-05-21 17:18 |只看该作者
说错了 改一下 ..
PACKAGE:ATA 句柄指向的是在PACKAGE中 __DATA__ 之后的内容. 默认PACKAGE 是main
例如:

  1. while(<DATA>){
  2.   print;
  3. }
  4. __DATA__
  5. a b c
  6. 1 2 3
复制代码

输出
a b c
1 2 3

<>和<ARGV>是一样的

ARGVOUT没用过 我去查查

[ 本帖最后由 DQP 于 2009-5-21 17:39 编辑 ]

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
3 [报告]
发表于 2009-05-21 17:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2009-05-21 17:21 |只看该作者
具体内用可以在 perldoc perlvar中查到 我把原文贴上来
ARGVOUT
The special filehandle that points to the currently open output file when doing edit-in-place processing with -i. Useful when you have to do a lot of inserting and don't want to keep modifying $_. See perlrun for the -i switch.

论坛徽章:
0
5 [报告]
发表于 2009-05-21 17:36 |只看该作者
额。。。 刚才说错了。  
我就不胡说了 我把原文贴上来。 END 和 DATA的区别在这段中有解释
Text after __DATA__ but may be read via the filehandle PACKNAME:ATA , where PACKNAME is the package that was current when the __DATA__ token was encountered. The filehandle is left open pointing to the contents after __DATA__. It is the program's responsibility to close DATA when it is done reading from it. For compatibility with older scripts written before __DATA__ was introduced, __END__ behaves like __DATA__ in the top level script (but not in files loaded with require or do) and leaves the remaining contents of the file accessible via main:ATA .

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
6 [报告]
发表于 2009-05-21 17:44 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2009-05-21 17:54 |只看该作者
原帖由 ILoveMK 于 2009-5-21 17:44 发表
不好意思,偶的e文很烂,完全看不懂,

知道自己英文烂就要利用一切机会练习

论坛徽章:
0
8 [报告]
发表于 2009-05-21 17:56 |只看该作者
<END>  在最上层的程序中相当于 <main::DATA>
在下面2个例子中的DATA都是不能被END替换的

  1. file1 : Foo.pm

  2. __DATA__
  3. 1 2 3

  4. t.pl
  5. use Foo;
  6. while(<DATA>){print}
复制代码


  1. package foo;
  2. while(<DATA>){
  3. .......
  4. }
  5. __DATA__
  6. 1 2 3
复制代码



[ 本帖最后由 DQP 于 2009-5-21 17:59 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-05-21 17:57 |只看该作者
__END__ behaves like __DATA__ in the top level script (but not in files loaded with require or do) and leaves the remaining contents of the file accessible via main:ATA .


这里top level script的意思就是main吗?


看了楼上的示例,确认了,呵呵~~

[ 本帖最后由 yashiro_lj 于 2009-5-21 17:58 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2009-05-21 17:58 |只看该作者
原帖由 yashiro_lj 于 2009-5-21 17:57 发表


这里top level script的意思就是main吗?

Perl 根本没有 main 的概念。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP