Perl 我需要一行打印出来

Perl 我需要一行打印出来,perl,unix,Perl,Unix,我正在使用unix命令在perl wfor中编写脚本。我需要在perl中的一行中打印此命令的输出 $table_name=`cat diff_out|cut -d "|" -f1`; $col_name=`cat diff_out|cut -d "|" -f2`; $index_name=`cat diff_out|cut -d "|" -f3`; print "$table_name |$col_name |$index_name |DROPPED|$col_name|$index_name"

我正在使用unix命令在
perl wfor
中编写脚本。我需要在perl中的一行中打印此命令的输出

$table_name=`cat diff_out|cut -d "|" -f1`;
$col_name=`cat diff_out|cut -d "|" -f2`;
$index_name=`cat diff_out|cut -d "|" -f3`;
print "$table_name |$col_name |$index_name |DROPPED|$col_name|$index_name";

我得到了一个比另一个低的输出。我希望它在一行中。

您需要对每个变量使用
chomp
运算符来跳过其中的新行字符

#!/usr/bin/perl
use strict;
use warnings;
my $table_name=`cat diff_out|cut -d "|" -f1`;
chomp($table_name);
my $col_name=`cat diff_out|cut -d "|" -f2`;
chomp($col_name);
my $index_name=`cat diff_out|cut -d "|" -f3`; 
chomp($index_name);                               
print "$table_name |$col_name |$index_name |DROPPED|$col_name|$index_name\n";
输出:

OLAPTABLEVELTUPLES |ID |OLAPTABLEVELSSEL |DROPPED|ID|OLAPTABLEVELSSEL

请举例说明输入数据、所需输出和当前输出。您可能只需要3-5行数据。您总是可以创建一个字符串(用
my$output=
替换
print
),然后将所有新行映射到空格(
$string=~tr/\n/;
),最后打印(
print“$string\n”
)。不过,我怀疑这并不是你真正想要的。输入:1,2d0diff | u out的内容吗?使用shell(和a引导)从Perl中拆分一行简直是疯狂的。