それで。
おそらく、私が抱えている特定の問題に対してタイトルが一般的すぎるのでしょう。
SQLite データベースに接続する Perl スクリプトがあります。ランタイム中に、SELECT、INSERT、UPDATE などの多くのデータベース操作を実行します。各データベース操作を独自のサブルーチンでラップしました (主に、SQL ステートメントと結果セットの追加処理を非表示にするため)。
このデータベース操作サブルーチンの 1 つを呼び出す必要があるたびに、同じデータベース ハンドラー オブジェクトを使用したいので、データベース ハンドラー オブジェクトを引数として渡します。例えば:
my $dbh = DBI->connect( "dbi:SQLite:dbname=db.db", "", "") or die;
sub select_from_systems {
my $dbh = shift;
return $dbh->selectcol_arrayref("SELECT hostname FROM systems");
}
ちなみに、私は Perl DBI を使用しています。
データベース ハンドラー オブジェクトを引数として渡す必要がないように、これを行うためのより賢い方法があるかどうか疑問に思っています。
グローバル変数は避けたいと思います。それらが疫病だとは思いません。この場合、それは正当化されるかもしれませんが、それでも.
どんな助けや洞察も大歓迎です。
よろしく。