【问题标题】:Read file to one string and separate it in perl将文件读取到一个字符串并在 perl 中将其分隔
【发布时间】:2015-03-16 21:01:08
【问题描述】:

所以我的文件看起来像:

Name, Surname, Number
Name2, Surname2, Number2
Name3, Surname3, Number3

我想在 Perl 中将它全部读入一个字符串,我希望它看起来像:

"Name, Surname, Number, Name2, Surname2, Number2, Name3, Surname3, Number3"

但我真的不知道该怎么做:/ 我是 Perl 的新手。我只知道,打开文件我需要做的:

open($list, "<", $file)

【问题讨论】:

    标签: string perl file


    【解决方案1】:
    my $list = do {
        use autodie;
        open my $fh, '<', $file;
        chomp(my @lines = <$fh>);
        join ', ', @lines;
    };
    

    【讨论】:

      【解决方案2】:

      尝试将文件句柄中的行读入一个数组,然后将该数组连接成一个字符串。

      open (my $list, "<", $file) or die;
      my @lns = <$list>;
      chomp @lns;
      my $string = join(",", @lns);
      
      print "$string\n";
      

      【讨论】:

      • Can't modify &lt;HANDLE&gt; in chomp at - line 3, near "&lt;$list&gt;;" :-P
      • 另外,不要忘记检查 open 调用是否失败。
      【解决方案3】:

      其他答案将起作用。由于您像我一样是 Perl 新手,因此另一种但可能对初学者更友好(直截了当,IMO)的方式是:

      use strict;
      
      sub main(){
      
      my $output; 
          open( 'sourcefile', "<$ARGV[0]" )
                or die("Error: cannot open file '$ARGV[0]'\n");
      
          while (my $line = <sourcefile>){
              chomp $line; #will remove the newline for you.
              $output = $output . $line;
          }
          print $output;
      }
      
      main();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        • 2019-07-03
        相关资源
        最近更新 更多