看到一些奇怪的行爲,即連接到Oracle數據庫,然後調用外部函數,$的值?總是-1。
問題機器運行標準AIX5.3,DBD :: Oracle 1.20和DBI 1.602。DBD :: Oracle導致系統調用損壞?
#!/usr/bin/perl -w
use DBI;
CORE::system "pwd";
print "Before connect: $?\n";
DBI->connect('dbi:Oracle:', 'pwd', 'pwd');
print "Before system: $?\n";
CORE::system "pwd";
print "After system: $?\n";
CORE::system "pwd";
print "After system: $?\n";
Before connect: 0
Before system: 0
/usr/local/bin
After system: -1
/usr/local/bin
After system: -1
這是從不同的AIX 5.3的機器的結果,我可以看到的唯一的區別是,它在運行DBD:甲骨文1.22和DBI 1.607。不過,查看這些模塊的更改日誌,我看不到任何與此相關的內容。 除了升級DBD之外,我可以嘗試的其他任何想法都可以嘗試:Oracle和DBI(因爲這是一臺生產機器,所以heintent立即執行此操作)。
給出以下輸出: /usr/local/bin 系統調用失敗:有沒有兒童進程。在./test.pl第7行。 請注意,實際的pwd命令本身已完成(輸出/ usr/local/bin)。 – Patrick 2009-07-23 10:12:11
基於該錯誤消息,找到以下鏈接,似乎是相同的行爲: http://rt.cpan.org/Public/Bug/Display.html?id=16548 – Patrick 2009-07-23 10:14:55