say
в основном определяется как:
sub say ( +@_ ) {
for @_ {
$*OUT.print( $_.gist )
}
$*OUT.print( $*OUT.nl-out );
}
Если вы не хотите перевод строки, вы можете либо изменить значение $*OUT.nl-out
, либо использовать print
и gist
.
say $_;
print $_.gist;
Во многих случаях результат вызова .gist
совпадает с .Str
. Это означает, что вам даже не нужно звонить .gist
.
use Terminal::ANSIColor;
# Wanna print even numbers in red
for <1 2 3 4> {
$_ %% 2 ?? print color('red'), $_, color('reset') !! print $_
}
(обратите внимание, что я использовал равномерно делимое на оператор %%
.)
say
предназначен для людей, поэтому он использует .gist
и добавляет новую строку.
Если вы хотите более детальный контроль, не используйте say
. Вместо этого используйте print
или put
.