在子程序中使用$ / file separator并打开文件句柄

时间:2015-03-11 19:10:07

标签: perl file file-handling

我在使用Perl迭代文件时更改默认文件分隔符时遇到一些问题。

我有一个以前打开过的文件。我将其文件句柄存储在变量中。但我需要使用自定义分隔符迭代文件。

以下不起作用。

 sub iterate_custom {
    local $/ = "*****";
    my $fl_hdl = $prev_flhndl;
    while (my $data = <$fl_hdl>) {
        print $data;
    }
  }

请说出我的代码有什么问题。 THX

1 个答案:

答案 0 :(得分:0)

没有错。它运作得很好。

$ echo -n 'a*****b*****c*****' |  perl -e'
   my $prev_flhndl;

   sub iterate_custom {
      local $/ = "*****";
      my $fl_hdl = $prev_flhndl;
      while (my $data = <$fl_hdl>) {
         print "<$data>\n";
      }
   }

   $prev_flhndl = \*STDIN;
   iterate_custom();
'
<a*****>
<b*****>
<c*****>