per5では、 "my"を使わずに$ fooや@barなどの変数を使うことができます。私はいつも "私"を使う必要がないので、perl6は自動気化しないのですか?
$foo=1; @bar=(1,2);
なぜ私はいつも「私」を使用しなければならないのですか?それ以外の場合、コンパイラは変数宣言されていないと言います。なぜperl6は自動起動しませんか?
print "{my @a=1,2,3;}\n"; # have to use "my" to declare variable
print "{@a=1,2,3;}\n"; # this is error 'Variable '@a' is not declared'
"my"を常に使用する必要はありません。これはCのように低すぎます。非常に面倒です。
常に自動更新を有効にする方法はありますか?
ありがとうございました。
これは、それが以前のバージョンではうまくいったからです。 Perl 5のコードを 'use strict'と' use warnings'(またはあなたの代わりにそれを行う他の宣言)で起動しないと、恐ろしいPerl 5コードを書いています。私は、 "Modern Perl"(著者/出版社が無料でオンラインで提供している)という本を読むことをお勧めします。 –
これはCのような低レベルではなく、むしろ非常に高いレベルです。アセンブリのような非常に低レベルのプログラミングでは、最初に使用するものを宣言することなく、任意のRAMアドレスを使用することができます。忘れてしまうと、2つの変数に同じRAMアドレスを誤って使用してバグが発生する可能性があります。 'my'は、あなたが言葉にヒントを与えることを可能にします:ねえ、これは私が変数を宣言するところです。コンパイラを宣言する前にそれを使用すると文句を言うことがあります。それからあなたは間違いをしたことを知っています。 – slebetman
* "これは、それが以前のバージョンではうまくいったからです。"デフォルトでは、すべてのPerl 5変数はパッケージ変数です。 Perl 5の方法が間違っていたので、これがデフォルトです。 – Borodin