次のperl用語をど素人でも分かるように教えてください。

①値
②undef値とコンンテキスト
③スカラー変数
④演算子
⑤if文
⑥比較演算子
⑦AND条件
⑧NOT条件
⑨while制御文
⑩リスト
⑪ハッシュ
できればこれらの要素を使ったCGいが見たいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/04/30 19:33:36
  • 終了:--

回答(5件)

id:ma-kanoh No.1

ma-kanoh回答回数155ベストアンサー獲得回数42005/04/30 23:22:18

ポイント10pt

以下上記を前提にした分類です。だいたい入ってるかな。

(1)「値」とは、、上記にないな。

$a=”333”;

の”333”部分(文字列としての「さんさんさん」。「さんびゃくさんじゅうさん」という数値ではない)なんだけど。undef値はその「値」を無効にすること。context?だいたいの場合は気にしなくてもいいはずなんだけど。

①値

②undef値とコンンテキスト

③スカラー変数

(2)「演算子」

④演算子

⑥比較演算子

⑦AND条件

⑧NOT条件

(3)「制御構造」

⑤if文

⑨while制御文

(4)「データ構造」とは。簡単に言えば「変数の入れ方」。「配列」としてみればよい。

⑩リスト

⑪ハッシュ

id:tokyo_xjp No.2

tokyo_xjp回答回数284ベストアンサー獲得回数02005/04/30 19:59:03

ポイント25pt

定番中の定番ですが・・・。

id:Manami2005

えと、回答者の理解している、用語の解釈がほしいのですが。できればファイルに出来るような形で。実行できるような形で。

2005/04/30 20:08:09
id:TomCat No.3

TomCat回答回数5402ベストアンサー獲得回数2152005/04/30 22:12:49

ポイント25pt

①値

値というのは、とりあえず数値とか文字列とか、

そういうもの全般を現す言葉だと思ってください。


②undef値とコンテキスト

undefとは「未定義」ということです。

「undef値」とは、何も値が設定されていない変数が持っている値、

ということです。


コンテキストというのは、「文脈」のことだと思ってください。

perlではいちいち変数の型などを宣言しませんから、

同じ変数が、ある所では数値として扱われ、

ある所では文字列として扱われる、

というようなことが起こります。


それを決めるのは、前後の文脈。

どういうプログラムの流れの中で使われているかということで、

その変数が数値として扱われているのか、

文字列として扱われているのかが分かります。


perlの場合は同じものが使われ方によって

違う性質を帯びてきたりすることが多いので、

「コンテキスト」という言葉が多く出てくるわけです。


べつにこんな言葉、分からなくても構いません。

「コンテキスト」と出てきたら、

ああー、前後の何かだな、くらいに思っておけば十分です。


③スカラー変数

スカラー変数とは $xxx とかといった、

$で始まるごく普通の変数のことです。

普通に変数と言ったら、だいたいスカラー変数のことです。


④演算子

+ とか - とか * とか / とか、

演算に使う記号のことです。

プログラム中では他にも色んな演算が出来ますから

これら以外にも色々な演算子が出てきますが、

要は演算子と言ったら、何かの演算をする時に使う記号、

と思っていれば十分です。


⑤if文

もし何々だったら、という条件で処理を分けてやる文です。


if ( $a == 1 ) {

  print ”OK”;

} else {

  print ”Error”;

}


もし $a が 1 だったら

  OK と書き出す

そうでなかったら

  Error と書き出す


ってなもんです。


⑥比較演算子

上の if ( $a == 1 ) { の「==」が比較演算子です。

== は 同じ ということを現します。


==  eq  等しければ真を返す。

!=  ne  等しくなければ真を返す。

<   lt  左が右より小さければ真を返す。

>   gt  左が右より大きければ真を返す。

<=  le  左は右と同じかそれ以下なら真を返す。

>=  ge  左は右と同じかそれ以上なら真を返す。

<=> cmp  左右が等しければ0、左が大きければ1、右が大きければ-1を返す。


== などは算術記号で書かれた演算子は数値の比較に、

eq など文字で書かれた演算子は文字列の比較に使います。


⑦AND条件

何々「かつ」何々、という条件です。


⑧NOT条件

何々「ではない」という条件です。


⑨while制御文

while (条件) {

  # 条件が真のときはループします

  last; # この制御文に出会うとループを脱出します

  next; # この制御文に出会うとその後を無視して次のループに進みます

}


last や next は、たいてい

if (何々) {

  last;

} elsif (何々) {

  next;

}

といった感じでwhileループの中に出てきます。


⑩リスト

リストとは、簡単に言ってしまえば、

カンマで区切られたデータ、ということです。


たとえばこんな感じ。

’小泉’, ’ブッシュ’, ’ニッポン’, ’アメリカ’


よく、こんな使われ方をしますよね。

@a = (’小泉’, ’ブッシュ’, ’ニッポン’, ’アメリカ’);


⑪ハッシュ

日本語で「連想配列」などと呼ばれるもののことです。

普通の配列は @ を頭に付けて @aaa などと表し、

配列の要素は $aaa[0] とか $aaa[1] などと表していきますが、

これを分かりやすい文字を使って表したいと言う時などに

ハッシュを用います。


よく掲示板のスクリプトなんかに、

%FORM なんていう配列があったりしますが、

そういうのがハッシュ、連想配列です。


ハッシュの要素は

$FORM{”何々”}

といった文字で書き表せるので、

プログラム中で分かりやすいといった利点を持っています。


------

できればこれらの要素を使ったCGIが見たいですとのことですが、

それはたいていの掲示板などのスクリプトに見られます。


でも、perlでプログラミングをしていく時や、

他人のプログラムを読もうとする時、

あまりこういう専門用語みたいなものは

気にしない方がいいですよ。


っていうか、普通日本語でも、

これは接続詞である、これは活用のある動詞である、

なんて意識しながらは読まないですよね。


プログラムも、いちいち難しい用語なんか気にしなくていいんです。

どうしても解説書などから入っていこうとすると、

そこに出てくる専門用語が分からないと先に進めなかったりしますが、

実際にはそんな言葉を知ることよりも、

このプログラムは何をやっている、

といったことが読める方が大切なんです。


用語の知識にはこだわらずに、

自然に流れを読んでいくような取り組み方が

プログラミングの習得には大切かなと思います。

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 Spawapawa 54 41 0 2005-05-01 10:14:26
2 manimusu 773 633 0 2005-05-07 12:42:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません