Perlプログラムですべての配列をクリアする方法を探しています。
現在、すべての配列を明示的に「リセット」するサブルーチンを呼び出しています。
sub clear_arrays{(@array1,@array2,@array3)=((),(),());}
これにより、プログラム内のすべての配列を検索し、サブルーチン内で文字通りそれらを参照する必要があります。
reset
、、のperldocを調べましたが、undef
すべてdelete
の配列をクリアするような方法でそれらを解釈することはできませんでした。
これを行うことができるPerlの組み込み関数はありますか?
そうでない場合、すべての配列変数の配列を返す関数はありますか?
元:
my @prog_arrays = getarrays();
foreach(@prog_arrays){$_ = ();}
getarrays()
プログラム内の初期化された配列の一部またはすべてを返す組み込みのPerl関数は
どこにあるのでしょうか。
編集:
私の特定の状況には、リセットする必要がある2つのグローバルアレイのみが含まれます。私は必要性よりも好奇心から質問を広げました。基本的に、私のグローバルは
@email_subject
&@email_msg
です。
スクリプトが進行し、データが収集/分析されると、値がプッシュされます。スクリプトの最後に電子メールメッセージが送信され、ループ条件変数に応じてスクリプトが再度実行される場合があります。
再度実行する場合は、これら2つのグローバルをクリアして、次のループサイクル中に再度集約できるようにする必要があります。リテラル参照を介してこれら2つの配列をクリアすることは私を殺すことはありませんが、Perlには、文字通り参照せずに配列をクリアするための組み込み関数がすでにあるかどうか疑問に思っていました。
これはこれを達成するための最良の方法ではないかもしれませんが、私が考えた最初の直感的なオプションでした。