掲示板スクリプトを作っている者ですが,
新しいバージョンでは変数の構成が違うんです。
そこで,HTMLフォームに入力した旧バージョンの変数の中身を,
新しいバージョン用に書き換えるといったものを作り始めたところ
壁にぶつかりました。お願いいたします。

まずは変換前の変数を入力するための,sub form1を実行します。
(入力する項目:@hairetu1 @hairetu2 $scalar1)

次にform1で入力された配列変数を分割したいので,
その範囲を入力するフォームと配列の中身の一覧を出します。(sub form2)
(入力する項目:$scalar2 $scalar3)
この時点では@hairetu1 @hairetu2 $scalar1にはform1で入力された内容が入っている。

最後にsub form3,変換された変数の中身を表示する…という予定だったのですが,
ここに来るとform1で入力した@hairetu1 @hairetu2 $scalar1が空っぽになってしまってます。
form2で入力した$scalar2 $scalar3にはちゃんと中身が入っています。

どうして@hairetu1 @hairetu2 $scalar1が空になってしまったのかがわかりません。
手持ちの解説書を読んでも,特に指定しない限りグローバル扱いされるとありますし。

どうかお願いします。