免费注册 查看新帖 |

Chinaunix

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

帮忙解释一下这段代码内部原理 $SEEK = "123.txt";open(SEEK); [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-10 18:39 |只看该作者 |倒序浏览
今天看到一段代码 虽然知道运行结果 但是不明白里面的原理


  1. $SEEK = "123.txt";
  2. open(SEEK);
  3. while(<SEEK>){
  4.         print;
  5. }
  6. close SEEK;
复制代码


open(SEEK) 里面省略了什么?  怎么把"123.txt"带进去的

论坛徽章:
0
2 [报告]
发表于 2008-03-10 18:45 |只看该作者
你确认是SEEK而不是$SEEK  ??

论坛徽章:
0
3 [报告]
发表于 2008-03-10 18:46 |只看该作者
不是   你可以运行一下   就是因为这个 我才不理解呢

论坛徽章:
0
4 [报告]
发表于 2008-03-10 18:49 |只看该作者
果然神奇
see
perldoc -f open
open FILEHANDLE,EXPR
       open FILEHANDLE,MODE,EXPR
       open FILEHANDLE,MODE,EXPR,LIST
       open FILEHANDLE,MODE,REFERENCE
       open FILEHANDLE
               Opens the file whose filename is given by EXPR, and associates
               it with FILEHANDLE.

               (The following is a comprehensive reference to open(): for a
               gentler introduction you may consider perlopentut.)

               If FILEHANDLE is an undefined scalar variable (or array or hash
               element) the variable is assigned a reference to a new anony-
               mous filehandle, otherwise if FILEHANDLE is an expression, its
               value is used as the name of the real filehandle wanted.  (This
               is considered a symbolic reference, so "use strict 'refs'"
               should not be in effect.)

            
  If EXPR is omitted, the scalar variable of the same name as the
               FILEHANDLE contains the filename.  (Note that lexical vari-
               ables--those declared with "my"--will not work for this pur-
               pose; so if you're using "my", specify EXPR in your call to
               open.)


就是说open(FILEHANDLE)相当与

  1. open(FILEHANDLE,$FILEHANDLE);
复制代码

[ 本帖最后由 churchmice 于 2008-3-10 18:51 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-03-10 19:03 |只看该作者
perl 有点儿太自由了  

我就因为这个  改了将近4个小时的程序  让我在将近2000行代码中 就找打开文件的位置

这么写程序 有些害人

在此对之前写程序的人亲属表示抱歉

论坛徽章:
0
6 [报告]
发表于 2008-03-10 19:14 |只看该作者
原帖由 hitsubunnu 于 2008-3-10 19:03 发表
perl 有点儿太自由了  

我就因为这个  改了将近4个小时的程序  让我在将近2000行代码中 就找打开文件的位置

这么写程序 有些害人

在此对之前写程序的人亲属表示抱歉

习惯了就好了

论坛徽章:
0
7 [报告]
发表于 2008-03-10 21:38 |只看该作者
呵呵 懒惰是perler的美德
正在看的learning perl中提到的
又学了一招

论坛徽章:
0
8 [报告]
发表于 2008-03-11 09:52 |只看该作者

我倒,这招学了可不好……

论坛徽章:
0
9 [报告]
发表于 2008-03-11 10:37 |只看该作者
perl 给你自由

但自由是有代价的

论坛徽章:
0
10 [报告]
发表于 2008-06-19 09:54 |只看该作者
呵呵,好有意思 ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP