HSPでは、変数の管理が非常にしにくいと言われています。
通常、C言語などの高級言語では、変数のスコープというものがあります。
簡単に言うと、あるサブルーチン内で宣言した(使用した)変数は、
そのサブルーチン内でしか生きられない(使えない)ということです。
この、「サブルーチン内で宣言した変数」をローカル変数といいます。
また、サブルーチンの外(スクリプトファイルの上部)で変数を宣言すると、それはグローバル変数になり、
そのスクリプトファイルのどこからでも使用できるようになります。
何が言いたいのかというと、
HSPの変数はすべてグローバル変数だということです。
グローバル変数はどこからでもアクセスできて、初心者には分かりやすいですが、
いつ内容が変更されるか分からないという弱点があります。
HSPではすべての変数がグローバル変数なので、どこからでも変更できます。
しかし、ちょっとしたプログラムミスで、変数の内容を書き換えてしまったりすることがあります。
では、そのミスを少なくするにはどうしたらよいのでしょうか。
まず、変数の内容を書き換えてしまうようなミスをする人(私ですが・・・)は、
変数の名前のつけ方が下手なのです。
dataとかxとかyなんていう変数をたくさん作ってませんか?
大掛かりなソフトを作る場合、このような単純な名前の変数を作ると、わけが分からなくなります。
宣言
変数で使用するメモリ領域を宣言すること。HSPには変数宣言は必要ない。
ローカル変数
ある関数(サブルーチン)内でしか使用できない変数のこと。
ローカル変数があるおかげで、ある程度メモリの節約になる。
グローバル変数
どの関数からも自由に使用できる変数のこと。本来、グローバル変数は少ないほうがいい。