Perl6でこういったコードを書くと
#!/usr/bin/env perl6 use v6; if ( 1 ){ say "goe"; }
perl6 if.p6 ===SORRY!=== Error while compiling /Users/anatofuz/workspace/cr/Basic/perl6/sandbox/log/if.p6 Missing block (whitespace needed before curlies taken as a hash subscript?) at /Users/anatofuz/workspace/cr/Basic/perl6/sandbox/log/if.p6:8 ------> <BOL>⏏<EOL> expecting any of: block or pointy block
とエラーが発生する.
これは if
の後の ()
と {
の間に空白がない為であり
#!/usr/bin/env perl6 use v6; if ( 1 ) { say "goe"; }
としてあげると
perl6 if.p6 goe
と表示される
公式ドキュメントを見るとif文には ()
をつけないで書いている為言語デザイナー的には
if
と評価する真偽値の間には区切りの空白があるのは当然だけれども,()
はあくまで人間が見やすくしているだけなので空白入れてくれ!!という世界観だと思った.