0

mojolicious について学ぶには、mojocasts のエピソード 2 に従ってください。

私は例を持っています

#!/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>

ただし、アドレスに移動するとhttp://127.0.0.1:3000/sayth/renshaw、サーバーからこのエラーが発生します。

[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>

厳密なサブを指定したとは思えません。これを修正するにはどうすればよいですか?

編集:perl 5.16.3がインストールされたcurlによってインストールされた最新バージョンを実行しています。

4

1 に答える 1

3

Mojolicious はuse strict;デフォルトで有効になっています。感謝する :)

このエラーは、perl コードで得られるものと同じです:

Bareword "fname" not allowed while "strict subs" in use at template hello.html.ep

基本的に、前にドル記号がありませんfname:

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

または、次の形式も使用できます。

@@ hello.html.ep
<!doctype html><html>
    <head><title>Placeholders</title></head>
    <body><i>Hello <%= param('fname') %> <%= param('lname') %></li></body>
</html>
于 2014-04-25T06:26:42.520 に答える