Перейти к основному содержимому

1.4. В чём разница между *pl "строка" и просто "строка"?

В: В чём разница между *pl "строка" и просто "строка"? О:

Любое значение, записанное без оператора, плеер автоматически выводит на экран, как если бы перед этим значением стоял оператор *pl:

*pl "Строка текста, после которой будет вставлен перевод каретки."
"Строка текста, после которой будет вставлен перевод каретки."

На самом деле значение, записанное без оператора, передаётся так называемому "неявному оператору". То есть оператору, название которого попросту никогда не указывается. В большинстве случаев неявный оператор ведёт себя так же, как оператор *pl:

123
triz+bort
48*59-rtu
$mid("какая-то строка",10)

Однако существует одно отличие между неявным оператором и оператором *pl.

Если выражение, переданное неявному оператору, не возвращает никакого результата (например, пользовательская функция), плеер просто ничего не выведет на экран.

Если выражение, которое не возвращает никакого результата, передано оператору *pl, оператор *pl выведет на экран пустую строку и сделает перевод каретки.

# start
*pl 'explicit'
*pl $func('foo')
*pl 'explicit'

'implicit'
$func('foo')
'implicit'
- start -

# foo
N=45+67
- foo -