スカラー変数

topaz scriptで用いられる変数は、スカラー変数と、配列変数があります。スカラー変数は$aのように$で始まる名前を持ちます。
   例
       $a, $a1, $Mozart, $W_A_Mozart
スカラー変数にはスカラー値を代入することができます。
   例
       $a = 1;
       $a = 1.00;
       $a = 'Magic Flute';
スカラー値は代入時stringとして扱われます。演算時に数値あるいは文字列として解釈されます。
   例
       $a = 1;
       $b = 2;
       $c = $a + $b;
       $d = $a . $b;
$cのは3になりますが、$dは12になります。ここで'+'は数値の和、'.'は文字 列の結合を行なう演算子です。
ダブルクオーテーションで括られた文字列中にスカラー変数があると、変数展開されます。
   例
       $a = 'Flute';
       $b = "Magic $a";
この場合、$bは'Magic Flute'になります。変数の直後にも時が続くときは{}で括ります。
   例
       $a = 'K';
       $b = "Magic Flute ${a}621";
この場合$bは'Magic Flute K621'になります。文字列中にグラフオブジェクトがあっても変数展開されません。以下の例を参考にして下さい。
   例
       $b = "$graph->mag";
この場合、$bはあくまで'$graph->mag'です。
   例
       $a = $graph->mag;
       $b = "$a";
上記のように一度スカラー変数に代入すれば、変数展開が可能になります。
`ls`のように文字列が"`"で囲まれると、文字列をコマンドと解釈し、シェルが起動され文字列を実行します。
   例
       $a = `pwd`;
カレントディレクトリが/usr/local/lib/topazである場合、$aは'/usr/local/lib/topaz'になります。


配列変数

配列変数は"@"で始まる変数名を持ち、スカラー値を配列を格納することができます。
   例
       @array = (0, 1, 2);
この例では、配列変数@aの第0、1、2番目の要素にそれぞれ0、1、2が格納されます。配列中のスカラー要素は、
   例
       $b = $array[0];
のような形式で参照できます。スカラー値はstring型ですから、
   例
       @array = ('Wolfgang', 'Amadeus', 'Mozart');
という形式も可能です。配列のサイズの指定も可能です。
   例
       @array = 10;
この例では、配列変数@arrayのサイズを10に指定しています。また配列に要素を付け加えるには、演算子","を以下のように用います。
   例
       @array = ('Wolfgang', 'Amadeus');
       @array = @array , 'Mozart';
この結果配列変数@arrayは@array = ('Wolfgang', 'Amadeus', 'Mozart');と等価になります。上の表式は以下のように簡単化できます。
   例
       @array  = ('Wolfgang', 'Amadeus');
       @array ,= 'Mozart';
ダブルクオーテーションで挟まれた文字列中では、配列変数も変数展開されます。
   例
       @array  = ('Wolfgang', 'Amadeus', 'Mozart');
       $b      = "@array";
この結果、$bは'WolfgangAmadeusMozart'になります。各要素間は特殊変数$,で区切られますが、このデフォルト値が""であるためこのような出力結果になります。以下のように$,を再定義すると、
   例
       $, = ' '
       @array  = ('Wolfgang', 'Amadeus', 'Mozart');
       $b      = "@array";
$bは、'Wolfgang Amadeus Mozart'となります。配列要素の参照も以下のように変数展開されます。
   例
       @array  = ('Wolfgang', 'Amadeus', 'Mozart');
       $b      = "$array[1]";
$bは'Amadeus'になります。 

read only属性

スカラー変数あるいは配列変数は基本的に書き込み可能ですが、書き込み不可 能な変数も若干存在します。