为什么Perl选择不做我想做的事情?

con*_*ner -2 perl

我正在接收某个流程的输出(如下@result_listosp所示).当我尝试chomp输出很奇怪.我希望以下输出:

origin-server-pool-1    http_TestABC    https_TestABC
Run Code Online (Sandbox Code Playgroud)

码:

use strict;
use warnings;

my @result_listosp = (  # From backticks
   "origin-server-pool-1\n",
   "http_TestABC   \n",
   "https_TestABC\n",
);
chomp @result_listosp;
Run Code Online (Sandbox Code Playgroud)

输出:

origin-server-pool-1http_TestABC   https_TestABC
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 7

我不确定你认为chomp应该做什么,但是不是要添加空格?!

并且它也不会删除尾随空格.如果要删除尾随空格(包括换行符),请使用以下代码chomp(@result_listosp):

s/\s+\z// for @result_listosp;
Run Code Online (Sandbox Code Playgroud)

至于在元素之间添加空格,可以使用

print(join(' ', @result_listosp), "\n");
Run Code Online (Sandbox Code Playgroud)

甚至只是

print("@result_listosp\n");
Run Code Online (Sandbox Code Playgroud)