2011-03-25 160 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