-1

こんにちはIF、ソースに条件を追加したところ、それ以来エラーが発生しています

_HTML_" EOF より前のどこにも文字列ターミネータが見つかりません"

しかし、削除すると機能しますIF

私は Perl と CGI の両方に不慣れで、このエラーを解決する方法がわかりません。

これが私のコードです:

#!"\xampp\perl\bin\perl.exe"

use CGI qw/:standard/;
use CGI::Cookie;

%cookies = CGI::Cookie->fetch;
$Cookie = $cookies{'USER'}->value;


if ($Cookie)
{

    print "Content-type: text/html\n\n";
    print<<_HTML_;

    <!DOCTYPE html>
    <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lt8"> <![endif]-->
    <!--[if IE 7 ]>    <html lang="en" class="no-js ie7 lt8"> <![endif]-->
    <!--[if IE 8 ]>    <html lang="en" class="no-js ie8 lt8"> <![endif]-->
    <!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
        <head>
            <meta charset="UTF-8" />
            <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  -->
            <title>Login and Registration Form with HTML5 and CSS3</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

            <link rel="shortcut icon" href="../favicon.ico"> 
            <link rel="stylesheet" type="text/css" href="css/loginpage.css" />
            <link rel="stylesheet" type="text/css" href="css/style.css" />
            <link rel="stylesheet" type="text/css" href="css/animate-custom.css" />
        </head>
        <body>
            <div class="container">
                <header>
                    <h1>User's Login Panel</h1>

                    <span>Enter your details below</span>
                </header>
                <section>               
                    <div id="container_demo" >

                        <a class="hiddenanchor" id="toregister"></a>
                        <a class="hiddenanchor" id="tologin"></a>
                        <div id="wrapper">
                            <div id="login" class="animate form">
                                <form  action="/cgi-bin/Project/logincheck.pl" method="post" autocomplete="on"> 
                                    <h1>Log in</h1> 
                                    <p> 
                                        <label for="username" class="uname" data-icon="u" > Your email or username </label>
                                        <input id="username" name="username" required type="text" placeholder="myusername or mymail@mail.com"/>
                                    </p>
                                    <p> 
                                        <label for="password" class="youpasswd" data-icon="p"> Your password </label>
                                        <input id="password" name="password" required type="password" placeholder="eg. X8df!90EO" /> 
                                    </p>
                                    <p class="keeplogin"> 
                                        <input type="checkbox" name="loginkeeping" id="loginkeeping" value="loginkeeping" /> 
                                        <label for="loginkeeping">Keep me logged in</label>
                                    </p>
                                    <p class="login button"> 
                                        <input type="submit" value="Login" /> 
                                    </p>
                                    <p class="change_link">
                                        Trouble Logging in?
                                        <a href="#toregister" class="to_register">Reset Your Password </a>
                                    </p>
                                </form>
                            </div>

                            <div id="register" class="animate form">
                                <form  action="mysuperscript.php" autocomplete="on"> 
                                    <h1>Trouble Logging In?</h1> 

                                    <p> 
                                        <label for="emailsignup" class="youmail" data-icon="e" > Your email</label>
                                        <input id="emailsignup" name="emailsignup" required type="email" placeholder="mysupermail@mail.com"/> 
                                    </p>

                                    <p class="forgotpass "> 
                                        <input class="buttonpass" type="submit" value="Send Password Reset Instructions"/> 
                                    </p>
                                    <p class="change_link">  
                                        Oh Wait My Brain Cells Started Tickling!
                                        <a href="#tologin" class="to_register"> Go and log in </a>
                                    </p>
                                </form>
                            </div>

                        </div>
                    </div>  
                </section>
            </div>
        </body>
    </html>

    _HTML_
}
exit;
4

2 に答える 2

6
    _HTML_
}
exit;

する必要があります

_HTML_
}
exit;

ただし、HTML の巨大なチャンクを の中に置かないでくださいif

少し良い代替手段として、次のようにします。

use constant _HTML_ => <<_HTML_;
   <!DOCTYPE html>
    <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lt8"> <![endif]-->
...
_HTML_

はるかに優れた代替手段として、コードをコンテンツから完全に分離します。

于 2013-04-07T10:22:11.677 に答える
4

HEREDOC は、行全体で一致を探します。先頭のスペースは無視されません。必要なもの:

    print<<_HTML_;
        bla
_HTML_

タブ/スペースを HEREDOC 文字列の一部にすることもできます。

    print<<"    _HTML_";
        bla
    _HTML_
于 2013-04-07T10:19:50.980 に答える