我使用了一些从Redis检索的Moose对象。我编写的代码可以找出正确的类,并根据需要加载它们。现在我也将它们存储在会话中,当它们被恢复时(通过会话引擎而不是我自己的Redis检索代码),会发生所需的模块尚未加载。
在考虑之后我发现这是因为我在更改路由处理程序后继续重新启动Dancer应用程序,但我的会话仍然有效。在生产中很可能不会发生。在那里,模块已经在某些时候加载,特别是因为你需要在将对象放入会话之前检索它。
但是,我想解决这个问题,因此不再需要动态加载,我不能遇到can't call method foo on an undefined value
的问题,因为模块尚未加载。但是我明智地把所有那些use
放在哪里?只有少数几个,所以预先加载它们并不是什么大不了的事。
我认为.pm
文件的主use
文件可能是有意义的app.pl
文件。或者也许app.pl
本身,虽然这似乎是错误的。这是最好的做法吗?
答案 0 :(得分:1)
〜/ lib / 你的应用名称 .pm文件将由我建议放置你的使用模块代码,因为这通常是用来处理路由的文件。