需要一些幫助來構建我的Perl代碼。我有一部分工作在能夠從一個子例程$cmd->ls("$chkdir");
中提取結果並從密鑰$dirnm->{path}
(例如目錄:'/ home/mydir')中獲得結果的部分。在Perl中將值從一個子例程傳遞給另一個
我需要做的是,導致(「/家庭/ DIR」)到另一個子例程作爲輸入與SQL語句中的DBI連接(sub results_in
)
那麼,如何構建此,使通我可以將從一個子例程調用的值傳遞給另一個子例程?
示例代碼:
my $DirResults = $cmd->ls("$chkdir"); #$chkdir is directory passed as argument
for my $dirnm (@{$DirResults->{directory}}) {
print "Directory: " . $dirnm->{path} . "\n";
}
#
### Database handle
#
my $dbh_oracle = DBI->connect(
$CFG{oracle_dbi_connect},
$CFG{db_user},
$CFG{db_cred},
{AutoCommit => 0,
RaiseError => 0,
PrintError => 0}) or die ("Cannot connect to the database: ".$DBI::errstr."\n");
my $res_in=results_in($dirnm->{path}); #Here for pseudo code
$dbh_oracle->disconnect();
sub results_in
{
my $sth= $dbh_oracle->prepare(q{
INSERT into mydirs
VALUES (280, '$res_in')}) ||
die ("Cannot connect to the database: ".$DBI::errstr."\n");
$sth->execute;
$sth->finish;
}
您的電話正確無誤。問題在於'$ dirnm'只存在於循環中。當循環只輸入一次時你很想做什麼,但是當循環從不輸入時你想要做什麼,以及當多次輸入循環時你想要做什麼? – ikegami
我想插入一個'$ dirnm'給每個人,如果我有可能的話。如果'$ dirnm'有0個結果,則一起退出。我基本上想把我發現的任何結果輸入到這張表中。 – jdamae