新規記事投稿 フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: 不都合な配列の性格に阻まれて(回答します。)
Date: 1999/02/10 17:22:11
Reference: mesh.program/00628

興味本位の質問に回答者の方達全てからお返事をいただきました。
ありがとうございます。

 回答者の方達は,にあ様のサイトに遭遇して,perlの質問に対して,回答コメント
をお書きになっているだけという関係ですね。全員男性の方で?

ちなみに,私は,N.S.E2.75のプログラムの検索処理のサブルーチンの辺りに,
にあ様のサイトのURLが記されていてそれで知りました。



>ちょっとした(簡単な、短い)コードのテストでしたらこれでも問題は無い
>でしょうけど、少し込み入ったことをしようとすると途中で何が何だか
>わからなくなる可能性もありますので、
>
>  - 適切な名前を考える手間
>  - いい加減に付けた名前が何を意味しているのか考える手間
>  - 上記のどちらのほうがコストが掛かるか考える手間:)
>
>などを比べたうえでのバランス感覚でしょうね。
>
># いつでも適切な名前を考えろ、と言っているわけではないです
># わたしもone-liner(“一行野郎”、シェルのコマンドラインで、
># "perl -e" の引数として直接入力して実行するような単純なプログラム)を
># 書くときなどは、面倒くさいので変数には大抵いい加減な名前を付けます

>それだと、他人に見せるためのプログラムとしては不親切ですよね。
>相手が知りたいのは、「あなたがどんな文字列をタイプしたか」ではなく、
>「あなたがどんなコードを実行しようとしたのか」なのですから。

>たぶん逆だと思います。というより、逆でないと将来きっと困ることになります。
>
>よい癖でも悪い癖でも、身に付けるのは簡単ですが、取り除くのは至難の
>技です。同じ癖なら、よい癖のほうを最初から身に付けておいたほうが幸せに
>なれるでしょう。

A.それ通りだと思います。一番分かり易く一番のてっとり早い。
もちろん,人に見てもらうのに適切な変数名では。

>>># ちなみに、何故「17」ではなく「16」なのか理解してます?

>
># 「配列の値の合計値」って、どういう意味で使ってます?
># 「配列に含まれる要素の数」ではないですか?

A.そうですね。要素数です。合計値は,私の場合,掲示板の記事数のカウント
する目的で算出して使っています。
>
># ヒント:
>#  $foo = "one
>#  two" .
>#  "three";
>#  $bar = "four";
>#  print $foo,
>#  $bar;
># は何を表示するか?

A.one
twothreefour

># まずご自分で考えてみて、それから実際に実行して、結果を比較して
># いただけると、もっとよかったのですが;)
>
>>@arrayを$scalarへの1回目の代入は,@arrayの配列が記述されていますので,
>>3が返ります。
>>しかし,更に@arrayの入った$scalarから更に配列へ代入すれば,それは,単なる
>>1要素に過ぎないとみなされますので,@arrayを$scalarへの2週目の代入で値は
>>1が返ります。
>
>だいたい合っていると思います。
>
># キーワード: 「スカラコンテキスト」「リスト(配列)コンテキスト」
>
>>A.上記の質問は,黒幕的存在という記事で答えました。本来は
>>foreach $keymatch(@keymatch){
>(snip)
>
># おや、「プログラミングの書法」はどうなりましたか? ;)

A.foreachの構文の書き方が荒かったですか?駱駝本の8.4は読みました。
勉強になりました。どの様に構文を書くべきかですね。
>
>>A.その様に次回から心がけます。(これだけ無作法な行為をして投稿する資格は
>>あるはずないのですが。)
>
>そんなことはありません。
>
>ほんとうに嫌がられるのは、間違った内容を投稿することでも、分かりづらい
>文章を投稿することでもありません。
>それらを指摘されても改善しようとせず、同じような投稿を繰り返すことです。
>
>「過つは人の常」。大事なのは、そのあとどうするか、です。

A.いくらなんてだも折角御忙しい時間をさいてコメントしたいただいた方達へ
の口答え的な,「報告のつもりだったのに」と言う投稿には非常に反省してます。

>
>>1.YASU様は,perlを始めて何年になりますか。
>
>最初にPerlに触れたのは、NEC PC-9801DAという古いマシンで動く、MS-DOSという
>これまた今となっては古くさい(しかし何故かWindows98の根幹を成している:)
>OSに移植された 日本語化Perl 4.036 というバージョンです。
>これが、既に曖昧になってきている記憶を辿ると、1995年のことだったと
>思います。

A.私は,3か月です。

>>2.perlのプログラミングで一番つまづいた経験はなんですか。
>
A.ユーザーパスワードの設定法(こないだの黒幕的...というforreach文,とか
実行しはじめの頃,何百回ともサーバーエラー500を食らった事です。あの時は,
本当に辛かった。(多分,サーバーのバージョンが4.036なので,perl5の
orやnotでの条件指定が出来なかった事らしい。)。
あの時は,本当にperlプログミングの才能があるのかとも感じました。
そのorやnotをそれぞれ||と!に変えてから,macperlのエラーチェックも
行う様になり,サーバーエラーに遭う確率も減りました。
>
># ある意味では、「名前の付け方」と同じ問題がここにもある、とも言えます
>
>例えばPerl5では、次の3つの文はほぼ同じ働きをしますが、それぞれの持つ
>「意味合い」は少しずつ異なっています:
>
>  foo("bar") or baz($zot, @qux);
>  baz($zot, @qux) unless foo("bar");
>  baz($zot, @qux) if not foo("bar");
>
>「TMTOWTDI、じゃあこの局面ではどうするのがベストだろう?」そういった
>自分なりのプログラミングスタイルを見出すまでの間、たくさんの「読み出し
>不能な」プログラムが、ハードディスクの中に現れては消えていきました。

A.じっくり研究してみます。
>
>>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,
>
>普段はhacking(と自分では思っている行為)をやってます:)
>ほかに、とあるISP(いわゆるプロバイダ)のサーバのお守りをしていることも
>あります。
>
>>TAD様とかにあ様と石堂様とかはかお知り合いですか。
>
>知り合いといえば知り合いです。もちろんお互いの顔や声も、ひとによっては
>本名も全く知りませんが、立派な知り合いです。
>
>―そして、三葉工房の管理者さんとも「知り合い」なのかも知れません(^^)


=================
最後に


perlでCGIのスクリプトを作成する上で,一番大切な事の1つは,私なりの私的
な意見で,済みませんが,配列を必要に応じて,全方向から動かせる様になる
事だと思います。それが,出来かによって,スクリプトも作成しやすくなる。

色々と全方向からperlを推察して,上達の為に全力をつくそうと思います。

これからも色々とお世話になりますが宜しくお願い申し上げます。