Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 我如何在每行上拆分?_Perl - Fatal编程技术网

Perl 我如何在每行上拆分?

Perl 我如何在每行上拆分?,perl,Perl,我正在编写一个Perl脚本,它处理从中返回其输出的输出,如下所示: INSTANCE\n TAG\n INSTANCE\n TAG\n INSTANCE\n TAG\n 是否有一种方法可以使用该函数,以便将结果分成两行块,如下面所示 INSTANCE\n TAG\n split的第一个参数应该是分隔您想要返回的内容的参数 split /(?!^)(?=(?:.*\n.*\n)+\z)/, do { local $/; <> }; 这类似于: ()=split//,""; whi

我正在编写一个Perl脚本,它处理从中返回其输出的输出,如下所示:

INSTANCE\n
TAG\n
INSTANCE\n
TAG\n
INSTANCE\n
TAG\n
是否有一种方法可以使用该函数,以便将结果分成两行块,如下面所示

INSTANCE\n
TAG\n

split
的第一个参数应该是分隔您想要返回的内容的参数

split /(?!^)(?=(?:.*\n.*\n)+\z)/, do { local $/; <> };
这类似于:

()=split//,"";
while (<>) {
    print "\n" if $. % 2 == 1 && $. > 1;
    print;
}
(我强烈建议省略
()=split//,“”;


如果您可以将所有内容加载到内存中,您可以使用

()=split//,"";
my @array = do { local $/; <> } =~ /\G.*\n.*\n/g;
()=split/,“”;
my@array=do{local$/;}=~/\G.*\n.*\n/G;

(我强烈建议不要使用
()=split//,”;

您是否尝试过使用
粘贴
命令?@rob,更新为生成而不是打印。它在18小时前的评论中更新。怎么不回答呢?请随时更新问题以进一步澄清。@rob,在我的两个答案中,返回的结果分成两行,如“以下”。同样,如果结果不正确,请更新您的问题以澄清。您是否因为不知道如何向数组中添加字符串而给我态度?它是
push@array,$buf因为我已经提供了两个解决方案来执行所需的功能,但是你一直说你的问题没有得到回答。因此,您的问题中缺少一些内容,因此需要更新。
()=split//,""; 
my @array;
my $buf;
while (<>) {
   $buf .= $_;
   if ($. % 2 == 1) {
      push @array, $buf;
      $buf = '';
   }
}
()=split//,"";
my @array = do { local $/; <> } =~ /\G.*\n.*\n/g;