プロが教える店舗&オフィスのセキュリティ対策術

Perl全くの初心者です。「.cgi」ファイルを利用して下記のひらがな表を作成しようと考えているのですが、全くうまくいきません。。。
どのうようにソースを書いたら良いでしょうか?おしえて頂くと助かりますのでよろしくお願いします!
※1 表の罫線は外側は太線で、他の罫線はすべて破線(点線)にしたいです。
※2 あ段(あかさたな…わ)の上の部分は1マス空欄を入れたいです。
※3 CSS(スタイルシート)を使用して罫線、フォントの設定をします。

---------------
               ←この部分は空欄
わ ら や ま は な た さ か あ
り み ひ に ち し き い
を る ゆ む ふ ぬ つ す く う
れ   め へ ね て せ け え
ん ろ よ も ほ の と そ こ お

どうぞよろしくお願いします。

A 回答 (3件)

>文字コードを意識したものを


perlのエスケープシーケンスによるものですかね?

なんにしろ、文字コード表を見れば分かると思いますが、

ぁあぃいぅうぇえぉお
かがきぎくぐけげこご
さざしじすずせぜそぞ
ただちぢっつづてでとど
なにぬねの
はばぱひびぴ (略)
とならんでおり、日本人の目からしてみれば不思議な順番で並んでおり、
(五十音表どおりではなく、濁音・半濁音・促音が途中に混ざる)
単純なループ処理では日本人が見慣れた五十音表を作るのは非効率的です。
「手動」で作るのをお勧めします。

それに、perlとはいえ出力はHTMLでやるようなのでHTMLを学ばない限りは進みませんね。


>参考になるサイトでも良いのでおしえて頂けると助かりますので
私はとほほさんのところで大体分かりました。
とりあえず個人利用のみであれば文法なんか気にしなくて大丈夫です。それっぽければOK。

質問内容を見る限りでは、
<table>タグ系列と、cssの<table>関連と文字装飾だけ覚えればできます。

この回答への補足

※ご返答ありがとうございます。
初心者で、難しいと思いますが、ループ処理で作成しようと考えています。
文字の並び方については理解ができたのですが、ひらがなを文字コードを利用して出力したいのですがうまくいきません。。。
どのように、コーディングしたら良いでしょうか?
とほほさんも参考にしてみます。

補足日時:2009/04/22 15:17
    • good
    • 0

何もわかっていただけなかったようで・・・



ループ処理というのは本来規則性のある処理に対して使うものです。

@a=unpack("C*","わらやまはなたさかあ");print "@a";

を実行してみてください。
わらやまはなたさかあ を1バイトずつ文字コードの数字に変えるものです。

あなたが使う文字コードは知りませんが、数字を見てみてください。
同じ数字が何度か出るでしょうが、2バイト文字ですので必然です。
それ以外に、その中に規則性を見出すことができますでしょうか?
それらがきれいな数列に見えますでしょうか?
計算式でそれらの数値をはじき出すことができますでしょうか?
九九表のようにきれいな世界ではありません。

規則性の無いものにループ処理を適用しようとすると、条件分岐だらけになり、
処理も遅くなる、スクリプトファイルの容量が肥大化。デメリットだけが残るのです。

どうしてもというなら

@a=(
"わ","ら","や","ま","は","な","た","さ","か","あ",
" ","り"," ",(略));

のような各要素一文字の最初から五十音表を見越した配列でも作って
きれいなループ処理のように見せかけておけばいいです。
そうすると今度はメモリを喰うだけという悲劇もついてきますがね。

もういちど、「手動」をお勧めします。
    • good
    • 0

まずはHTML+CSSで希望する内容のもを作れますか?


作れないならその作り方をまず調べて下さい
作れたならその内容をprintで出力します

なんで固定の内容をCGI-Perlで出すのでしょうか?
なにか一部動的変化をかけるなら別の方法が必要となりますが?

この回答への補足

※phpとperlの学習しようと思っています。
phpに関しては九九表を作成してうまくいきました。
perlに関しては、九九表と違い文字コードを意識したものを作成してみたかったので、作成しています。
ちなみに、HTML+CSSでも希望のものは作れないのが現状です。。。
色々サイトを見ていますが、理解ができていないのが現状なので、参考になるサイトでも良いのでおしえて頂けると助かりますので、どうぞよろしくお願い致します。

補足日時:2009/04/21 22:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!