Входные данные от оператора readline (<>
) обычно содержат символ новой строки в конце строки, поэтому вам нужно передать его в chomp .Затем вы можете интерполировать массив непосредственно в строку, а не передавать его в качестве дополнительных аргументов для печати.Интерполяция массива разделяет каждый аргумент с $ ", который по умолчанию равен пробелу, в то время как отдельные аргументы для печати разделяются на $, , который не имеет значения по умолчанию, но обычно имеет значениеперевод строки.
my @texts;
print ("Enter text 1: ");
chomp(my $text1 = <STDIN>);
push @texts, $text1;
print ("Enter text 2: ");
chomp(my $text2 = <STDIN>);
push @texts, $text2;
print ("Enter text 3: ");
chomp(my $text3 = <STDIN>);
push @texts, $text3;
my @sorted_texts = sort { lc($b) cmp lc($a) } @texts;
print "Your texts are: @sorted_texts\n";
Поскольку chomp также может работать со списком, вы можете просто добавить один вызов chomp вместо того, чтобы прочитать все входные данные.
chomp(@texts);