我想在我的第一個應用程序中使用Perl Dancer模塊。第一個應用程序中創建/,其中包含此代碼調用MyWeb即可,應用程序/箱文件app.pl:所有請求的Perl Dancer index.cgi
use Dancer;
use MyWeb::App;
dance;
和一個名爲MyWeb即可,應用程序/ lib目錄/ MyWeb即可/ App.pm包含此代碼:
package MyWeb::App;
use Dancer ':syntax';
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
true;
我想要一個index.cgi文件來提供我所有的應用程序請求。我的問題是, 是否必須將我的所有操作/方法放在同一個MyWeb-App/bin/app.pl文件中,並且對於MyWeb-App/lib/MyWeb/App.pm模塊等每個操作/方法,都需要模塊 。
的原因是我的應用程序將包含數百個動作是這樣的:
get 'register' => sub {...};
post 'save_register' => sub {...};
get 'contactus' => sub {...};
post 'save_contactus' => sub {...};
.....
get 'order' => sub {...};
post 'process_order' => sub {...};
所以我必須把這樣的行動都在一個主要的index.cgi,我每次都修改這個文件我爲應用程序添加一個新操作或新模塊。
簡而言之,如何以模塊化方式進行大量操作的應用程序,以便在一個模塊文件中的每個操作都易於維護,但其他開發人員可以嚮應用程序添加單獨的模塊,而不會重疊/破壞主要的index.cgi。
以我定期無框架應用程序,我只基於路線/動作的加載模塊,所以加載每人行動路線只有一個模塊與一個簡單的邏輯是這樣的:
if ($route eq "register") { eval "use register.pm"; register(); }
elsif ($route eq "save_register") { eval "use register.pm"; save_register(); }
....
....
elsif ($route eq "contactus") { eval "use contactus.pm"; contactus(); }
我會建議發佈您的第二個問題作爲一個實際的單獨問題。 – ysth
@ysth我按照你的建議 – daliaessam