2011-03-25 161 views
3

所以我試圖修改另一位程序員編寫的應用程序。該程序是用Perl編寫的,顯然使用了我沒有任何經驗的Catalyst框架。Perl催化劑應用程序修改

該代碼是有據可查的,我的修改看起來很簡單,但是當我試圖改變某些東西(在控制器中是特定的)相同的時候不起作用。我錯過了一步嗎?我打開文件進行編輯,保存,然後嘗試在瀏覽器中加載Web應用程序。我甚至刪除了其中一個控制器的全部內容,以查看它是否會破壞應用程序,而不是。

請幫忙。

感謝,

+3

你使用什麼網絡服務器?你重新啓動了嗎? – ysth 2011-03-25 18:22:50

+0

使用apache ...是否需要重新啓動? – KTastrophy 2011-03-25 18:24:28

+2

如果它在mod_perl下運行,那麼它可能會執行,mod_perl會緩存編譯後的perl源文件,並且不會檢查更改(這可以避免浪費時間來重複調用** stat(2)**)。 – 2011-03-25 20:07:05

回答

8

如果應用程序是建立在一個健全的方式(在模板中使用uri_for(_action)並沒有特別依賴於服務器/ ENV /等),你應與開發來發展服務器。有一些做法可能會使這種情況變得困難:不可能不經修改。這是你應得做 -

cd {APPLICATION DIRECTORY} 
# Read about it- 
perldoc script/*_server.pl 
# Run it- 
script/*_server.pl -r -d 

除非有東西在設置靠不住的,你會得到http://localhost:3000/與您的應用程序運行。

或者,可能是一個好主意,在你的apache設置中運行該應用程序作爲webuser。

sudo -u www script/*_server.pl -r -d 

的標誌打開調試輸出,並在重啓 - 如果有預計將成爲該用戶的文件或訪問,它可能(例如,如果使用和限制會話或緩存文件到用戶)是重要的以便每次更改應用程序中的文件時,服務器都會自動重新啓動(如果編譯)。

催化劑是開發的樂趣,開發服務器是其中的一部分。

+3

是的,這聽起來像你沒有使用開發服務器。哪一條是瘋狂的路線。請花幾個小時在Catalyst :: Manual :: Tutorial上。 – singingfish 2011-03-26 08:36:14