是否可以將某些Perl代碼保存到數據庫中,然後使用select
語句檢索它,然後執行該Perl代碼?我曾嘗試使用eval,但這似乎不起作用。我的Perl程序可以執行存儲在數據庫中的代碼嗎?
這裏是我想現在,它似乎並沒有工作:
my $temp = $qryResults[0];
print $temp."\n";
eval{"$temp"};
輸出$con->Disconnect();exit;
是否可以將某些Perl代碼保存到數據庫中,然後使用select
語句檢索它,然後執行該Perl代碼?我曾嘗試使用eval,但這似乎不起作用。我的Perl程序可以執行存儲在數據庫中的代碼嗎?
這裏是我想現在,它似乎並沒有工作:
my $temp = $qryResults[0];
print $temp."\n";
eval{"$temp"};
輸出$con->Disconnect();exit;
你只需要:
eval $temp;
您的版本沒有工作的原因是由於EVAL塊形式評價它,就好像你寫了一個簡單的字符串:
eval{"perl code here"}
是像寫這樣的perl行:
"perl code here"
這不是代碼,它是一個字符串。 塊表格會演示塊內的內容。如果一個字符串在塊內部,它只是一個字符串,而不是腳本。 字符串形式證明字符串中的內容。
是的。即使它們都被稱爲'eval','eval {BLOCK}'和'eval「STRING」'**都不是**可互換的。 – 2010-03-26 10:39:24
許多流淚的編程會議開始於「嘿,如果我只是使用評估......」。我的建議:不要。 – Ether 2010-03-26 17:29:30
@TheGNUGuy請解釋你爲什麼要這樣做。你的例子本身顯示出一個安全問題。還有許多許多其他人。如果你解釋*爲什麼*和*什麼*,也許我們可以提供一個更安全的選擇。 – 2010-03-26 12:02:03
請不要這樣做。告訴我們爲什麼你認爲你必須這樣做,也許我們可以帶領你走上更好的道路。 :) – 2010-03-26 17:33:04
我試圖製作一個jabber機器人,我可以用它來控制我的一臺遠程機器。我想使用數據庫來存儲機器人可以執行的命令和操作。 – cskwrd 2010-03-27 04:06:05