Так я обнаружил, что писать, если заявление со скобками в Perl 6 результатов в нем бросали эту ошибку у меня:Слово 'if' интерпретируется как вызов функции if() '. Паренс не позволил
===SORRY!===
Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens
at C:/test.p6:8
------> if<HERE>(True) {
Unexpected block in infix position (two terms in a row)
at C:/test.p6:8
------> if(True)<HERE> {
Это заставляет меня предположить, что существует какая-то if()
функции? Однако создание и запуск сценария с if();
в нем производит следующее сообщение об ошибке компилятора:
===SORRY!===
Undeclared routine:
if used at line 15
Так как то, что сделка?
Я читал здесь https://en.wikibooks.org/wiki/Perl_6_Programming/Control_Structures#if.2Funless, что parens необязательны, но это, похоже, не для меня.
Мои инструкции if работают без парнеров, просто удивляясь, почему это мешает мне использовать их или почему это будет думать, что if
является подпрограммой из-за них.
EDIT: Хорошо, я немного глупый ... похоже, что я не читал достаточно хорошо по ссылке, которую я связывал, поэтому я предполагаю, что вы в замешательстве. Ссылку я связывал указывает следующее, который был в основном то, что я спрашивал:
if($x > 5) { # Calls subroutine "if"
}
if ($x > 5) { # An if conditional
}
Я принял ответ ниже, как она дает некоторое представление.
Я не пытался создать подпрограмму с именем 'if', я пытался использовать ключевое слово 'if', как интерпретируемое как ключевое слово, за исключением скобок. Как в 'if (True) {#do something}' в отличие от 'if True {#do somethin}'. Проблема в том, что Perl 6, похоже, не позволяет мне, потому что думает, что я пытаюсь вызвать функцию, называемую 'if', хотя, очевидно, ее не существует. Мой вопрос в основном сводится к **. Может ли Perl 6 использовать скобки, чтобы окружить оператор if или всегда будет предполагать, что вы пытаетесь вызвать функцию? ** – Phyreprooph
Я вижу. Я не хочу быть педантичным, но в вашем последнем вопросе, я думаю, вы имеете в виду «... окружать условие if *», а не «... if * statement *».Ответ «да», вы можете окружить свое условие скобками, но там __must__ быть пробелом между ключевым словом и заключенным в скобки условием. Первые два предложения этой ссылки выше; «Еще одно место, где пробел имеет значение, - это разные ключевые слова, такие как поток управления или другие ключевые слова, ориентированные на операторы. Такие ключевые слова требуют пробела после них. + – Marty
@Phyreprooph Вам нужно пространство после ключевого слова if –