dポイントプレゼントキャンペーン実施中!

OracleのユーザIDやパスワード等がかかれている環境設定専用のファイルを読み込み、
環境変数に読み込んだ内容をセットし、DBからデータを抽出するというサブルーチンを作っています。

ファイルを読み込み、環境変数にセットするところまでは動くのですが、
DBからデータを抽出することができません。
ただし、ファイルを読み込まずじかにサブルーチンの中に書き込んでいると正しく抽出することができます。

原因がまったくわからないので、アドバイスをお願いします。

-----以下環境ファイル読み込みプログラムの一部-----
my $env_file= '○/△/■';←環境設定のファイルパス

open(KAN, $env_file);
while(<KAN>){
($name, $val) = split(/=/, $_);←環境ファイルを=で分割
chomp($val);
$kankyou{$name} = $val; ←取得したものをハッシュに
}
close(KAN);

$ENV{'userid'} = $kankyou{'db_userid'};
$ENV{'passwd'} = $kankyou{'db_passwd'};
$ENV{'dbstring'} = $kankyou{'db_dbstring'};

このあとDBからのデータ抽出処理実行と続く
----------------------------------


---ここから環境ファイルの内容---
db_userid=AAA
db_passwd=BBB
db_dbstring=CCC
↑この内容を下記の書き方でサブルーチンの中で直接書くと動く。
$ENV{'userid'} = 'AAA';

A 回答 (1件)

とりあえず、ファイルから読み込んだ場合と、直接設定した場合とで「use Data::Dumper;print Dumper \%ENV;」の結果を比べてみては?



#ところで、環境ファイルの改行コードは、読み込むプログラムの環境と一致してますよね?
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。
よくよく再確認したところ、環境ファイルの改行コードが
読み込むPerlプログラムの改行コードと違っていました。
改行コードを同じにしたところ無事に動きました。
ありがとうございました。

お礼日時:2004/09/16 09:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!