Chinaunix

标题: Perl 高效编程第59页关于join '',<$fh>; [打印本页]

作者: 小perl    时间: 2011-10-16 21:58
标题: Perl 高效编程第59页关于join '',<$fh>;
有这么一段代码:

  1. my $file;
  2.     {
  3.         local $/;
  4.         open my ($fh),'<',$filename or die;
  5.         $file=join '',<$fh>;
  6.   }
复制代码
为什么还要用join  '',<$fh>?直接是<$fh>不行吗?join好像多此一举了,并且在这也不起作用。求解。。。
作者: kk861123    时间: 2011-10-16 23:09
回复 1# 小perl
  1. $file = <$fh>;
复制代码
只能取到一行,
  1. $file = join '',<$fh>;
复制代码
会一次性从$fh中读完然后用join连接成一个标量。
作者: 小perl    时间: 2011-10-17 00:10
回复 2# kk861123


    但是不用 join也可以啊,也是一次性的读取所有内容到一个变量$file,因为现在输入分隔符为空,所有内容变为一个很长的字符串了,而join是连接多个字符串。
比如$filename的内容如下:
a b c
1 2 3

则最后$file里保存的是"a b c\n1 2 3" 这一个字符串,看不出join在这有什么用,不解。。。
作者: kk861123    时间: 2011-10-17 08:10
本帖最后由 kk861123 于 2011-10-17 08:14 编辑

回复 3# 小perl


    是的,没用... 使用了
  1. local $/;
复制代码
  1. join '',<$fh>;
复制代码
作用是重复的。
  不知道大侠们有什么高见?
作者: 小perl    时间: 2011-10-17 09:19
回复 4# kk861123


    仙子
作者: 小perl    时间: 2011-10-17 10:36
仙子 flw zhlong8 guagua?
作者: zhlong8    时间: 2011-10-17 10:43
自信点行不,心里没底了就查查 $/ 和 join 的文档,做做实验。心里有底了就算是 Larry 写的你也要敢批
作者: gaoyang636    时间: 2011-10-17 10:54
试了下,去掉没发现变化 同等高人
作者: 小perl    时间: 2011-10-17 11:06
回复 7# zhlong8


    版主批评的是,我这习惯不好,总想依赖人,自己不先查看文档!
作者: 斯文牛氓    时间: 2011-10-17 13:55
回复 2# kk861123


    join 是列表上下文的....




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2