[代入]の検索結果


<TMPL_LOOP>タグはセクションを区切り、名前をつけることができます。この名前つきループの内側に<TMPL_VAR>タグを置き、プログラムでパラメータに代入するハッシュ・リファレンスの param() にリスト(配列リファレンス)を渡すと、リスト分の出力が繰り返されます。

以下は、<TMPL_LOOP>タグの使い方を示すサンプルプログラムです。サンプルプログラムでは、コンマで区切られたデータファイルを読み込んでリストを作成し、それをパラメータに渡してテーブルを表示しています。また、<TMPL_IF>タグ、<TMPL_ELSE>タグを使用してデータがない場合は、テーブルが出力されないようにしています。


--- データファイル(userdata.txt)

kagahiro,kitaakita,kagahiro3@59log.com,011678901
admin,tokyo,webmaster10@59log.com,011778901
buzei,kawasaki,support2@59bbs.org,041758901

--- テンプレートファイル(tmplloop.tmpl)

<html>
<head>
<title>HTML::Templateのサンプルプログラム LOOP</title>
</head>
<body>
<h1>HTML::Templateのサンプルプログラム LOOP</h1>
<TMPL_IF NAME=DATA_NUM>
    <table>
    <tr>
    <td>User Name</td>
    <td>Address</td>
    <td>Email</td>
    <td>Tel</td>
    </tr>
    <TMPL_LOOP NAME=USER_INFO>
    <tr>
    <td><TMPL_VAR NAME=USERNAME></td>
    <td><TMPL_VAR NAME=ADDRESS></td>
    <td><TMPL_VAR NAME=EMAIL></td>
    <td><TMPL_VAR NAME=TEL></td>
    </tr>
    </TMPL_LOOP>
    </table>
<TMPL_ELSE>
    No data
</TMPL_IF>
</body>
</html>

--- CGI(tmplloop.cgi)

#!/usr/bin/perl

use strict;
use warnings;

use HTML::Template;

my $template = HTML::Template->new(filename => 'tmplloop.tmpl');

my @loop_data = ();
open my $infh, '<', "userdata.txt";
while (my $rec = <$infh>) {
    chomp $rec;
    if ($rec ne '') {
        my %row_data;
        my ($username, $address, $email, $tel) = split(/,/, $rec);
        $row_data{USERNAME} = $username;
        $row_data{ADDRESS} = $address;
        $row_data{EMAIL} = $email;
        $row_data{TEL} = $tel;
        push @loop_data, \%row_data;
    }
}
close $infh;

$template->param(USER_INFO => \@loop_data);
$template->param(DATA_NUM => scalar(@loop_data));

print "Content-Type: text/html; charset=utf-8\n\n";
print $template->output;
[1975] Posted by kagahiro at 2010/07/22 17:36:36
0 point | Link (4) | Trackback (0) | Comment (0)

プログラミング言語は、数学ではないし、もちろん自然言語でもないので、その中で使われる記号の意味が数学や自然言語と異なっていたとしても何ら問題はありません。

プログラムはコンピュータに対する命令の羅列にすぎません。そして、プログラミングで使われる記号の意味は、そのプログラミング言語の作者が、「この記号はこういう命令として解釈しますよ」と定義したものに過ぎないので、数学的な意味とも自然言語的な意味ともなんの関係もないのです。

もちろん、数学的な計算を行うプログラムを作るなら数学に関する知識も必要でしょうが、プログラミング自体は命令文を順番に書いていくだけなので、数学の才能も、数学の知識も必要はありません。数学とプログラミングは別のものなのです。

歴史的にみて、当初は数学的な計算にコンピュータを利用することが多かったため、世間では数学とプログラミングに何か関係のあるようなことのように思われていますが、実際はあまり関係ないというのが実態です。

a = a + 1; /* って違和感あるはずなのに */
でまともに数学を習った人ならつっかかるはずだし、実際つっかかるなのに、ほとんどの言語が代入演算子として=を採用しているのはなぜなのだろう?
そういうわけで、私は「a = a + 1;」に対しては何のつっかかりも違和感も感じないのですが、むしろ、
数学では「なんとかなのに」という言い方で数学とプログラミングが何か関係あるような言い回しには違和感を感じます。

大体、プログラミング言語の中での記号の意味と他の世界での意味が違うのがおかしいなどと言い出したら、プログラムなど組めないですよね。

プログラミングできる人とできない人との間の深い溝

プログラムはなぜ動くのか 第2版 知っておきたいプログラミングの基礎知識
著者:矢沢 久雄
価格:2,520円
日経BP社

by Amalink

[1369] Posted by kagahiro at 2009/07/10 19:06:13
1 point | Link (1) | Trackback (1) | Comment (0)

  1  


アクセスランキング

今日のアクセスランキング TOP 10

  1. FC2まとめ (5 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (4 PV)
  3. Twitter Lite - 起動時や利用時の読み込み速度が最大30%アップ (3 PV)
  4. 2ちゃんねる(2ch) (3 PV)
  5. 大人気のブランド品即時買取サービス「CASH」がDMM.comにたったの70億円で買い叩かれる (2 PV)
  6. 無料ダイヤルアッププロバイダ「Soloot(ソルート)」 (2 PV)
  7. FC2ブログにコミュニティ機能 (2 PV)
  8. ほしい物リスト (2 PV)
  9. Hg Init: a Mercurial tutorial by Joel Spolsky (2 PV)
  10. 掲示板CGI ThreadPlus 1.2 のリリース (2 PV)

今月のアクセスランキング TOP 10

  1. FC2まとめ (13 PV)
  2. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  3. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  4. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  5. 「Kindle for the Web」 (5 PV)
  6. FC2ブログにコミュニティ機能 (4 PV)
  7. Jipanguの配布は終了しました (4 PV)
  8. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (4 PV)
  9. Twitter Lite - 起動時や利用時の読み込み速度が最大30%アップ (3 PV)
  10. 「さくらのクラウド」のオプションサービスで「専有ホスト」の提供を開始 (3 PV)

アクセス統計

ディレクトリ

関連サイト