Запретить perl скрипт из новой строки - PullRequest
1 голос
/ 18 апреля 2020

У меня есть скрипт Perl:

 $i=0;

 while ( ($num = <STDIN>) =~ /\S/ ) {    
     push @lines, $num; $i++;
     print ("$num"x"$i")."\n";
 }

Он печатает это:

3
3
4
4
4
5
5
5
5

Но я хочу напечатать это:

3 
3
4
4 4
5
5 5 5

Как я могу запретить Perl печатать новую строку после каждого отпечатка? Я попробовал этот метод, как вы можете видеть в фрагменте кода:

$num x $i

1 Ответ

2 голосов
/ 18 апреля 2020

Вам, вероятно, понадобится chomp($num);, который удалит ваш ввод новой строки в конце $num.

my $i=0;
while ( (my $num = <STDIN>) =~ /\S/ ) {
  chomp($num);
  $i++;
  print "$num " x $i, "\n"
}

Или вы можете просто:

print "$& " x ++$i, "\n" while <STDIN>=~/\d+/;

(Кроме того, когда задавая вопросы по коду, вы должны урезать свой пример, чтобы он содержал только то, что имеет отношение. Ваш push @lines, $num может только внести путаницу в потенциальных ответчиков)

...