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

次のperl用語をど素人でも分かるように教えてください。
?値
?undef値とコンンテキスト
?スカラー変数
?演算子
?if文
?比較演算子
?AND条件
?NOT条件
?while制御文
?リスト
?ハッシュ
できればこれらの要素を使ったCGいが見たいです。

●質問者: Manami2005
●カテゴリ:コンピュータ 学習・教育
✍キーワード:F値 Perl スカラー テキスト ハッシュ
○ 状態 :終了
└ 回答数 : 3/5件

▽最新の回答へ

1 ● ma-kanoh
●10ポイント

http://www.rfs.jp/sitebuilder/perl

302 Found

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

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

$a=”333”;

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

?値

?undef値とコンンテキスト

?スカラー変数

(2)「演算子」

?演算子

?比較演算子

?AND条件

?NOT条件

(3)「制御構造」

?if文

?while制御文

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

?リスト

?ハッシュ

http://tech.bayashi.net/pdmemo/variable.html

変数について/Perl/CGI


2 ● tokyo_xjp
●25ポイント

http://www.tohoho-web.com/wwwperl.htm

とほほのperl入門

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

◎質問者からの返答

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


3 ● TomCat
●25ポイント

http://wisdom.sakura.ne.jp/programming/perl/

Perl????

?値

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

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


?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でプログラミングをしていく時や、

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

関連質問


●質問をもっと探す●



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