人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

HTMLソースが混じったperlはコンピュータから見たら、どう認識されるのでしょうか?

●質問者: kira2007
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Perl コンピュータ ソース 認識 TM
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● kn1967
●35ポイント

WindowsもMacOSXもLinuxもファイル名によってプログラムなのかデータなのか、どのプログラム用のものなのかを判断します。

ファイル名のどこを見て判断するかというと拡張子(一番最後に.ドットで切られている部分)で行います。

仮にファイル名がxxx.yyy.plだとすると

OSは拡張子plはどのプログラム用なのかを探して、プログラムを起動しようとします。

plがPerl用だと設定(この設定の事を「関連付け」と言います)してあればPerlに渡されます。

Perlは渡されたxxx.yyy.plの内容を解析してxxx.yyy.plに書かれているプログラムを実行しようとします。

HTMLはPerlのステートメント(命令)でも関数でもありませんので、

Perl自体はHTMLをただ文字が並んでいるだけ(文字列と言います)としてしか理解できません。

文字列としてしか認識しませんのでHTMLが混じっているのだとすればエラーとなりプログラムは正常に動きませんが

HTML部分を文字列として認識するように意図してプログラムしたのであれば問題なく稼動します。

意図したプログラムの例としては、

print "<html>\r\n"; ←Perlは'もしくは"で囲まれた部分を文字列として認識して出力します
print "<head>\r\n";
print "<title>テスト</title>\r\n";
print "</head>\r\n";
print "<body>\r\n";
print "<h1>テストだよ??</h1>\r\n";
print "</body>\r\n";
print "</html>\r\n";

あるいは

print <<EOF; ←PerlはEOFまでの間の部分は解析無しにそのままの形で出力します
<html>
<title>テスト</title>
</head>
<body>
<h1>テストだよ??</h1>
</body>
</html>
EOF

のようにしたりします。

結果はいずれも

<html>
<title>テスト</title>
</head>
<body>
<h1>テストだよ??</h1>
</body>
</html>

となります。

(他にもいろいろ組み合わせますが、かなり長くなるので割愛させていただきます)

拡張子 - Wikipedia


2 ● くまっぷす
●35ポイント

http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%9...

すごーく簡単に言うと「正しくプログラムが書かれていればHTMLの部分は単なる文字列として扱われる」です。

こういうたとえでどうでしょうか。日本語で文章を書くときに、一般には「」の中は話し言葉が入ります。なので日本語の文法を知っている人は頭から「」のなかに入っている文章は地の文ではなくて、何か話された内容、引用された内容など、なんだなと思って読み進めますよね。これと同じようなことをperlは行っています。

perl(に限りませんが)のプログラムはここから実行される、という場所が決まっています。そこからperlプログラムは順番にプログラムソースを読み進めていって解釈、実行を繰り返します。プログラムが正しく動作するためにはperl自体が解釈できないHTMLは

ぐらいしか置きようがないのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ