blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_2

Perl 「 モジュール 」CGI.pm 動的なドキュメント その 6 start_html の設定 (0xd4)

Perl 「 モジュール 」CGI.pm 動的なドキュメント その 6 start_html の設定 (0xd4)

目次 - Perl Index


Theme



Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0xd4 回。

CGI.pm で動的なドキュメントを生成する。その 6。

HTML ドキュメントヘッダを作成するメソッド start_html() のパラメータを確認する。その 2。

-style
-lang
-dtd



前回に引き続き、メソッド start_html() のパラメータを確認します。


-style



パラメータ「 -style 」は、カスケーディングスタイルシート ( CSS ) の指定に利用します。

-style は次の様に指定します。


print $q->start_html(-style=>{'src'=>'/styles/sytle1.css'});


これにより、HTML ヘッダの中に link タグが挿入された出力を得ることが出来ます。


<link rel="stylesheet" type="text/css" href="/styles/sytle1.css" />


type は標準で「 text/css 」が出力されますが、任意で変更することも出来る様です。詳細は後日確認します。


-lang



パラメータ「 -lang 」は、html タグにアトリビュート ( 属性 )「 language 」を挿入します。

-lang を指定しない場合、start_html() の標準では、「 lang="en-US" 」および「 xml:lang="en-US" 」が出力されます。「 en-US 」は米国英語を意味します。

アトリビュート lang には、文書で利用する言語を「 言語コード 」と呼ばれる言語情報を利用して指定します。

言語コードは、国を識別する「 国コード 」とは別に ( ISO 639 で ) 定義されたコードです。例えば「 英語 = en 」「 日本語 = ja 」「 エスペラント語 = eo 」等があります。

日本語の言語コードが jp ではなく ja であることに注意します。jp は国コードです。

MIME ヘッダ ( RFC 4646 ) や HTML4 ( RFC 1766 ) では、この 2 文字の英字からなる言語コードによって、利用言語を宣言します。

標準で出力される「 en-US 」では、「 en 」が言語コード ( primary code )、「 US 」が国コードを表します。つまり「 en-US 」は、英語の米国方言を意味します。

「 - 」で接続される後部は必須ではありませんが、国コードに限定されない副言語 ( subcode ) を指定することが出来ます。

副言語には例えば、「 en-conckney 」( ロンドン方言の英語 ) や「 i-nabajo 」( アメリカ先住民のナバホ語 ) 等があります ( 8 言語情報及びテキスト方向 - 標準情報(TR) HTML 4.0 )。

start_html() では、-lang を次の様に指定します。


print $q->start_html(-lang => 'ja');


これにより、次の出力が得られます。


<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">



-dtd



パラメータ -dtd は、公開 DTD 識別子の文字列指定に利用します。

DTD ( Document Type Definition : 文書型定義) とは、SGML や XML の文書構造の定義で、DTD 識別子はその識別に利用されるものだと理解しています。

DTD 識別子には、公開識別子 ( PUBLIC ) とシステム識別子 ( SYSTEM ) がある様ですが、start_html() の -dtd は、公開識別子を設定します。

PUBRIC は広く公開された DTD を示し、SYSTEM は特定のマシン上に存在する DTD を示します。

start_html() 標準の公開識別子は次のものです。


<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


パラメータ -dtd は次の様に指定します。


print $q->start_html(-dtd => '-//W3C//DTD HTML 4.01 Transitional//EN');


このコードからは次の出力が得られます。上記で「 DTD XHTML 1.0 」だった部分が「 DTD HTML 4.01 」に変更されています。


<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


また、標準では出力されるダブルクォートに囲まれた URI 「 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 」も省かれています。

この部分は、PUBLIC 識別子に続いて SYSTEM 識別子を示す場合の記述です。厳密な XHTML 文書や XHTML で定義された文字参照を利用する場合には、PUBRIC であっても必須となる部分とのことですが、出力例では HTML 4.01 を指定しているために省略されている訳です。

-dtd に対し、次の様に配列として指定することで、任意の SYSTEM 識別子を指定することも出来ます。


print $q->start_html(dtd => [ '-//W3C//DTD HTML 4.01 Transitional//EN', 'http://www.w3.org/TR/html4/loose.dtd' ]);


このコードの DOCTYPE 宣言は次の様になります。


<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



-dtd の解説部



CGI - perldocjp では、このパラメータ -dtd の解説部が丸ごと抜け落ちていましたので、以下にコマンド perdoc CGI で得られる出力を掲載します。

The -dtd argument can be used to specify a public DTD identifier string.
( 引数 -dtd は 利用出来ます パブリック DTD 識別子文字列の指定に. )

For example:
( 例えば: )

-dtd => '-//W3C//DTD HTML 4.01 Transitional//EN')

Alternatively, it can take public and system DTD identifiers as an array:
( あるいは, 取ることが出来ます パブリックとシステム DTD 識別子を 配列として: )

dtd => [ '-//W3C//DTD HTML 4.01 Transitional//EN', 'http://www.w3.org/TR/html4/loose.dtd' ]

For the public DTD identifier to be considered, it must be valid.
( パブリック DTD が考慮されるには, それは有効である必要があります. )

Otherwise it will be replaced by the default DTD.
( そうでないなら それは 置き換えられます 標準の DTD によって )

If the public DTD contains 'XHTML', CGI.pm will emit XML.
( もし パブリック DTD が 含むなら 'XTML' を, CGI.pm は 出力します XML を.)


0xd4 -> 0xd5 へ



国コードと言語コード。「 jp 」と「 ja 」の違いをやっと理解出来ました。次回も引き続きメソッド start_html() のパラメータを確認します。


#// FIFA ワールドカップ 2014 ブラジル ( ラスト )

今回の大会を振り返り、ドイツの優勝はとても妥当で、素晴らしい結果だと思えています。

グループリーグで貴重な同点弾を決めてチームを救ったのは、36 歳のベテラン、ミロスラフ・クローゼでしたし、決勝で試合を決めたのは、23 歳のアンドレ・シュールレと 22 歳の マリオ・ゲッツェでした。チームの中心選手のほとんどは次の大会でも中心になれる年齢層で構成されています。

監督のヨアヒム・レーブは、通算 10 年に渡る長期プランでチームを作り、チームの核は着実な堅実経営を心掛けて欧州の中心に返り咲いたバイエルン・ミュンヘンの選手たちです。そして何より、ドイツには老若男女が安心して楽しめる最高のスタジアムと最高のファンがいます。

なんだか、すべてにおいて文句の付けようのない完璧な優勝です。

でも、僕には少しモヤついた気持ちが残っていました。アルゼンチンを応援していたからというのもありますが、なんだかメッシが気になって仕様がないわけです。あんなにうなだれた MVP なんて。。

そんな今日、ある記事を見つけました。

記事を書いたのは、藤坂ガルシア千鶴さんというベテランのライターさんです。

このライターさんは、インターネットが普及するずっと以前から、地球の裏側アルゼンチンの情報を届けてくれていたライターさんです。その時の名義は、確か「 千鶴ガルシア 」だったかと思います。

選手のインタビュー等をおりまぜた現地在住ならでは記事は、ユーモアのある読みやすい文体と相まって、アルゼンチンファンの僕にとって毎月の楽しみでした。

そのライターさんが、今大会を振り返った記事を書いていた訳です。

「主役」の座に戻れなかったメッシ - Sportsnavi

で、これです。

では、どうして気持ちの整理がつかないのか。それは、リオネル・メッシに一体何が起きたのかが分からないからだ。


この記事のおかげで僕のおせっかいな杞憂は気持ちよく晴れました。セレスティブランコ。チームカラーの空の色です。

ありがとう千鶴さん。

参考情報は以下の書籍を中心に Wikipedia および各 Web サイト。それと詳しい先輩。

参考 :「Randal L. Schwartz, brian d foy, Tom Phoenix 共著 近藤 嘉雪 訳「初めての Perl 第 6 版」(オライリー・ジャパン発行 ISBN978-4-87311-567-2)」


次回 (0xd5) へ続く。

目次 - Perl Index











同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲