我有一个程序可以按行打印数组的内容。我希望它在一列中打印每个数组并排打印。
这是代码:
#!/usr/local/bin/perl
use strict;
use warnings;
my @M_array;
my @F_array;
open (my $input, "<", 'ssbn1898.txt');
while ( <$input> ) {
chomp;
my ( $name, $id ) = split ( /,/ );
if ( $id eq "M" ) {
push ( @M_array, $name );
}
else {
push ( @F_array, $name );
}
}
close ( $input );
print "M: @M_array \n";
print "F: @F_array \n";
这是可能的还是我正在尝试做一些无法完成的事情?
所需格式:
M F
Namem1 Namef1
Namem2 Namef2
最佳答案
您可以使用 join
在数据之间添加您想要的任何分隔符函数,下面的示例格式化数组中由制表符分隔的数据:
...
use List::MoreUtils qw/pairwise/;
my $separator = "\t";
print join($separator, qw(M F)), "\n";
print join(
"\n",
pairwise { ( $a // '') . $separator . ( $b // '') } @M_array, @F_array
), "\n";
...
关于perl - 如何在 Perl 中以列形式打印数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31385155/