在perl中推送功能

I a*_* am -2 arrays perl push

在下面的代码中,当我将每一行推入一个数组(@num)时,我发现在传入数组时,在行的末尾添加了一个空格.

我的输入文件中的行尾没有空格.当我打印数组中的所有元素时,我发现了这个空格.

open (A, "file.txt");
my @num = ();

while(my $each=<A>)
{
    chomp $each;
    $each=~s/\s//g;
    push(@num,$each);
}
close(A);
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

Bor*_*din 5

总是喊道

  • 添加use strictuse warnings你的程序的顶部,并声明所有的变量my在他们第一次使用的点

  • 使用三参数形式open和词法文件句柄

  • 检查每个打开的状态以确保它成功

您显示的代码不会为您的行添加任何空格.你的节目还有什么吗?

你的代码写得更好

use strict;
use warnings;

my @num = do {
  open my $fh, '<', 'file.txt' or die $!;
  <$fh>;
};

s/\s+//g for @num;
Run Code Online (Sandbox Code Playgroud)

更新

正如@darch评论的那样,你在写作吗?

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

或类似的东西?这将在数组的每个元素之间放置空格,并且应该写入

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

  • 然后你必须告诉我们你的完整程序.问题不在于您展示的部分 (3认同)