首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >变化莫测-赤裸裸的话-莫乔斯特2

变化莫测-赤裸裸的话-莫乔斯特2
EN

Stack Overflow用户
提问于 2014-04-25 06:05:27
回答 1查看 283关注 0票数 0

跟着摩乔斯特,第二集学习动感。

我有个例子

代码语言:javascript
运行
复制
#!/usr/bin/env perl
use Mojolicious::Lite;

get '/:fname/:lname' => sub {
    shift->render('hello');
};

app->start;

__DATA__

@@ hello.html.ep
<!doctype html><html>
    <head><title>Placeholders</title></head>
    <body><i>Hello <%= fname %> <%= $lname %></li></body>
</html>

但是,当我转到address http://127.0.0.1:3000/sayth/renshaw时,我从服务器上得到了这个错误。

代码语言:javascript
运行
复制
[Fri Apr 25 15:59:05 2014] [error] Bareword "fname" not allowed while "strict subs" in use at template hello.html.ep from DATA section line 3, <DATA> line 17.
1: <!doctype html><html>
2:     <head><title>Placeholders</title></head>
3:     <body><i>Hello <%= fname %> <%= $lname %></li></body>
4: </html>

我不相信我已经指定了严格的潜艇,我该如何解决这个问题?

编辑:我正在运行由curl安装的最新版本,安装了perl 5.16.3。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 06:26:42

默认情况下,Mojolicious启用了use strict;。感恩:)

错误与您在perl代码中得到的相同:

代码语言:javascript
运行
复制
Bareword "fname" not allowed while "strict subs" in use at template hello.html.ep

基本上,你只是在fname之前少了一个美元符号

代码语言:javascript
运行
复制
@@ hello.html.ep
<!doctype html><html>
    <head><title>Placeholders</title></head>
    <body><i>Hello <%= $fname %> <%= $lname %></li></body>
</html>

或者您也可以使用这种格式:

代码语言:javascript
运行
复制
@@ hello.html.ep
<!doctype html><html>
    <head><title>Placeholders</title></head>
    <body><i>Hello <%= param('fname') %> <%= param('lname') %></li></body>
</html>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23285305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档