我从cpan安装了Mason模块 . 现在我正在使用mason模板执行我的第一个程序 .
first_mason.mc
% my $name = "Mason";
Hello world! Welcome to <% $name %>.
first_mason.pl
#!/usr/local/bin/perl
use Mason;
my $mason = Mason->new(comp_root => '...');
print $mason->run('first_mason.mc')->output;
这将抛出 error 如下
first_mason.mc不是C的绝对路径:/Perl/site/lib/Mason/Request.pm第256行**
Note
我将两个文件放在安装了mason的路径中(找到安装路径,我使用 perldoc -l Mason
)并使用 perl first_mason.pl
执行程序
2 回答
@stevenl完全回答你的问题 . 只是不要盲目地复制Mason文档中的概要,也需要阅读文档 . :)例如在示例代码中:
你需要更换
和shebang line
#!/usr/local/bin/perl
以及perl解释器的真实路径'...'
与文件系统中的实际路径,您的组件所在的路径,例如但是,我写这个答案主要有一个原因:如果你想使用Mason进行 web-app 开发,请检查Poet模块 . 它极大地简化了整个过程,您不需要关心许多事情 . 例如 . 安装
Poet
之后你可以简单地:并且您将立即获得(没有 any 配置)WORKING网络应用程序,您可以在浏览器中访问http://localhost:5000 . 您的
component_root
将作为myapp/comps
位于myapp
目录中 .您无需将文件放在安装Mason的目录中:
Perl应该知道在使用
use
导入时找到Mason的位置(假设您的perl安装正确) .梅森将通过
comp_root
参数知道在哪里找到.mc文件 .需要将组件名称指定为相对于
comp_root
的路径,始终以/
开头 .您需要从组件名称中省略
.mc
.因此,如果将2个文件放在主目录中,则脚本应如下所示:
来自documentation: