月宮あゆのPerl教室 Part.4

このエントリーをはてなブックマークに追加
1月宮あゆ
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
2名無しさん@お腹いっぱい。:02/02/19 14:39 ID:???
>>1 ワラタ メール公開してるし
3名無しさん@お腹いっぱい。:02/02/19 15:10 ID:???
おー!3げと。
4名無しさん@お腹いっぱい。:02/02/19 15:14 ID:???
4なのかよ!!Part.4だし。なにいってんだ。
5名無しさん@お腹いっぱい。:02/02/19 16:45 ID:???
早く教えてほしいぽ ♥ >>1
6名無しさん@お腹いっぱい。:02/02/19 16:58 ID:???
まず自己紹介きぼん
7名無しさん@お腹いっぱい。:02/02/19 23:41 ID:???
こっちはどうしたよ?
8名無しさん@お腹いっぱい。:02/02/19 23:43 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'
9名無しさん@お腹いっぱい。:02/02/20 00:02 ID:???
アフォ
10名無しさん@お腹いっぱい。:02/02/20 00:07 ID:???
>1
>8
なんかそういう人形が大阪の食い物屋の店頭にあるよな。
11名無しさん@お腹いっぱい。:02/02/20 00:25 ID:???
良スレの悪寒!!
12名無しさん@お腹いっぱい。:02/02/20 00:34 ID:???
CGIってなんですか?なんかあちこちでCGIといえばperlとかCだとか言われてますけど
何の事かさっぱりわかりません。
13名無しさん@お腹いっぱい。:02/02/20 00:39 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  COMMON GATEWAY INTERFACE
  ((ニE/⌒ヾ∞"ヽ   Httpサーバとプログラムを繋ぐためのインターフェース規格(?)
    (こ)   ∞ |こ)    CGIの条件とは
    |   ∞,|     ・そのサーバで実行できる形式である。
    |   ∞,|     ・標準入力/出力を扱える。
    |   ∞,|     ・環境変数を取得できる。
    |   ∞,|     なんだよ。
    |   ∞,|
    |   ∞,|     これさえ満たしていれば言語は問われないんだ。
    |   ∞,|     テキスト処理が得意なPerl君と高速で使える人が多いC君が
    |   ∞,|     主に使われてるよ。
    |   ∞,|    
    |   ∞,|     もちろん、PascalやLISP(?)、RUBYなどもOK。
    |   ∞,|     WIndowsNTがサーバならVBもつかえるんだよ。うぐぅ。
    |   ∞,|    \____________
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'
14名無しさん@お腹いっぱい。:02/02/20 00:46 ID:???
で、できる
15名無しさん@お腹いっぱい。:02/02/20 00:53 ID:???
上手な食い逃げの方法教えてください。
16名無しさん@お腹いっぱい。:02/02/20 01:12 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  逃げる直前まで、「お金を払うよオーラ」を出すんだよ。
  ((ニE/⌒ヾ∞"ヽ  \____________
    (こ)   ∞ |こ)
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'

17名無しさん@お腹いっぱい。:02/02/20 01:16 ID:???
>16
一行レスの時は胴体短くして下さい。
容量の無駄ですし。
18名無しさん@お腹いっぱい。:02/02/20 01:23 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  了解です。
  ((ニE/⌒ヾ∞"ヽ  \____________
      ̄し'し'  ̄
19名無しさん@お腹いっぱい。:02/02/20 01:40 ID:???
>18
あんた、極端だな(笑)
20名無しさん@お腹いっぱい。:02/02/20 01:54 ID:???
おれにはウドちゃんがコスプレしてるようにしか見えない
21名無しさん@お腹いっぱい。:02/02/20 03:21 ID:???
>>13
す、すげぇ・・・
マトモ過ぎるレスが返ってきた・・
22あゆあゆ ◆AYU.J0rE :02/02/20 09:18 ID:1Y5hFUx3
うぐぅ。もう学校の時間だよう。
どこに通ってるかって?秘密だよ♪

あゆがわかる簡単な質問なら答えるよ。
23あゆあゆ ◆AYU.J0rE :02/02/20 09:18 ID:???
うぐぅ。一人称は「ボク」だね。失敗失敗。
24名無しさん@お腹いっぱい。:02/02/20 12:19 ID:???
あゆ萌えJAPUさんはキモいですか?
25名無しさん@お腹いっぱい。:02/02/20 21:51 ID:???
 
26名無しさん@お腹いっぱい。:02/02/20 22:32 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < 何でも聞くべし。
  ((ニE/⌒ヾ∞"ヽ  \____________
      ̄し'し'  ̄
27名無しさん@お腹いっぱい。:02/02/20 22:43 ID:jTfqjt4Z
{print;shift;{}{}shift;shift;map @hoge;white(-1){shift;shift;}}
28名無しさん@お腹いっぱい。:02/02/20 22:56 ID:???
>>27
無限ループ。
29名無しさん@お腹いっぱい。:02/02/21 00:10 ID:???
うぐぅ。
30名無しさん@お腹いっぱい。:02/02/21 04:18 ID:???
>27
whiteってどんな関数だよ。
31名無しさん@お腹いっぱい。:02/02/21 09:51 ID:RO5/QDf2
>>30
ぐは、whileじゃなかった・・・。無限ループ発言撤回。
32名無しさん@お腹いっぱい。:02/02/21 17:22 ID:piBirvYG
ヲタPGは市ね
33名無しさん@お腹いっぱい。:02/02/21 17:36 ID:???
うぐぅ。 
34606:02/02/23 01:12 ID:???
35名無しさん@お腹いっぱい。:02/02/24 18:28 ID:RsG30jwz
サーバーサイドのエロゲやりたい
36名無しさん@お腹いっぱい。:02/02/24 18:44 ID:???
Cをとっても意識したつくりと思われるperlですが、
どうしてelsif,last,redoなんですか
37名無しさん@お腹いっぱい。:02/02/24 19:11 ID:???
>>36
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  パクったんじゃなくて意識しただけだからだよ。
  ((ニE/⌒ヾ∞"ヽ    自分がこっちの方がいいと思ったら変更すればいい。
    (こ)   ∞ |こ)   Perlは効率を優先した言語だからね。
    く__∞,ノ     else ifとするより2文字稼げる?
    し' し'        多分コンパイルの時点で最適化されるのかな?
                \____________
38名無しさん@お腹いっぱい。:02/02/25 21:50 ID:???
ムッシュかまやつに似てる、そっくりだ
ttp://www.webk.co.jp/singer/image.jpg
39名無しさん@お腹いっぱい。:02/02/25 23:56 ID:???
Perlで記述したCGIの、状況に応じた各種テスト方法の
オススメを一通り教えてホスイ マヂで
(逆でもOK、 :このテスト方法はこういうときに便利)

モジュールいろいろ豊富なのはイイんですが、
オレみたいなヘボーンPGはどれを選んで良いのか、
上手い答えがなかなか出せませんので、参考にさせてください
40名無しさん@お腹いっぱい。:02/02/26 00:18 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  基本だけどテストケースをしっかり作ってホワイトボックステスト。
  ((ニE/⌒ヾ∞"ヽ    職業プログラマじゃないからあんまり詳しくないよ。うぐぅ。
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
                \____________
41名無しさん@お腹いっぱい。:02/02/26 01:19 ID:???
>>40
ありがd
42sage:02/02/26 01:58 ID:whPHUYwK
CでCGI組みたいんだけど、なんか参考になる本かページないですか?
主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?
43名無しさん@お腹いっぱい。:02/02/26 02:02 ID:???
うぐぅ、名前とアドレス欄間違えた‥‥アフォだw
44代理:02/02/26 02:21 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  この辺なんてどうでしょ? 他にもあったと思うから探してみます。うぐぅ。
  ((ニE/⌒ヾ∞"ヽ   \http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
    (こ)   ∞ |こ)    \____________
    く__∞,ノ     
    し' し'        
4536:02/02/26 03:56 ID:???
>>37
ありがとうございます。
たしかにelsifもlastもredoも文字数は少ないですね
46名無しさん@お腹いっぱい。:02/02/26 08:09 ID:???
>>42
      _ _
     〃┏━━ 、
  >−       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  変なこと言うけどPerl/CGIの入門書。
  ((ニE/⌒ヾ∞"ヽ    上にも書いたけどCGIはある条件さえ満たせば言語は問われないんだ。
    (こ)   ∞ |こ)   無理してCでの入門書を探すより腐るほど出てる詳しいPerlでの本の方が参考になるよ。
    く__∞,ノ     上にも書いたけどPerlはCとかなり似ているから結構読めるよ。
    し' し'        
               暇だから簡単にまとめておくね。

               POSTの場合、データは標準入力に入る。
               GETの場合、データは環境変数QUERY_STRINGに入る。
               リモートホストなどのステータスは環境変数に入る。
               出力は標準出力に対して行う。
               出力の前にprintf("CONTENT-TYPE: text/html\r\nr\r\n");を忘れないでね。


               うぐぅ。あんまり祐一の役にたてなかった気がするよぉ。
47yani ◆NSktNEdQ :02/02/26 08:14 ID:eIw9sfNX
>主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?

(1) CでCGIを組めるサーバは一般人用にはあまりなく、従って売れ行きが期待できない
(2) CGIは結局引数というか、動作条件を環境変数から得てテキスト(HTML)を吐く
ある意味ごく普通のプログラムが基本である

あたりかな。
48yani ◆NSktNEdQ :02/02/26 08:15 ID:eIw9sfNX
>>46
タイミング良いね。
49名無しさん@お腹いっぱい。:02/02/26 08:21 ID:???
>>42
追加
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  Perl >>>>>>>>>>>>>>>>>>> Cだからだよ。
  ((ニE/⌒ヾ∞"ヽ    可変長のデータ扱うことが多かったり文字列を分割することもしばしば。
    (こ)   ∞ |こ)   言語仕様は妙だけどテキスト処理に強いPerlの方が簡単にかけるんだ。
    く__∞,ノ     けど、その代償は大きくて処理速度とシステム負荷は大きい。
    し' し'       それで、高速かつふざけた量のデータを処理する場合にはやむなくCを使うんだ。多分。 

               それと、Cがコンパイル言語だと言うことも問題だよ。
               CでCGIを組んだ場合、サーバで動くコードにコンパイルしなくちゃいけないんだ。
               (たまに.cを.cgiに変えたのに動きません。ってかわいい初心者がいるね。)
               でも、無料または一般用プロバイダが提供するサーバでGCC(CC Cコンパイラ)を
               提供しているところはtok2しかないよ。うぐぅ。
               そもそもtelnetが使えるところも少ないんだよ。
               ローカルでサーバと同じOSを使えばいいんだけどスマートじゃないよね。
               (クロスコンパイルという手もある。)
               その点Perlはインタプリタ(正確には違う。)。ソース互換は大抵の場合保証されているからお手軽なんだ。
               C/CGIの教科書を書こうとすると、
               「サーバ上でgccを使うってどうやるんですか?」
               って質問が殺到するから書きにくいのかもね。
5042:02/02/26 12:02 ID:???
色々と回答ありがとうございました。

標準入力/出力と環境変数の取得方法(>>44 のページにしっかりあった)さえ知ってれば
普通に組めそうれすね(当方、Perlはそこそこ書けるのでした)

本がないのは結局、CのCGIが一般向けじゃないってことですかね。
51名無しさん@お腹いっぱい。:02/02/26 12:08 ID:???
Perlが正確にはインタプリタじゃないってのはどいうこと?
52名無しさん@お腹いっぱい。:02/02/26 12:30 ID:???
>>51
これも微妙に違うような気もするけど、
ttp://www.aifis.ne.jp/heat/assistant/perl-intro.html
とか。

perldoc perlrunとかやるといきなり「Perlインタプリタ」って文字が出てきて鬱。
53名無しさん@お腹いっぱい。:02/02/26 14:13 ID:???
>>49
XREA( http://www.xrea.com/jp/ )もgcc逝けるよ。SSHで。
54名無しさん@お腹いっぱい。:02/02/26 21:25 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  ソースは忘れたけど、スクリプト実行時にコンパイルしてその後に実行してるんだって。
  ((ニE/⌒ヾ∞"ヽ    怖い人たちにたたかれたらやだから思わせぶりな書き方にしちゃったよぉ。
    (こ)   ∞ |こ)   ごめんなさい。
    く__∞,ノ     >>53
    し' し'        案外あるんだね。gcc OKのところ。
55名無しさん@お腹いっぱい。:02/02/26 22:07 ID:???
たしかにかまやつに似ているなぁ(笑)
5636:02/02/26 22:12 ID:???
>>54
正規表現の最後のoってあるじゃん。
m/foo/bar/o <-これ
これとか、コンパイルする部分とその場で実行する部分があることを感じさせてくれるよね。
5751:02/02/26 22:25 ID:???
なるほど、一つ賢くなったよ!
58名無しさん@お腹いっぱい。:02/02/28 19:06 ID:???
     ____                        
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴<・>∴∴.<・>|    
  |∵∵∵/ ○\∵|     
  |∵∵ /三 | 三| |  / ̄ ̄ ̄ ̄
  |∵∵ | __|__ | |< うるせー馬鹿!
   \∵ |  === .|/  \____
     \|___/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/:
59名無しさん@お腹いっぱい。:02/02/28 19:12 ID:???
>>58
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ TーT リ < うぐぅ。
  ((ニE/⌒ヾ∞"ヽ    
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
60名無しさん@お腹いっぱい。:02/03/01 20:06 ID:WMKcIrtF
       -‐- 、
     ,' /二二 ヽ/⌒l     ___________
      i イノノノ))))〉=ヲ   <以後これ採用
      ! (l| i]  i] ||  /    |
  (\ ノノノlゝ"フノ!! /   
  (∃/ヽ ^||iii》, /    
   ( ゝ 》⌒)中  |        
  [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`||
  ||  ||ニ:Iニ/_7ニヒコ    ||
  ||  ||| ||/:::::/ ||\:::ヽ   ||
  ||  ||| |に~⌒).|| (⌒”)  ||

61かまやつ:02/03/01 21:37 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  >>60
  ((ニE/⌒ヾ∞"ヽ   \却下。うぐぅ。
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
62名無しさん@お腹いっぱい。:02/03/01 23:12 ID:???
>>56
それは「変数展開は最初に実行したときのみ」って意味で、
コンパイル時に評価されるわけじゃないでしょ。

コンパイル時に実行/評価されるのはBEGINブロックね。
for (0 .. 9){
BEGIN{ print "begin\n" }
print "loop: $_\n";
}
63nobodyさん:02/03/02 05:38 ID:???
FORTRANやCOBOLでもCGIって組めますか?
64nobodyさん:02/03/02 11:28 ID:???
>>63
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  却下されちゃったから引き続きボクだよぉ。
  ((ニE/⌒ヾ∞"ヽ    はっきり言ってFORTRANもCOBOLも使ったこと無いよ〜。
    (こ)   ∞ |こ)   上の方で書いたけど、
    く__∞,ノ     
    し' し'        ・サーバで動く形式(ファイルを叩くだけで実行出来ること。 RUNの必要なBASICなどは不可。)
                ・標準入出力が扱える。
                ・環境変数が扱える

                この3点が可能ならCGIとして使えるよ。
                でも、標準入出力や環境変数って言う概念のないOSではこの限りじゃないよ。
                FORTRANなら何となく出来そうだよね。

65$_:02/03/02 11:42 ID:rGRXAcBK
期待age
66nobodyさん:02/03/02 11:49 ID:zcjkO+os
packageってどういう時に使えばいいんですか?
いまいちよくわからない・・・
67nobodyさん:02/03/02 11:49 ID:???
>>65

#!/usr/local/bin/manko

/*このスクリプトは画期的な新言語「MANKO」を使用しています*/

%doutei = @;

@ key ->> .*

whitebase(%doutei){printrash "%doutei";}

/*最後の処理*/

lastescape;

sub manko{

$kekeke = 1;

hyperif($kekeke){print "ギコハハハ";}

}

__DEAD__
68nobodyさん:02/03/02 12:32 ID:???
>>66

      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  基本的にはネームスペースの分離だと思うよ。
  ((ニE/⌒ヾ∞"ヽ    ネームスペースってわかるかな?名前空間とも書いてあるね。C++とかは。
    (こ)   ∞ |こ)   例えばtest.plをrequireするnamespace.plがあるとするよ。
    く__∞,ノ     test.plにはayuayu()っていうサブルーチンがあるとすると、
     し' し'       namespace.plではayuayu()と言うサブルーチンは定義出来ないんだ。
               プログラムはプログラマがどっちのayuayu()を呼び出したいかわからないからね。
               と、言うことは、人が作ったライブラリを使うときには細心の注意が必要。面倒だよぉ。

               そこで登場するのがパッケージ。これはある名前群をグループ化出来るんだ。

               例えば、ayuayu()がtsukimiyaと言うパッケージ内で宣言されたとすると、それはtsukimiya::ayuayu()
               となって、何もないayuayu()とは区別されるんだ(何もないはMain::に属していることになるよ。たしか。)。
               こうすれば、他のライブラリのことは全く気にせず名前を付けられるようになるよね。
               もちろん、パッケージ名は他とだぶらないようにする必要があるけどね。

               ところで、変数とサブルーチンをグループ化する機能ってどこかで見たことない?
               そう、C++などのクラスだよ。
               Perlのクラスはパッケージを使って実現されてるんだ。 
               でも、そのおかげでPerlのクラスはわかりにくい・・・って言うのがボクの私論だよ。            
69nobodyさん:02/03/02 13:50 ID:???
デフォルトパッケージはMainじゃなくmainな。
ついでにmainは省略できるので$::fooとか ::bar('arg')とかできる。

つーか知らないんなら調べてから書け。もしかして猫と同一人物か?
70$_さん:02/03/02 17:09 ID:rGRXAcBK
大文字小文字で怒るなよ・・・重箱?
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   
       | >>69        
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
   ∧ ∧ |/\_________                   
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \
72nobodyさん:02/03/02 18:03 ID:???
>>70
Perlの話ですので非Perl使いは黙ってててください。
73nobodyさん:02/03/04 01:22 ID:g+Jxs+YU
>68-69
なるほど・・・。
勉強になりました。
ありがとー。
74nobodyさん:02/03/04 05:24 ID:???
>>71
突っかかりたい年頃なんだよ
相手にするな
75nobodyさん:02/03/06 12:30 ID:???
顔がののたんです
76use Socket;:02/03/08 23:55 ID:7Mh5sc6B
良質スレあげ

ちと質問なんだけど、SSIでPerlスクリプトを叩くとき、
スクリプト自体の絶対アドレスってわからんのかな?
環境変数にはHTMLのがはいってるし
77nobodyさん:02/03/09 03:07 ID:???
$0 とかでわからなかったっけ?
78nobodyさん:02/03/09 10:57 ID:???
>>75
一緒にすんな!!ボケ
79use Socket;:02/03/09 17:04 ID:???
$0 だとファイル名になってしまう・・・
やはりTelnetでPWDして調べるしかないのかの
80nobodyさん:02/03/09 17:58 ID:???
$pwd=`/bin/pwd`;
81nobodyさん:02/03/09 23:56 ID:???
>>76
もしコマンドが許されてなくて >>80 が駄目なら Cwd.pm なんかが
ディレクトリを一個一個上がっていって調べてくれるらしいですが・・・
詳細は知らぬ。それと SSI は知らぬ。スマソ
82nobodyさん:02/03/10 01:15 ID:???
こんなんでいいかな?

my $path = ($ENV{SCRIPT_NAME} =~ /(.+\/)[^\/]+/)[0] . $ENV{_};
$path =~ s!/\./!/!g;

print $path;
83use Socket;:02/03/10 01:36 ID:???
>>81
サンクスコ。うまくいったよ。というか標準ライブラリ覚えてなさ過ぎだな。

>>82,80
環境変数もコマンドも変な値返してくるサーバーだったのね。

どうでもいいけどあゆあゆどこいったのかな?
変な厨房が追い出したとか書いてあったけど
84nobodyさん:02/03/13 23:08 ID:???
>42
オールラウンドプログラミングvol.3
 C/C++300の技
技術評論社 ISBM4-7741-1312-3
1980+税

青緑っぽい本。
わかりやすい本だとは言わないけど、CでCGIをやる場合の
サンプルコードとかが載ってるから、参考にする程度ならいいかも。
85nobodyさん:02/03/14 15:15 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < http://www.gedoh.org/aki/2ch/current/bbs/
  ((ニE/⌒ヾ∞"ヽ   \みんなが一番よく知っているサイトのC言語製CGIだよ
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'       
               
              
86nobodyさん:02/03/15 03:50 ID:???
read.c だけ見たけど、
初期とずいぶん変わったねー
87nobodyさん:02/03/15 04:12 ID:???
>>69はあゆにジェラシー(藁
88Linda³ ◆4xALiNDA :02/03/17 01:28 ID:Z8En8QVF
うぐぅ・・・祐一くんおどかさないでよ・・・
89nobodyさん:02/03/17 01:34 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < うーーーーーーーーーーぐぅぅぅぅぅ
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'       
90nobodyさん:02/03/17 01:40 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < うぐぅ、Perlってどこでダウンロードできるの? 
      し' し'       
91nobodyさん:02/03/17 01:48 ID:???
92nobodyさん:02/03/17 02:00 ID:???
>>91
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ;゚∀゚ リ  < うぐぅ、ネタだけどありがとう
      し' し'       
93nobodyさん:02/03/18 09:41 ID:???
japu逝ってヨシ
94nobodyさん:02/03/22 22:34 ID:???
なんか最近顔が変わった?
95nobodyさん:02/03/22 23:43 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < うーーーーーーーーーーぐぅぅぅぅぅ
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'   
96nobodyさん:02/03/23 00:03 ID:???
前の顔の方が良かったな。
97nobodyさん:02/03/23 00:04 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < ウグゥ━━━━━━(゚∀゚)━━━━━━ !!!!!
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'   
98nobodyさん:02/03/25 09:57 ID:???
>>96
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ;゚∀゚ リ  < うぐぅ、ボクは別人だよぅ
      し' し'       
99nobodyさん:02/03/26 03:16 ID:???
月宮先生は、Perl歴何年ですか?
何冊Perlの本を持っていますか?
Perl使えるようになるポイントは何ですか?
100アゴ:02/03/26 07:38 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < ケント・パイプカットとつくろう!PerlでCGI。これ一冊で十分。
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'



101nobodyさん:02/03/26 07:44 ID:???
背中にヘリコプターのハネ付けてるのですか?
102nobodyさん:02/03/26 08:01 ID:???
Perlを習うための心構えとは? どうぞ。
103nobodyさん:02/03/26 08:11 ID:???
>>102
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < あくまでこれは方言だと心得るべし。
  ((ニE/⌒ヾ∞"ヽ   気がついたら「ハッシュと正規表現無いと死ぬ」みたいなプログラマはダメだよ〜
    (こ)   ∞ |こ)  \____________
    く__∞,ノ
    し' し'
104nobodyさん:02/03/26 15:40 ID:???
でも便利なんだよな・・・。
105Dream ★:02/03/26 16:15 ID:???
ハッシュと正規表現無いと死ぬ〜
106nobodyさん:02/03/26 16:33 ID:???
★が目に付くなー ★が チカチカイライラ・・・
107nobodyさん:02/03/26 17:02 ID:???
俺もキャップ欲しい
108Dream ☆:02/03/26 17:59 ID:???
てへ
109nobodyさん:02/03/26 18:23 ID:???
うるせーバカ
110nobodyさん:02/03/26 18:48 ID:???
白星なのに怒られたよあうあうあ〜
111nobodyさん:02/03/26 21:25 ID:???
Perlを習得するには何が必要ですか?
112nobodyさん:02/03/26 22:25 ID:???
Kentサマへの崇拝
113nobodyさん:02/03/26 23:10 ID:???
>>111
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < OSとPerl処理系とエディタ(うぐぅ、あたりまえだよ〜)。
  ((ニE/⌒ヾ∞"ヽ   後、参考書は一冊買っておいた方がいいよ〜。
    (こ)   ∞ |こ)  すぐわかるPerlがおすすめ。
    く__∞,ノ    でも、オブジェクト指向とかパッケージには触れてないから注意。
    し' し'       CGIは書けてもここの話には付いていけないよ〜うぐぅ。
              \____________
114nobodyさん:02/03/26 23:31 ID:???
いよぅ!かまやつ!
むっしゅむらむら
115nobodyさん:02/03/26 23:34 ID:???
>111
Perl神の降臨を待つのみです。 さあ、祈るのです。
116nobodyさん:02/03/27 00:23 ID:???
>>113
ヘリコプターさん、
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=621
これですね。その本。
KENTの本はどうですか?
CGIは書くですか? PerlでCGIとして動作するプログラムを
書くのではないのですか?
117nobodyさん:02/03/27 00:34 ID:???
>>103
ヘリコプターをなぜつけているのですか?
118nobodyさん:02/03/27 00:42 ID:fVOwp8nR
for($i=0;$i<50000;$i++){
&openfile($file); # openfile は $file を開いて @in に代入する関数
foreach(@in){
s/a//g;
}
}

これでね、$file を10KB と 100KB のものにした場合、なぜか10KB のものの
ほうが処理時間がかかっちゃうんだけどこの理由わかりる?
119nobodyさん:02/03/27 08:39 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < 今回は自分の発想を大切にしようと思い、掲示板とかの作り方に関する本は読んでないよ。ボク。
  ((ニE/⌒ヾ∞"ヽ   唯一読んだのが「すぐわかる」。
    (こ)   ∞ |こ)  他の言語本と比べてもかなりいい本なので大推薦したの。
    く__∞,ノ    
    し' し'      正解。PerlでCGIというインターフェースに則ったプログラムを書くんだよ。
              後、あゆ、ヘリコプターじゃないもん。
              \____________
120nobodyさん:02/03/27 08:40 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <後、ムッシュかまやつでもウド君でもないもん!
  ((ニE/⌒ヾ∞"ヽ   
    (こ)   ∞ |こ)
    く__∞,ノ    
    し' し'      
              
              \____________
121nobodyさん:02/03/27 14:55 ID:???
        ||
        ||
      _||
     〃┏━━ 、
    | ┃ メ  |
    | ┃ | |
    | ┃ テ  |
    | ┃ ル  |
     |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´_ゝ` リ < ウグググググゥゥゥ....
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)  †  |こ)
   《《く__∞,ノ
     |O| |O|
     |O| |O|
     |O| |O|
     |O| |O|
     |O| |O|
     し' し'      
122nobodyさん:02/03/27 16:09 ID:???
>>121
ワラタ
123nobodyさん:02/03/27 18:25 ID:???
age
124nobodyさん:02/03/28 05:42 ID:QmuV5sFD
>>118
10kbのファイルは1万行で100kbのファイルは1行とか?
125nobodyさん:02/03/28 07:35 ID:UW9Ws4eZ
2ちゃんねらーの力で子供達を救おうよ(連日連夜 祭り開催中!)
何処の板から来たかを明記してくれると、みんなのやる気が上がります!
【クリック】 押してみっかなPart2【クリック】http://live.2ch.net/test/read.cgi/festival/1015607977/l50
126nobodyさん:02/03/28 07:36 ID:???
>>125
目障りだな。規制以来出すか。
127nobodyさん:02/03/28 17:20 ID:???
>>119
今朝の13話、話がよく分からなかったのですが。。
128nobodyさん:02/03/30 12:55 ID:???
       _ _
      〃┏━━ 、
      |  ノノソハ)))_ 
    /リリ ´ー`)リ/\ うぐぅ
   /| ̄ ̄ ̄ ̄ ̄|\/
     |愛媛みかん|/
129nobodyさん:02/03/30 17:50 ID:???
>>128
採用
130nobodyさん:02/03/31 03:08 ID:???
    ほれ、テンプレ
\____  ______/
             ∨
_______ _   ボコッ。
____ 〃┏━━ 、 _γ⌒⌒ヽ、
____. |  ノノソハ)))ヾ \ノハ)ヽ))   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
___(\リリ;´Д`)リ#]つ)○);´Д`) <  痛いですぅ〜。
___(ニE( #]つo"/ ⊂[||L[X⊂[||)   \________
___∠__∞__/    く7ココココヘゝ
___ し' (_f)    (゚_(゚_)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
131nobodyさん:02/03/31 18:17 ID:???
AA荒らしはこちらでどうぞ
http://wow.bbspink.com/leaf/
132nobodyさん:02/03/31 20:56 ID:???
          __
        //´ ̄ ヽ        / ̄ ̄ ̄ ̄ ̄
          i ノリノ)))〉       |
     , '^ ーノl(l!゚ ヮ゚ノリ‐' ヽ     < 嫌っ
   ノ , リノjjノ'(.II 中.II)jルjソi      |
  ('"´   "^く 中|   ノ     \_____
    `        じ'フ
133nobodyさん:02/04/05 21:51 ID:x+hR6+xK
奇跡でみずほタンを何とかしてください
134nobodyさん:02/04/05 22:50 ID:???
       _ _
      〃┏━━ 、
      |  ノノソハ)))_  Perlじゃむりだよぉ
    /リリ ´ー`)リ/\ うぐぅ
   /| ̄ ̄ ̄ ̄ ̄|\/
     |愛媛みかん|/
135nobodyさん:02/04/09 07:17 ID:???
??
136nobodyさん:02/04/18 21:20 ID:vObLTJgR
age
137nobodyさん:02/04/18 21:43 ID:9hkDClnY
ペーペーなんですが、サルでもわかる参考書教えてください。
138nobodyさん:02/04/18 21:46 ID:???
>137
【Perl,CGI】参考書籍 第2版
ttp://pc.2ch.net/test/read.cgi/php/988809842/
139nobodyさん:02/04/18 21:47 ID:???
>>137
うぐぅ。過去ログ読んで酔う。
140nobodyさん:02/04/18 21:54 ID:???
ありがとござました
141nobodyさん:02/04/20 02:08 ID:ajIKEcTR

このスレの発展を祈ってバンザーイ♪

http://homepage2.nifty.com/satp/imgboard/img-box/img20020418205910.gif
142nobodyさん:02/04/22 19:00 ID:???
うぐぅさん、厨な質問をきいていただけますか?
143nobodyさん:02/05/01 17:36 ID:9tGEKAi6
あげ
144nobodyさん:02/05/16 01:44 ID:???
ほぜん
145nobodyさん:02/05/24 00:27 ID:???
<html><head><title>KANONの魅力</title></head>
<body>すべての始まりは秋子さん<br>
<img src=Akiko.jpg><br>そして伝説が始まる…
</body></html>
146nobodyさん:02/05/25 03:32 ID:???
>>145
チェックの結果は以下のとおりです。
HTML4.01 Transitional としてチェックしました。
8個のエラーがありました。このHTMLは 1点です。タグが 6種類 7組使われています。

先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています(減点数ではありません)。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

8: line 1: 最初の記述が DOCTYPE宣言ではありません。 → 解説 2
1: line 1: <HTML> には LANG 属性を指定するようにしましょう。 → 解説 110
0: line 1: (<HEAD>〜</HEAD> 内に <LINK REV="MADE" HREF="mailto:〜"> が含まれていません。) → 解説 113
0: line 1: (<HEAD>〜</HEAD> 内に <LINK REL="NEXT" HREF="〜"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 114
4: line 1: <HEAD>〜</HEAD> 内に <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="〜"> が含まれていません。 → 解説 117
0: line 3: (<IMG> の SRC の属性値 `Akiko.jpg` が引用符で囲まれていません。) → 解説 92
6: line 3: <IMG> には ALT 属性が必要です。 → 解説 82
0: line 3: (<IMG> には WIDTH と HEIGHT 属性を指定するようにしましょう。) → 解説 165
147nobodyさん:02/06/09 00:17 ID:???
あゆがいねえー
148nobodyさん:02/06/11 16:19 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  帰ってきた
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
149nobodyさん:02/06/24 22:05 ID:esiRtk+f
(=゚ω゚)ノぃょぅ
150Perler:02/06/24 22:22 ID:???
久しぶりに来てみた。
151nobodyさん:02/06/25 15:57 ID:GD8HyrKF
152FOR LOVERS:02/06/25 16:07 ID:y3UvfTKA
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
[email protected]


153nobodyさん:02/06/25 17:55 ID:g4wy6DfA
perlのCGIにhttpさせるやり方教えてください。
154hoge:02/06/25 19:13 ID:j0DYF6ca
>>153

use LWP::Simple;

or

use LWP::UserAgent;
155nobodyさん:02/06/28 21:26 ID:XZlkpNpu
>>154さん
ありがとうございます。まだ意味がわかりませんが
その言葉で検索かけてみます。
156nobodyさん?:02/06/28 21:32 ID:???
httpって何だろうと思ったが、httpを使った通信ですか。
157nobodyさん:02/06/30 03:30 ID:???
懐かしいスレがあがってますな。うぐぅ。
158nobodyさん:02/07/02 14:06 ID:bleSkaPh
月宮さーん
がんばってね。
159nobodyさん:02/07/14 17:40 ID:???
うにゅ
160nobodyさん:02/07/23 10:43 ID:ghlElUX/
age
161nobodyさん:02/07/25 02:10 ID:/52BoRCi
perlについての質問です。実行するとたとえばユーザー名、パスワードを送信してくれる
プログラムを作りたいのですが、どのようなライブラリ、関数を使えばよいのでしょうか?
キーワードだけでも教えてください、お願いします。
162nobodyさん:02/07/25 03:33 ID:???
ネタスレに書くなよおめー。
それと質問が意味不明だ。
163nobodyさん:02/07/31 22:52 ID:???
s
164nobodyさん:02/08/10 08:00 ID:XeEMyPNM
asdkasp
165nobodyさん:02/08/15 17:17 ID:???
えげぇ
166nobodyさん:02/08/22 19:40 ID:???
さいならっきょ
167nobodyさん:02/08/26 08:54 ID:Us+tWRjS
もう終わりですか?
168nobodyさん:02/08/26 10:15 ID:???
>>161
相手次第。ネットワーク越しかい?
169nobodyさん:02/08/30 08:45 ID:???
>>161
メールなら sendmail で検索して調べる
パスワードをランダムで生成する

@letters = ("0" .. "9", "a" .. "z", "A" .. "Z");
srand;

$password = "";

until(length $password == 8){
    $password .= $letters[rand ($#letters + 1)];
}
170nobodyさん:02/08/31 09:47 ID:???
>>169
$password .= $letters[int(rand ($#letters + 1))];
171nobodyさん:02/09/21 20:50 ID:???
psdfps
172 ◆eCyy.... :02/09/29 16:06 ID:SRy9XARQ
test
173 ◆aqiw.... :02/09/29 16:09 ID:SRy9XARQ
testestestestest
174 ◆d7pJ.... :02/09/29 16:11 ID:SRy9XARQ
testing....
175 ◆1D1g.... :02/09/29 16:21 ID:SRy9XARQ
unting style
176 ◆a221.... :02/09/29 16:29 ID:SRy9XARQ
unching
177 ◆zWhs.... :02/09/29 16:35 ID:SRy9XARQ
sexing
178 ◆uE7i.... :02/09/29 16:36 ID:SRy9XARQ
homosexual
179 ◆3dGH.... :02/09/29 17:00 ID:SRy9XARQ
SEX
180 ◆HImu.... :02/09/29 17:03 ID:SRy9XARQ
sex-siyo-yo
181 ◆8yWF.... :02/09/29 17:08 ID:SRy9XARQ
>>47のうんこくさすぎ
182 ◆3nAmKeeA :02/09/29 17:47 ID:Tm1puShE
#gigigi8788
183nobodyさん:02/09/29 20:22 ID:???
なんだこの厨房は。
184nobodyさん:02/10/01 23:42 ID:???
こいつは一体何がしたいんだ。
185nobodyさん:02/10/07 00:31 ID:???
       -‐- 、
     ,' /二二 ヽ/⌒l     ___________
      i イノノノ))))〉=ヲ   < >118の答えがわかりません。
      ! (l| i]  i] ||  /    |
  (\ ノノノlゝ"フノ!! /   
  (∃/ヽ ^||iii》, /    
   ( ゝ 》⌒)中  |        
  [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`||
  ||  ||ニ:Iニ/_7ニヒコ    ||
  ||  ||| ||/:::::/ ||\:::ヽ   ||
  ||  ||| |に~⌒).|| (⌒”)  ||
186月宮あゆ ◆XalkKQX1is :02/10/10 07:23 ID:???
ボクが乗っ取っちゃおうかな
187>>186:02/10/11 18:04 ID:yEGdgJzi
了承。
188月宮あゆ ◆XalkKQX1is :02/10/12 14:00 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)

乗っ取ることにしちゃったよ。
本当にゆっくりのペースでボクといっしょに勉強していこうね。
実はボクもまだまだ初心者なんだけどね。。
「こういうのはどうやるの?」っていうのは他のスレで聞いてね。
ボクがここで言ったことに対しての質問はここで聞いてくれていいよ。

WebProg板、だから、PerlでCGIを作るってことを前提に進めていこうね
質問があったら、このスレに書き込んでくれたら、
ボクに分かる範囲なら答えられるかもね
あ、最低限HTMLの知識は必要だからそのへんよろしくね。

あと、フリーのCGIでもいいから設置経験があったらいいね。
少しでも中をいじってみたことがあるっていうならなおいいね。

あと、わかりやすくするためなら、かなり強引な解釈で説明してる
ところもあるけど、とりあえずはあまり気にしないでね。

自分でCGIを作る、っていうのは、とても危険なことなんだ。
例えば、お金も持ってないのにたい焼きを買うくらい。
下手をすると、サーバーをダウンさせたりすることもできるから、
自分で作ったものはちゃんとテストして設置しないとダメだよ。

ttp://www.kent-web.com/www/
ここのページで、CGIをローカル(自分のパソコン)で動かす方法を
紹介してるから、参考にしてやってみてね。

じゃあ、今日の話はこのへんで終わるね。
189nobodyさん:02/10/12 20:10 ID:???
おわ。久々に昔の感じだな。
190nobodyさん:02/10/13 02:16 ID:???
>>185のAAのがいいね。
191月宮あゆ ◆XalkKQX1is :02/10/13 10:32 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <ヘッダとボディ
 (ニE(#つo⊂#)

まず、覚える決まり事があるから覚えようね
1行目には、【Perlへのパス】っていうものを書くんだよ。
これは、動作させたいサーバーによって変わったりするんだよね。
わからないときは、設置サーバーに問い合わせようね。
ボクはボクが使ってるサーバーに合わせて書くから、適当に変えてね。
 ↓ こんなふうに1行で書くよ。
#!/usr/local/bin/perl

HTMLには、 <head> タグと <body> タグがあるよね?
Perlにも、これとなんとなく似た感じのものがあるんだよ。
ヘッダとボディ、っていうのがあって、ヘッダには、HTMLと同じように
実際画面には表示されない部分みたいなものを書くんだよ。
ボディは、画面に表示される部分なんだよ。

その次に、「このCGIはHTMLを書き出すよ」っていうことを
ちゃんと示さないとダメなんだ。
だから、次の行を、書き入れてみてね。

print "Content-type: text/html;\n\n";

とりあえず、今は深い意味は考えなくてもいいよ。
ここで出てくる、 \n っていうのは、「改行」を表すことなんだ。
【1行目】〜【2回 \n が続くところ】までがヘッダ、あとはボディ。
これはすごく大切だから覚えておいてね。
print っていうのは、「表示する」ってことだと、とりあえずは
思っててくれて大丈夫だよ。
またあとの方で、詳しく説明するからね。
192nobodyさん:02/10/13 21:23 ID:???
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
193nobodyさん:02/10/13 21:56 ID:???
できることなら
Content-Type: text/html; charset=EUC-JP
のように charset も出してあげませう。
194月宮あゆ ◆XalkKQX1is :02/10/14 09:43 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(1:ソース)
 (ニE(#つo⊂#)

前回ちょっとお話したけど、 print っていう【関数】を使って、
実際に何か表示してみようね。
このソースを、 perl0001.cgi とかのファイル名で保存してね。

-[perl0001.cgi]-------------------------------------------------
#!/usr/local/bin/perl

# ヘッダ
print "Content-type: text/html;\n\n";

# ボディ
print "<html>\n";
print "<body>\n";
print "うぐぅ\n";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

保存する場所は、最初に挙げたHPの解説通りにやっていれば、
C:\www\home\perl\ ぐらいに保存してね。(perlフォルダは作ってね)

そして、AnHttpdを起動して、↓にアクセスしてみてね。
http://127.0.0.1/perl/perl0001.cgi

細かい解説は次にしていくね。
195月宮あゆ ◆XalkKQX1is :02/10/14 09:44 ID:???
>>192
ちょっとよく意味がわからないけど…
ちゃんと動くならそれでいいとおもうよ
>>193
文字コードの話はもうちょっと後で
お話ししようと思ってたんだけど…
196nobodyさん:02/10/14 16:08 ID:???
たのしいのかヲタ
197月宮あゆ ◆XalkKQX1is :02/10/15 07:40 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(2:解説)
 (ニE(#つo⊂#)

□ 文
1行を「文」って呼ぶよ。最後には、必ず ; をつけてね。
これは、英語の文の最後にピリオド . がついているような感じ。
文の最後にはつけるようにしないと動かないよ。
ボクもたまに書くの忘れてエラー起こしちゃうんだ。

□ #…
# よりあとは、コメントになって、あってもなくても同じだよ。
HTMLの、 <!-- --> みたいな感じだね。

□ \n
\n は改行を表すよ。PerlでCGIを作るときには、
出力する【HTMLソースが改行されるだけ】だから気をつけてね。
表示上、改行したいときは、 <br> を使わないといけないよ。

□ print "●"
● の部分に、表示したい文字を入れるよ。
ファイルハンドルっていうものに関係があるんだけど、もっと後でね。

□ exit
【スクリプト】を終了させるときに使うんだよ。
これがなくても最後までいったら自動で終了するけど、
構造が複雑になってきたら見にくいから書く習慣があった方がいいね。

これで君もPerlプログラマーになれたんだよ。
でもこんな文字を出すだけなんてこと、HTMLでやればいいよね。
次はあんまり面白くないけど、Perlだからできることを勉強するよ。
198ヲタ:02/10/15 18:46 ID:???
>>196
楽しいですが、何か?
199月宮あゆ ◆XalkKQX1is :02/10/16 08:05 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <変数、配列、連想配列(1:説明)
 (ニE(#つo⊂#)

じゃあ今回は、変数、配列、連想配列のみっつを覚えようね。
今回は簡単だから説明だけ聞いてね。
次回は使い方を説明するよ。

変数…例えれば、メモ帳1枚に名前をつけたもの。
   自由に書いたり、消したり、書き換えたりできるよ。
   「スカラー」「スカラー変数」とかいうこともあるよ
   「abcの紙」みたいに指定できるよ。
   「abcの紙」って指定したいときは、 $abc って書けばいいよ。

配列…例えれば、名前をつけたメモ帳1冊。
   0ページから始まって、何ページでも増やせるよ。
   「リスト」とかいうこともあるよ。
   「abcメモ帳の2ページめ」みたいな感じで指定するよ。
   こんなふうに指定したいなら、 $abc[2] って書くといいよ。

連想配列…例えれば、名前がついたメモ帳1冊の紙1枚ずつに、
     それぞれ名前違うがついたもの。
     「ハッシュ」っていうこともあるよ。
     「abcメモ帳のxyzのページ」みたいに指定するよ。
     こんな感じなら、 $abc{xyz} って書くことができるよ。

次は簡単な例を見てみようね。
200月宮あゆ ◆XalkKQX1is :02/10/16 08:06 ID:???
200だね
201 :02/10/17 03:03 ID:nUzJ4slF
何気に続いてるんですね。気にしてなかった…
202nobodyさん:02/10/17 03:12 ID:???
ハイレベルな話題も希望
203nobodyさん:02/10/17 05:05 ID:???
まだ、このスレあったのか
204月宮あゆ ◆XalkKQX1is :02/10/17 17:51 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <変数、配列、連想配列(2:実行例)
 (ニE(#つo⊂#)

□ 変数への書き込み方
$abc = "うぐぅ";

こんな感じにすると、【変数】 $abc には、 「うぐぅ」という
【文字列】が書き込まれたことになるよ。
同じように、

$abc[0] = "月宮あゆ"; # 配列
$abc{def} = "水瀬名雪"; # ハッシュ

みたいなこともできるよ。

□ 変数からの読み込み方
たとえば、 $abc の内容を表示したいっていうときは、

print "$abc";

ってかくとできるよ。
他にも方法はあるけど、とりあえずこれだけ覚えてるといいかな。


ここまでの説明なら、「こんなものが何の役に立つかわからない」と
思う人が多いと思うけど、【変数】がなかったら、何もできないよ。
じゃあ次からは実際に使用例を見ていこうね。
205月宮あゆ ◆XalkKQX1is :02/10/17 17:52 ID:???
>>201
うぐぅ
>>202
ハイレベルな話題は、たぶんボクにはできないかな…
>>203
うぐぅ
206nobodyさん:02/10/17 20:06 ID:???
これくらいの初歩からやってくれた方が漏れにとってはいいよ。
207nobodyさん:02/10/17 23:04 ID:???
ストーブはどう作るの?冬にかけて
208nobodyさん:02/10/18 03:57 ID:???
>>206
漏れも同じ
sage進行でマターリとおながいします。>ALL
209月宮あゆ ◆XalkKQX1is :02/10/18 21:02 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(1:ソース)
 (ニE(#つo⊂#)

じゃあ今回は時計を表示してみよう。
ソースはこんな感じだよ。

-[perl0002.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

C:\www\home\perl\perl0002.cgi に保存して、アクセスしてみてね。
http://127.0.0.1/perl/perl0002.cgi

詳しい解説は次にまとめてするね。
210月宮あゆ ◆XalkKQX1is :02/10/18 21:03 ID:???
>>206
うん、ボクと一緒に勉強しようね
>>207
そういう会社に入ってみればいいんじゃないのかな
>>208
マターリやっていこうね、よろしく
211nobodyさん:02/10/18 22:44 ID:???
こんなきもい時計やだよ
212rubyist@カラアゲうまうま:02/10/19 09:15 ID:???
同感。まあ、糞言語らしいといえばそうかな。
213月宮あゆ ◆XalkKQX1is :02/10/19 12:32 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(2:解説)
 (ニE(#つo⊂#)   算術演算子(1:加法演算子)

Line 5:カッコの中は、秒,分,時,日,月(※1),年(※2)でできてるよ。
    localtime で、時間を変数に書き込むんだけど、
    これは丸覚えでいいよ。また今度詳しく説明するね。
    この例では、6個の変数にそれぞれ書き込んでるよ。

Line11:print の中には【変数】を書くこともできるよ。
    その【変数に書き込まれてる文字や数値】を表示するよ。

※注意
月は、実際の月より、1少なくなってるよ。
実際、表示に使うなら、1足して使ってね。
同じように、年は、西暦より1900少なくなってるよ。
【変数】を計算(この例なら月に1を、年に1900を足す)するには、
次のように書くだけで簡単にできるよ。

$mon ++;
$year += 1900;

● ++
っていうのは、変数●に1を足すっていうことだね。
$mon += 1;
と書いてもできるよ。

● += ◆
で、変数●に、数値◆を足すっていうことだよ。

ぜひ年と月も表示できるように改造してみてね、答えは次回書くよ。
214nobodyさん:02/10/19 13:03 ID:OUy8ZxhU
質問です。
foreach(split(/<>/,$line)){}
は必要な部分を順に取り出しているのか、
それとも一度無名配列に入れるようなことをしているのか教えてください。
215nobodyさん:02/10/19 13:51 ID:???
後者じゃ
216nobodyさん:02/10/19 14:03 ID:???
>>215 しくしく。ありがとうございます。変数が大きいのですが、
substrは毎回先頭から数えているような感じがするのですが、
変数使用を少なくする場合これしかないのでしょうか。
217にひゃくじゅうご:02/10/19 14:06 ID:???
index で'<>'をサーチ位置指定でやって、substr で部分取り出し
218nobodyさん:02/10/19 14:10 ID:???
どうもありがとうございました。
219nobodyさん:02/10/19 14:21 ID:???
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;
$year+=1900;
$mon++;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;

こうかね。
220nobodyさん:02/10/19 15:31 ID:???
あゆあゆ以外が質問に答えるなよばか!
221nobodyさん:02/10/19 18:12 ID:???
スレッド・ストッパーキタ━━━━(゚∀゚)━━━━!!!!

              ↓
222nobodyさん:02/10/19 23:56 ID:8H09/WLZ
↑ごめん

222ゲトー
223月宮あゆ ◆XalkKQX1is :02/10/20 12:38 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(3:年月日を表示)
 (ニE(#つo⊂#)

じゃあ前回の答えだね。

-[perl0003.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;

$mon ++;
$year += 1900;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

今回はもう行数がなくなっちゃったから終わりだけど、
次は曜日を表示してみようね。
224 ◆FruitsMIpE :02/10/20 12:39 ID:???
>>219
うん、そうだね。
>>220
ボクもわからないことが多いからね…
>>221
ストップされちゃうの…?このスレ…
225月宮あゆ ◆XalkKQX1is :02/10/20 12:40 ID:???
↑トリップ間違えました
226月宮あゆ ◆XalkKQX1is :02/10/22 06:51 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <if の文
 (ニE(#つo⊂#)

($sec, $min, $hour, $day, $mon, $year) = localtime time;

この部分を、

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

こんな感じに変えると、 $week には曜日が書き込まれるよ。
でも【曜日は数字】なんだよね…
日曜日なら0、月曜日なら1…土曜日なら6が $week には入ってる。

今日が何曜日か表示したい!のに、数字じゃ困るよね。
そこで if を使ってみよう。

if(●){◆}
機能説明:もし●なら、◆する。
●…条件。 ◆…処理。



if($week == 0){$you = "日";}
if($week == 1){$you = "月";}
  :
if($week == 6){$you = "土";}

== っていうのは、左辺と右辺が等しい、っていう意味だよ。

このへんを使って、曜日を出してみてね。答えは次回載せるよ。
227こうだろ:02/10/22 19:25 ID:???
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

if ($week == 0) {$you = "日"; }
if ($week == 1) {$you = "月"; }
if ($week == 2) {$you = "火"; }
if ($week == 3) {$you = "水"; }
if ($week == 4) {$you = "木"; }
if ($week == 5) {$you = "金"; }
if ($week == 6) {$you = "土"; }

$mon ++;
$year += 1900;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec−$you曜日<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
228nobodyさん:02/10/22 23:16 ID:???
$year/$mon/$day($you) - $hour:$min:$sec
の方が綺麗だな。
229むしろこう:02/10/23 00:29 ID:???
#!/usr/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

$mon ++;
$year += 1900;
@you = (
"日",
"月",
"火",
"水",
"木",
"金",
"土"
);

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec−@you[$week]曜日<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
230むしろこう(さらに改良):02/10/23 00:45 ID:???
#!/usr/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

@tuki = ("Jan","Feb","Mar","Apl","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
@you = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day-$tuki[$mon]-$year($you[$week]) -- $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
231nobodyさん:02/10/23 01:28 ID:???
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

@tuki = ("Jan","Feb","Mar","Apl","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
@you = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day-$tuki[$mon]-$year\($you[$week]\) -- $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
233むしろこう:02/10/23 23:48 ID:???
>>232
perlのパスは俺の場合/usr/bin/perlなんだよ・・・。
エスケープ忘れてたし・・・。
でも""の中で()は一応エスケープされてると思うんだけど。
ちゃんと実行して検証しているし。
やっぱエスケープは礼儀ということか・・・。
234nobodyさん:02/10/24 01:43 ID:???
だからまだ習ってない配列とか先に進むなっての(;´Д`)
235nobodyさん:02/10/24 20:31 ID:???
      _ _
      〃┏━━ 、
      |  ノノソハ)))  / ̄ ̄ ̄ ̄
    Λ_リリ ;´∀`)リ < うぐぅあげ♪
   ( ⊂#~ ∞~~#⊃ \____
   ( つ/_∞__|~
   |(__)_)
   (__)_)
236nobodyさん:02/10/25 00:18 ID:???
他で習ったよ
237月宮あゆ ◆XalkKQX1is :02/10/25 14:26 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <曜日を表示
 (ニE(#つo⊂#)

>>227 が答えだね。。
配列とか使ってやるのは、もっと先に応用例としてあげたいから、
勝手に応用を使わないでほしいな…

今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね…
ちょっと考えとくね
238月宮あゆ ◆XalkKQX1is :02/10/26 02:46 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <配列の扱い方
 (ニE(#つo⊂#)

ちょっと配列の話が出てきたから説明するね
配列は、 $abc[0] とかで扱えるんだけど、
@abc で、[0] から 最後まで全部、っていう意味があるんだよ。

@you = ("日", "月", "火", "水", "木", "金", "土");

こういう感じで、0ページめから順番に値をいれることができるんだ。
こういうのを【要素】っていうから覚えておいてね。
最初の要素は、1じゃなくて0だから気を付けてね。

この例で、 $you[0] には、「日」、 $you[1] には、「月」…
っていう具合に、 $you[6] まで入ってるよ。

[ ] の中は、変数も使えるから、曜日の話には応用できるね。
こっちのほうが書き方がシンプルで好きだから、
ボクはいつも配列を使ってやってるよ。
ちなみに、連想配列の、「全部の要素」は、 % をつけて表すよ。

じゃあ、前回のソースを書き替えてみようね。

@you = ("日", "月", "火", "水", "木", "金", "土");
($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;
print "$you[$week] 曜日";

ってこんな感じで曜日が出るね。
行数がなくなったから簡潔でごめんね。
次回は、ひととおり計算ができる、算術演算子をやるよ。
239月宮あゆ ◆XalkKQX1is :02/10/26 02:48 ID:???
補足しておくと、配列の全部は、 @ をつけて表すよ。
配列の中のひとつだけ、は、 @ じゃなくて $ をつけて、
[0] みたいな【添え字】をつけるよ

ってことだね
240月宮あゆ ◆XalkKQX1is :02/10/27 00:46 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <算術演算子(2)
 (ニE(#つo⊂#)

これぐらいはひととおり、全部覚えてね。
数学でおなじみの、計算ができる演算子だよ。

● = ◆ + ★
 数値、◆と★を加算(足し算)した値を●に代入するよ。

● = ◆ - ★
 数値、◆から★を減算(引き算)してその値を●に代入するよ。

● = ◆ * ★
 数値、◆に★を乗算(掛け算)してその値を●に代入するよ。

● = ◆ / ★
 数値、◆から★を除算(割り算)してその値を●に代入するよ。

● = ◆ % ★
 数値、◆を★で割った、余りを●に代入するよ。
 ◆と★は小数なら、小数点以下は切り捨てられて計算されるよ。

● = ◆ ** ★
 数値、◆の★乗の値を●に代入するよ。


優先順位についてちょっと説明するね。
実際の数学と同じように、加算、減算は、後回しにして計算されるよ。
先に計算したいなら、 ( ) でくくってみてね。
じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
241nobodyさん:02/10/27 10:54 ID:???
あゆた〜〜ん
242月宮あゆ ◆XalkKQX1is :02/10/27 13:04 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <for の文、数値比較演算子
 (ニE(#つo⊂#)

for っていうのは、ループができるんだよ。
じゃあまず、文法の説明をするね。

for ( ●; ◆; ★ ) { ■ }

● … 最初の状態  ◆ … ループする条件
★ … 増減式    ■ … 処理

じゃあ、ちょっと例を書いてみるね。

for ( $i = 1; $i <= 10; $i ++ ) { print "$i"; }

これは、最初、変数 $i は 1 だよ、って決めて、ループ1回ごとに、
変数 $i に 1 を加算していくよ。
変数 $i が、 10 以下なら、次のループに入るよ。
と、いうことは、この例では、10回の処理が繰り返されて、
"12345678910" って表示されることになるね。

<= っていうのが出てきたから、数値比較演算子もひととおりみておくね。
if とか、 for とかの条件で使われることが多いよ。

● == ◆ … ●と◆が数値として等しい ( 0 と 0.0 は等しい )
● != ◆ … ●と◆が数値として等しくない
● < ◆ … ●が◆より小さい
● > ◆ … ●が◆より大きい
● <= ◆ … ●が◆以下
● >= ◆ … ●が◆以上
243月宮あゆ ◆XalkKQX1is :02/10/27 13:04 ID:???
>>241
ど、どうしたの…?
244月宮あゆ ◆XalkKQX1is :02/10/29 22:19 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < while / until / next / last
 (ニE(#つo⊂#)

while / until っていうのは、どっちもループだよ。
じゃあまず、文法の説明をするね。

while ( ● ) { ◆ }
until ( ● ) { ◆ }

● … 式 ( 後述参照 )
◆ … 繰り返す処理

どちらの場合でも、● は、比較演算子を使った条件を指定するよ。
数値比較演算子じゃなくって、文字列比較演算子っていうのも
あるんだけど、それは次くらいに詳しくみてみるよ。

while は、英語で、【〜の間】だね。
Perl でも、条件●が成立する間、◆を繰り返すことになるよ。

until は、英語で、【〜まで】だね。
●が成立するまで(=●が成立しない間)、◆を繰り返すよ。

next / last は、ループを途中でやめたりするのに使うよ。

next は、現在のループを終了して、次のループに入る、っていうこと、
last は、全てのループからただちに抜け出す、っていうことだよ。
じゃあ次回は実例を見てみようね。
245nobodyさん:02/10/30 00:32 ID:???
ここまでは普通についていけるな
246月宮あゆ ◆XalkKQX1is :02/10/31 22:33 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ループと文字列比較演算子
 (ニE(#つo⊂#)

こんなことをすることは少ないと思うけど、例を挙げるね。

$hoge = "aaa";
until($hoge eq "aaaaaaaaaa"){
    $hoge = "a$hoge";
}

この例では、変数 $hoge の前に、次々に "a" を追加していってるね。
"a" が10個並んだところでループ終了だね。

どんな時に、条件に一致するか (真偽) については、次回説明するね。

これも条件で使われるよ。数値として比較する数値比較演算子とは違って、
文字列として比較する、文字列比較演算子っていう名前があるよ。

● eq ◆ … ●と◆が完全に一致
● ne ◆ … ●と◆が一致しない
● =~ /◆/ … ●に◆が含まれる …(※)

他にもあるんだけど、これだけ覚えてれば十分だよ。

※本当は、【正規表現】っていう新しいことなんだけど、
 よく使いそうだからここで一緒に覚えようね。
 正規表現は、近いうちに勉強するよ。
247月宮あゆ ◆XalkKQX1is :02/11/01 17:40 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 真と偽
 (ニE(#つo⊂#)

条件に合致するかどうかをチェックするのは、真か偽のどちらかで表されるよ。
要は、「合致している、成立する」が真、「しない」のが「偽」だよ。

if も、 while も、 until も、真偽をチェックするよ。

じゃあここで、どんな時に真、偽になるかを覚えようね。

偽:0 / 未定義 / 空白
真:「偽」以外の要素

if(0){print "偽だからここは表示されないよ";}
if(1){print "真だから表示されるよ";}
$abc = "";
$def = "ghi";
if($abc){print "空白変数だから偽";}
if($def){print "文字列だから真";}
if($jkl){print "未定義変数だから偽";}

じゃあ次回は、 if をもっと便利に扱える、
elsif 〜 else を勉強しようね。
248月宮あゆ ◆XalkKQX1is :02/11/03 23:56 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < if / elsif / else
 (ニE(#つo⊂#)

まず、文法から見てみようね。

if ( ● ) { ◆ }
elsif ( ◎ ) { ◇ }
else { ■ }

●◎ … 条件  ◆◇■ … 処理

まず、 if だけの文と同じように、 ● の真偽がチェックされて、
真なら ◆ が実行されるよ。
偽なら、 if から抜けて、次に elsif の◎の真偽がチェックされるよ。
真なら、◇が実行されて、偽なら、 else の■が実行されるよ。
elsif は、ひとつの if 構造のなかにいくつでも書くことができるよ。

例として書いてみるね。

$i = 100;
if($i < 50){print "50より小さい";}
elsif($i > 120){print "120より大きい";}
elsif($i == 80){print "80である";}
else{print "その他";}

このへんはとっても重要だから、しっかり覚えておいてね。
249 ◆PxAOHU.zVE :02/11/05 02:53 ID:???
おもったより続いてますねぇ
頑張ってください^^;
250 ◆iYf0laFI3w :02/11/05 03:36 ID:???
ついでですが…保存予定ですので宜しくお願いします。m(_ _)m
251 ◆iYf0laFI3w :02/11/05 03:37 ID:???
ごめんなさい…ageてしまった…
252月宮あゆ ◆XalkKQX1is :02/11/05 22:20 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (1)
 (ニE(#つo⊂#)

正規表現っていうのを勉強するよ。
ちょっと難しい、ってよく言われるけど、そう思わずに
しっかり読むと必ず分かるから、とりあえず読んでみてね。

正規表現は、柔軟なパターンマッチをすることができるよ。
例えば、特定の文字が含まれるかどうか調べたり、
文字の置き換えをしたり、またあとで勉強するけど、
split っていう関数のパターンに使ったりできるよ。

ここはよくわからなくてもいいよ。
わかりやすく説明すると、

● =~ /◆/★

これで、【変数●がパターン◆にマッチ】っていうことだよ。
【マッチ】っていうのは、簡単に言うと、【●が◆の状態である】
っていうことなんだ。じゃあ、【◆の状態】っていうのを説明するね。
★については、2回後くらいに説明するね。今はなにも書かいでね。
まず、例は、3回前に勉強した含まれるパターンだね。
◆には【普通の文字】と、特別な意味のある、【メタ文字】のふたつが使えるよ。
3回前に勉強したのは、普通の文字だけだね。
じゃあ、メタ文字について説明するね。

続く…
253月宮あゆ ◆XalkKQX1is :02/11/05 22:20 ID:???
…続き

. … なにか1文字
* … 直前の文字やパターンの0回以上の繰り返し (いくつあってもよい)
+ … 直前の文字やパターンの1回以上の繰り返し (必ず1つ以上ある)
? … 直前の文字やパターンが1つだけあってもなくてもよい
[abc] … [ ] で囲んだ文字の中のどれか1文字
^ … 【…で始まる】という意味。パターンの最初に使う。
$ … 【…で終わる】という意味。パターンの最後に使う。
{5} … 直前の文字やパターンの5回繰り返し
{3,8} … 直前の文字やパターンの3回以上8回以下の繰り返し

例だよ。

if ( $abc =~ /^def$/ ) { print "マッチ"; }

これは、

if ( $abc eq "def" ) { print "マッチ"; }

と、同じ意味になるよ。
とりあえず、何の役に立つかわからなくてもいいから、
使い方は覚えておいてね。
254月宮あゆ ◆XalkKQX1is :02/11/05 22:20 ID:???
>>249
うん、ありがとう
頑張るよ

>>250
ずっと読んでくれてるの?
なんだか嬉しいな

>>251
別に気にしなくていいよ


…みんなはこのへんちゃんと理解してくれてるのかな?
わかりにくいところがあったら言ってね。
説明しなおすからね。
255月宮あゆ ◆XalkKQX1is :02/11/09 23:36 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (2)
 (ニE(#つo⊂#)

今回は、文字クラス [ ] について詳しく勉強するよ。

[ ] の中に文字を書くと、正規表現では [ ] の中の、
どれか1文字にマッチするんだったね。

じゃあ、特殊な書き方も含めて説明するね。
[A-Z] は、 A から Z までのどれか1文字だね。
[A-Za-z] なら、大文字か小文字だよ。
[^0-9] [ ] の先頭に ^ があると、【ここにない1文字】
って、意味が逆転するよ。

if ( $xxx =~ /[ABCDE]/ ) { print "ABCDE のどれかが含まれる"; }
if ( $xxx =~ /[abcde]/ ) { print "abcde のどれかが含まれる"; }
if ( $xxx =~ /[A-Z]/ ) { print "ABC…XYZ のどれかが含まれる"; }
if ( $xxx =~ /[0-9]/ ) { print "0123456789 のどれかが含まれる"; }
if ( $xxx =~ /[A-Z]$/ ) { print "アルファベット大文字で終わる"; }
if ( $xxx =~ /[A-Z]+/ ) { print "アルファベット大文字が1回以上繰り返し"; }
if ( $xxx =~ /^[A-Z]+$/ ) { print "アルファベット大文字しかない変数"; }
if ( $xxx =~ /[^A-Z]/ ) { print "アルファベット大文字以外の文字が含まれている"; }

次回は、 ( ) と後方参照について説明するね。

#間違いがあったら指摘してね…
256 ◆soCKet026k :02/11/10 21:21 ID:Za96cXhY
まだなんとかわかるよ。
257 ◆PxAOHU.zVE :02/11/11 21:11 ID:???
今のペースでいくとオブジェクトな話になるのは何年後だろう^^;
258nobodyさん:02/11/12 01:15 ID:???
まあ後は自分で勉強すれば良いだけの話だし、いいのでは?
途中で挫折した香具師多いと思われるから、マターリ進行で…
259月宮あゆ ◆XalkKQX1is :02/11/12 18:44 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (3)
 (ニE(#つo⊂#)

今回は、後方参照に使う、 ( ) について詳しく説明するね。

( ) の中に文字を書くと、【 ( ) の中でマッチした部分をあとで参照できる】んだ。
正規表現は、 [ ] を使うと、マッチするパターンがたくさん考えられるよね。
マッチした部分をあとから参照するのに使うよ。

パターンの中では、 ( ) でくくった順に、\1 、 \2 、 \3 …って参照できるよ。
パターンの外で参照するなら、 $1 、 $2 、 $3 …で参照するんだ。
パターンの外で参照する方がよく使うと思うから、
こっちはしっかり使い方を理解しておいてね。

じゃあたくさん例文を見て、使い方を覚えてね。

if ( $xxx =~ /([ABCDE])/ ) { print "マッチ:$1"; }
if ( $xxx =~ /([abcde])\1/ ) { print "abcde のどれかが2回以上続く"; }
if ( $xxx =~ /([0-9]+)-([0-9]+)/ ) { print "マッチ:$1-$2"; }

次回は、 [ ] を簡略化できる感じの、メタ文字と、
スペースがあまったら正規表現演算子をみてみようね。

今回はちょっと短いけどこれで終わりだよ。
260月宮あゆ ◆XalkKQX1is :02/11/12 18:45 ID:???
>>256
うん、それならよかった

>>257
結構かかりそうだよね…
そんなに難しい話になるまで続くのかな…?

>>258
うん、そうだね
まあ実用的なスクリプト作れるぐらいになったら終了、かな
261月宮あゆ ◆XalkKQX1is :02/11/14 21:11 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (4)
 (ニE(#つo⊂#)

今回は、メタ文字について説明するよ。

パターンの中では、 [ ] で囲む、よく使いそうなものを、
メタ文字っていうので使えるんだ。

\d … 数字を表すよ。 [0-9] と同じだね。
\D … 数字以外を表すよ。 [^0-9] と同じ。
\w … [A-Za-z0-9_] と同じ。単語構成文字、って言うみたいだね。
\W … [^A-Za-z0-9_] と同じ。

他にもあるけど、とりあえずこれだけ覚えてたらボクの経験上問題ないね。

じゃあ、演算子について説明するね。

正規表現(1) でも少し触れたけど、
● =~ /◆/★
この、★の部分だったね。
じゃあ、簡単に説明するね。

何種類かあるんだけど、 i だけ知っておけば十分だよ。

i をつけることによって、大文字小文字の区別をしないことができるんだ。

if ( $xxx =~ /abc/i ) { print "大文字小文字を区別せずにabcが含まれる"; }

他の関数も入ってくると、 e とか g とかもあるけど、それはそのとき説明するね。
262月宮あゆ ◆XalkKQX1is :02/11/14 21:11 ID:???
一行抜けちゃった…

「これでとりあえず、正規表現は終わりだよ、次回は配列操作をやるね。」
263nobodyさん:02/11/15 09:48 ID:???
>>あゆ

ほぼ、一日に1レクチャか、まめだね。尊敬するよ。
下手な日記書いてる奴よっかスゲーなおまい
264nobodyさん:02/11/15 17:51 ID:???
       |こたつから出られなくなる季節です
   ∧ ∧ |/\_________                   
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \

265美坂香里 ◆96KAORIvws :02/11/16 01:46 ID:???
片付けないと炬燵出せません(T-T)
266月宮あゆ ◆XalkKQX1is :02/11/16 12:40 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 配列操作
 (ニE(#つo⊂#)

配列操作関数だよ。
よく使うからしっかり覚えてね。

unshift ★, ◆
 … 配列★の先頭に要素◆を追加する

shift ★
 … 配列★の先頭の要素を削除する

push ★, ◆
 … 配列★の末尾に要素◆を追加する

pop ★
 … 配列★の末尾の要素を削除する

このよっつだよ。じゃあ例をみてみるね。

@xxx = ("a", "b", "c");
@yyy = ("x", "y", "z");

push @xxx, "d";    # 末尾に d を追加 … a, b, c, d になる
push @xxx, @yyy;    # a, b, c, d, x, y, z
pop @xxx;    # a, b, c, d, x, y
shift @xxx;    # b, c, d, x, y
unshift @xxx, "a"    # a, b, c, d, x, y

次回は、ファイル入出力とファイルハンドルについて説明するね。
267月宮あゆ ◆XalkKQX1is :02/11/16 13:03 ID:???
>>263
うん、ありがとう
途中でいきなり終わり、なんてことにならないようにがんばるよ

>>264
うん、そうだね
これからどんどん寒くなっていくからね
ボクもこの前こたつ出したよ

>>265
香里さんの家ってそんなに散らかってるの…
片づけてあとで温かいこたつに入るときもちいいよ
268栞 ◆SHIORIrGsg :02/11/17 02:10 ID:???
冬でもアイス美味しいですよ
269月宮あゆ ◆XalkKQX1is :02/11/18 18:35 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (1)
 (ニE(#つo⊂#)

今回はファイルの読み書きとファイルハンドルについて説明するね。

・ファイルハンドル
ファイルハンドル、っていうのは、ファイルを開くときに、ファイルハンドル、
っていうものに結びつけて開くんだ。ファイルに書くときも同じだよ。
これにファイルを結びつけてを作るには、 open っていう関数が一番一般的だね。
ファイルハンドルは、半角大文字でつけるのが原則だよ。
ファイルハンドルを使い終わったら、 close 関数で閉じるようにしようね。

open ★, ◆
close ★

★ … ファイルハンドル (半角大文字ならなんでもいいよ)
◆ … ファイル名
ファイル◆をファイルハンドル★に結びつけて開くよ。

じゃあ、 "test.txt" の内容を $test にいれて、表示するサンプルを書いてみるね。

open IN, "test.txt";
$test = <IN>; # こうやってファイルハンドルを変数に代入する
close IN;

print "$test";

Perl の勉強熱心な人は、実際試してみるてね。
今回のプログラムは、いろいろやっていると何か気付くことがあるはずだから、
必ず試しに動かしてみてね。 test.txt の中を書きかえながら。
270月宮あゆ ◆XalkKQX1is :02/11/18 18:35 ID:???
>>268
ボ、ボクはいいよ、遠慮しとく
271nobodyさん:02/11/18 22:08 ID:???
ヲタとヲタの交流場はここですか?
272栞 ◆SHIORIrGsg :02/11/19 00:28 ID:???
>>271
…そんな事言う人嫌いです。
273 ◆soCKet026k :02/11/19 17:09 ID:/vFjknvy
>>270
タイヤキアイス食え。

>>271
ここに書き込んだ時点であなたも(以下略
ここの会話がヲタ会話とわかる時点であなたも(以下略
274nobodyさん:02/11/19 18:34 ID:???
あゆたん、がんがれ。(うぐぅ
275月宮あゆ ◆XalkKQX1is :02/11/19 23:15 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (2)
 (ニE(#つo⊂#)

前回のスクリプトはみんな動かしてみてくれたかな?
いろいろやってみると、最初の1行しか表示されないことに気付いてくれたと思うんだ。
詳しくはそれはもう少しあとでやるね。
今回はファイルに書き込む方法を説明するよ。

open ★, "> test.txt";

こんなふうに、 > をつけてファイルを開くと、書き込みモードになるんだよ。
このファイルに書き込むには、

print ★ "test";

みたいな感じにするよ。
じゃあ、簡単なカウンターを書いてみるね。

行数が入らないから続くよ
276月宮あゆ ◆XalkKQX1is :02/11/19 23:16 ID:???
-[perl0004.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

open IN, "log.txt";
$count = <IN>;
close IN;

$count ++;

open OUT "> log.txt";
print OUT "$count";
close OUT;

print "<body>$count</body>";

exit;
----------------------------------------------------------------

ちゃんと動かしてみてね。
今回はここで終わりだよ。
277月宮あゆ ◆XalkKQX1is :02/11/19 23:17 ID:???
>>273
たい焼きアイス…
あるなら食べてみたいかも

>>274
うん、ありがとうね
278一うぐぅファン:02/11/20 00:58 ID:???
たい焼きアイスはマジであるよ。
数年前CMやってたの覚えてるし、多分うちの近所のスーパーに行けばまだ売ってると思う。

たい焼きの形をした最中の中にあずきとバニラアイスが入ってまつ。
あずきのバニラアイスのハーモーニーがたまりませんです。

余談
自分暇つぶしに2chのTripFinderスレを読んで自分なりのプログラムを組んでみたです。
CPU負荷かかりまくり、でも任意のTrip探す手間を考えれば楽なもんかな?とか思いながら使ってます。
今度taiyakiって入ったIDを探したいです!
279月宮あゆ ◆XalkKQX1is :02/11/20 20:44 ID:???
あ、ちょっとミスをみつけたから書くね。
恥ずかしい…

-[perl0004.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

open IN, "log.txt";
$count = <IN>;
close IN;

$count ++;

open OUT, "> log.txt"; # , が抜けてたね、ごめんね
print OUT "$count";
close OUT;

print "<body>$count</body>";

exit;
----------------------------------------------------------------

>>278
そうなんだ、じゃあボクも近くのスーパーに行って探してみるよ
ありがとうね
280一うぐぅファン ◆unyuH2NGgE :02/11/20 23:12 ID:???
この教室は解り易いよ〜。

楽しみに見てますです。

それとトリップ付けてみました、別に意味はないので・・・ただunyuなだけです。


コンビニでたいやきアイスは発見できませんでした・・・残念です。
281秋子 ◆AKiKoYVoZk :02/11/20 23:18 ID:???
今日も頑張ってね。
282祐一 ◆yuitiQyXzU :02/11/21 10:39 ID:???
昨日の教室はなかったのか?
283月宮あゆ ◆XalkKQX1is :02/11/21 21:00 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < foreach
 (ニE(#つo⊂#)

今回は foreach ループを説明するよ。
先に勉強しようと思ってたことを忘れてたから、簡単に説明するね。
次回からはまたファイル入出力の話に戻るからね。

foreach っていうのは、配列のすべての要素に一定の処理ができるんだ。
配列の中を全部表示したりしたいときに使うよ。
まず、構文を書くね。

foreach ● ( ◆ ) { ★ }

◆ に、対象の配列を書くよ。配列の要素が順番に変数 ● に入っていって、
順々に ★ が実行されていくよ。

これだけじゃなんのことかわからなくても、例を見てみてね。
実行したときどうなるか?は、自分で試してみてね。

@xxx = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");

foreach $x (@xxx){print "$x";}
foreach (@xxx){print "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。

この話を応用して次回にもっていくから、絶対に使えるようにしておいてね。
284月宮あゆ ◆XalkKQX1is :02/11/21 21:00 ID:???
>>280
わかりやすい…?
そう、かな…?
ありがとね

>>281
うん、頑張るよ

>>282
1日1つ頑張りたいけど、無理な日もあってごめんね
285一うぐぅファン ◆unyuH2NGgE :02/11/21 23:40 ID:???
.txtで今までの授業全部保存してるよ!

すっごく楽しみに見てるよ、これからも頑張ってね。
286nobodyさん:02/11/23 07:35 ID:???
私も楽しみにしているので、無理せず続けて下さいね。
287月宮あゆ ◆XalkKQX1is :02/11/23 09:15 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (3)
 (ニE(#つo⊂#)

今回は複数行のファイルを読み込む方法を説明するね。

open IN, "test.txt";

# 1行だけ読み込む
$test = <IN>;

# 全行読み込む
@test = <IN>;

close IN;

こんな感じにすると、1行ずつが配列のひとつの要素になるよ。
じゃあ、このファイルの中身を表示するには、

foreach (@test){
        print "$_<br>";
}

ってやると表示されるよ。
じゃあ次回は、ファイルの読み書きもわかったし、
ユーザーが何か入力したのを受け取って結果を表示する、
ってことを勉強してみようね。
288月宮あゆ ◆XalkKQX1is :02/11/23 09:15 ID:???
>>285-286
ただの趣味の延長だから、変なところがあるかもしれないけど…
気に入ってくれてうれしいよ、ありがとうね。
289月宮あゆ ◆XalkKQX1is :02/11/23 10:46 ID:???
※注意

最初にも言ったけど、ここの教室でやっていることは、
【わかりやすくするために多少強引な説明をしている】ところがあるよ。
基本なんだけど、【わかりにくいし使われもしないから省いている】ところも
たくさんあるよ。他のサイトとか見てると、戸惑うことも多いとおもうけど、
混同させないように注意してね。
290一うぐぅファン ◆unyuH2NGgE :02/11/23 12:29 ID:???
そ〜なんだ、解りました!
291nobodyさん:02/11/23 15:54 ID:???
すごいね

メルマガとか出してみたら?
292 ◆soCKet026k :02/11/23 20:37 ID:bk4yPgrO
うぐぅage
293nobodyさん:02/11/24 17:29 ID:???
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
294nobodyさん:02/11/25 15:02 ID:???
まだやってんの?ヲタドモ
295nobodyさん:02/11/26 07:17 ID:wcv/13ds
カエレ
296nobodyさん:02/11/26 12:02 ID:???
妄想族
297nobodyさん:02/11/26 16:16 ID:???
       ∬
(´・ω・)っ旦 <マターリ
298nobodyさん:02/11/26 20:26 ID:???
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< このスレきもい♪
 (     つ  \______
 (_○___)
299>ALL:02/11/26 22:58 ID:???
煽りは放置の方向でマターリと
300月宮あゆ ◆XalkKQX1is :02/11/27 18:09 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < フォームデーターの受けとり
 (ニE(#つo⊂#)

今回はフォームデータを受けとってみるよ。
最初のうちは、 cgi-lib.pl を使ってやってみることにするね。
下のサイトから入手できるよ。
http://cgi-lib.berkeley.edu/

確認しておくけど、フォームデータ、っていうのは、
HTMLの <form> とか <input> とかで送るデータのことだよ。

require "cgi-lib.pl";
&ReadParse;

まず、 cgi-lib.pl っていう名前で、ダウンロードしたソースを、
C:\www\home\perl\ に保存してみてね。
CGIに送られたフォームデータはこれだけで取得できるんだ。
( cgi-lib.pl が同じディレクトリにある時だけだよ)

例えばこんなデーターが送られたとすると、

aaa=xxx&bbb=yyy&ccc=zzz

%in っていうハッシュにまとめて値がいれられるよ。
例えば、 aaa を参照したいなら、 $in{'aaa'} っていう感じで取得できるよ。

フォーム入力ができたら、CGIの世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。

#投稿が遅れてごめんね
301月宮あゆ ◆XalkKQX1is :02/11/27 18:11 ID:???
>>290
うんうん、よろしくね

>>291
それもいいかもね
わかりやすく書き直して、カリキュラムもしっかり組めたら出してみるかも

>>293
うん、乗っ取らせてもらったよ
WebProg板のスレはなかなか落ちないからね…

>>297
うんうん、マターリしようね
302月宮あゆ ◆XalkKQX1is :02/11/27 18:50 ID:???
メールアドレス作ってみたよ
内容についての質問とか要望があったらメールしてくれてもいいよ

なるべく返信はしたいけど、忙しくて手が回らなかったりしたらごめんね。
303一うぐぅファン ◆unyuH2NGgE :02/11/27 19:19 ID:???
いつもここ見ながら新しいアイディアを模索してるよ。

もう来ないのかと思ったけど、待ってて良かったよ。


メルマガいいね!
304nobodyさん:02/11/28 01:41 ID:???
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。
気に入らなければ放置してくれれば良いだけなのに…。
305nobodyさん:02/11/28 21:24 ID:???
なるほど
こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
306一うぐぅファン ◆unyuH2NGgE :02/11/29 00:10 ID:???
>305
cgi-lib.plって何?
マジで使ったこと無いけど、何するもんなの?
てか必要なの?
307nobodyさん:02/11/29 00:21 ID:???
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、
わざわざ鯖に入れている鬱、、、
308nobodyさん:02/11/29 11:21 ID:???
あゆたん、サイトがあったんだね。
今まで知らなかったよ。(うぐぅ
309月宮あゆ ◆XalkKQX1is :02/11/29 18:18 ID:???
-[perl0005.cgi]-------------------------------------------------
#!/usr/bin/perl/
# 簡易掲示板

print "Content-type: text/html;\n\n";

require "cgi-lib.pl"; &ReadParse;

print "<html>\n";
print "<head><title>掲示板</title></head>\n";
print "<body>\n";
print "<hr>\n";

if($in{message}){
open W, ">> perl0005.log";
print W "$in{message}\n";
close W;
}

open R, "perl0005.log";
@log = <R>;
close R;

foreach (@log){print "$_<hr>\n";}

print "<form action='perl0005.cgi'>\n";
print "<input type='text' name='message'> <input type='submit' value='書き込む'>\n";
print "</form>\n";
print "</body></html>\n";

exit;
----------------------------------------------------------------
310月宮あゆ ◆XalkKQX1is :02/11/29 18:21 ID:???
↑注意
簡易掲示板のソースだよ。
同じフォルダに、 cgi-lib.pl をいれてね。

>>303-304
ボクは途中で放棄はあまりしたくないんだよね
来なくなることはないと思うよ

>>305 >>307
まあ最初の方はこうやって簡単にやってもいいんじゃないかな?
もうちょっと勉強してきたら、自分のスクリプトの中に書いていこうと思うよ。

>>306
フォームからデーターを送られてきたのを、CGI側で取得する機能があるよ。
他にもいくつか機能があるけど、代表的なのはこれだね。
311一うぐぅファン ◆unyuH2NGgE :02/11/29 18:33 ID:???
今日うぐぅタンのページ見たよ、メアドの時に気づけなかった自分が寒いです・・・。


cgi-lib.plって便利そうだね。
もうちっと詳しく知りたいのでぐぐってきます。
312月宮あゆ ◆XalkKQX1is :02/11/29 18:37 ID:???
ごめん、レスぬけてたね。。

>>308
うん。
ボクの名前でドメインとっちゃった。。

>>311
わぁ、ありがとう!
まあ、 cgi-lib.pl は便利なことは便利なんだけど、
ちょっと実行したときの効率があまりよくないんだよね。
また今度、 cgi-lib.pl なしで取得する方法を勉強するね。
313 ◆soCKet026k :02/11/29 20:14 ID:I1ECfjSv
うぐぅ。

今日タイヤキアイス食った、うまかった。
314nobodyさん:02/11/29 20:40 ID:Utvm+/IV
社団法人日本外交協会(外務省の外郭団体、会長/綿貫民輔衆議院議長)が10月に東京都払い下げの期限切れ間近の非常用備蓄食35万食を、都や政府に無断で北朝鮮に援助していたことが石原都知事のインタビューで暴露された。
この非常用備蓄食は保存性に優れたアルファ米を使っており、自衛隊も戦闘糧食として使用していることから軍事用に転用される恐れもある。
石原都知事はこの件に関して政府と国会に徹底的な調査を要求すると述べた。

「ニュース速報+」【国際】東京都の非常食が北朝鮮に、石原知事激怒2
http://news2.2ch.net/test/read.cgi/newsplus/1038560374/

ソース:石原都知事・11/29日記者会見─2:00あたりから
http://www.metro.tokyo.jp/GOVERNOR/KAIKEN/kako.htm
MXTVで22:30から再放送

社団法人日本外交協会
〒106-0041東京都港区麻布台3-1-2飯倉セントラルビル4F
315一うぐぅファン ◆unyuH2NGgE :02/11/29 21:02 ID:???
うは、レスが早い! なんか嬉しい(うぐっ

自分はcgi-lib使わないで取得、エンコードずっとしてきたから・・・必要性は感じないんだけど知識としてね。


またページには遊びに行くよ!
なんか雰囲気とかもよかったし、勉強できそうなこととかもありそうな予感。



次回の授業を楽しみにしてます!
316nobodyさん:02/11/29 23:34 ID:???
>>312
具体的にどう効率があまりよくない?
317nobodyさん:02/11/30 08:43 ID:???
>>316
汎用的って事でしょう。
318305:02/11/30 10:28 ID:???
cgi-lib.plではなくCGI.pmを使え、という意味だったのだが。

319nobodyさん:02/11/30 17:02 ID:???
CGI.pmって207k、、、。
そんなもん、コンパイルしてメモリにロードされるかとおもうと
とうてい、使う気にはなれんな。
320月宮あゆ ◆XalkKQX1is :02/12/01 01:44 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 掲示板 (2)
 (ニE(#つo⊂#)

すっごく簡単に掲示板を書いてみたけど、どうだったかな?
やっぱり、機能が少なすぎるよね。
これからはしばらくの間、毎回少しずつ機能を足していく予定だよ。

今回の追加してみる機能は…
・名前欄を作るよ
・メール欄も作るよ
・名無しさんの名前が出るようにするよ

名前、メールは、入力欄を増やして、ログファイルに書き込むように
すれば、簡単にできちゃうよ。
名無しさんも簡単だね。

if(!$in{name}){
$in{name} = "名無しさん";
}

名前欄がなかったら「名無しさん」を代入してるね。

長くて入りきらなくなっちゃったね…
ここには重要な部分だけ書いて、全文はリンクからたどれるようにするね。
ソースはここだよ。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0006.txt

読めない、っていうときは、対象をファイルに保存、かソースを表示してみてね。

次回は、新しく置換演算子を勉強して、いろいろなことをやってみるね。
321月宮あゆ ◆XalkKQX1is :02/12/01 01:47 ID:???
>>315
レスが早いのは運だよ

cgi-lib.pl は最初だから簡単に取得するために説明してるから、
慣れてきたら自分でやったほうがいいと思うよ

うん、ボクのホームページにも遊びに来てね。
ありがとう

>>316
317もあるけど、余計な処理をしすぎっていうか、
もっと簡単に短く単純に書けるよね
まあ自力でやる方法は今度説明するね。

>>318-319
cgi-lib.pl を使うのも CGI.pm もメリットがあればデメリットもあるよね
Perlを考えたアメリカの人は(名前忘れちゃったけど)
「Perlは好きなように書けばよい」っていう言葉を残してるんだから、
人それぞれやり方が違ってもいいと思うな
322月宮あゆ ◆XalkKQX1is :02/12/01 01:51 ID:???
↑アメリカだったっけ…?
違ってたら恥ずかしいから、とりあえず発言撤回させて…
323一うぐぅファン ◆unyuH2NGgE :02/12/01 15:07 ID:???
そっか〜、ありがと
鮎タンのページの掲示板でおみくじやったら「大凶」と「最大凶」ひいちゃったよ・・・。
これも運・・・。
324305:02/12/02 13:14 ID:???
TMTOWTDIはまさにその通り、それはいい。
だが今人に勧めるのなら既に保守更新されていないcgi-lib.plよりも
標準モジュールとして使えるCGI.pmの方が導入は容易だと思うのだが?

まあそれでもcgi-lib.pmが良いというのなら、ポリシーは人それぞれだからかまわないが。

>>319
滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
325nobodyさん:02/12/05 18:47 ID:o9GMmmoX
授業まだ〜?
326月宮あゆ ◆XalkKQX1is :02/12/05 20:43 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 置換演算子
 (ニE(#つo⊂#)

前回のソースを一般公開してしまうと、JavaScriptを使ったブラクラとかも
簡単に書き込めるから、タグの < を、 &lt; に、 > を &gt; に
置き換える方法を勉強するね。

● =~ s/◆/★/g;

変数●に含まれる、◆を★に置き換えるよ。
◆は、変数などが使えて、正規表現で指定するよ。
★は、◆で ( ) があったら、通常の変数に加えて後方参照の $1 $2 .. が使えるよ。

じゃあ実際に例を書いてみるね。
わかると思うけど、ファイルに書き込むよりも前に処理を実行しないと意味がないよ。

$in{message} =~ s/</&lt;/g;
$in{message} =~ s/>/&gt;/g;

じゃあ、ついでにURLの自動リンクの方法も書いておくね。

$in{message} =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1">$1<\/a>/g;

最後の、 g っていうのは、「あるだけ置き換えする」っていう意味だよ。
なんで自動リンク
正規表現のパターンの中で、 / が使いたいときは、
その前の文字に \ を使うといいよ。
print "<a href=\"http://xxx.yyy.zzz/\">ホームページ</a>";
こんな感じで print のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
327月宮あゆ ◆XalkKQX1is :02/12/05 20:46 ID:???
>>323
うん
そういうこともあるよ

>>325
遅れちゃってごめんね
328一うぐぅファン ◆unyuH2NGgE :02/12/05 21:20 ID:???
やっと正規表現まで来たね。
個人的にtrがすごく知りたいよ、まだいまいち理解してないんだよね。(恥
でも正規表現そのものが便利で難しいみたいだし、まだまだ勉強だね。

次回楽しみにしてます。返答ありがと。
329nobodyさん:02/12/05 23:41 ID:???
でも「/」がたくさんあるといちいち「\/」に書き換えないとだから大変だよね。
ということで、じつは・・・

● =~ s#◆#★#g;

なんてのも使えるんだよ。
これなら「/」が多い日も安心ですね。

・・・っていうのは次回でつか?

>>328
「1文字ずつ対応させて置換する」って表現ではどうでしょう?>tr|y
$test = '01234-02468-13579-56789';
$test =~ tr/[0-9]/[A-J]/;
print $test; # ABCDE-ACEGI-BDFHJ-FGHIJ と表示
330nobodyさん:02/12/06 00:00 ID:???
$test =~ tr/[0-9]/[A-J]/;
[]に意味はあるのかい?
331nobodyさん:02/12/06 10:25 ID:???
>>330
$testに[]が含まれると、戻り値の置換文字数が変わってくる。
332nobodyさん:02/12/06 10:53 ID:???
>>330
tr[0-9][A-B];
と書き変えておこうとして忘れてました。
スマ
333nobodyさん:02/12/06 18:41 ID:???
これから先ずっと使う前に
q, qq, qw を覚えよーょ。

クォートのエスケープは他の言語でもよく使われるから、
覚えておいて損はないけど。
334マルチ:02/12/06 20:22 ID:???
>pearさん
こんど♪のスクリプトも改良してほしいですぅ
335nobodyさん:02/12/06 20:50 ID:???
>334
ここにも出たか、粘着リア厨が!
さっさと糞してねれ!!
削除依頼出しとけよ!
336nobodyさん:02/12/06 21:13 ID:???
>335=粘着
337nobodyさん:02/12/06 21:20 ID:???
>>335=尾瀬原必死だな
まああんな穴だらけのクリプト晒されりゃいい恥さらしだから無理もないか(藁
338nobodyさん:02/12/06 22:40 ID:dKGf9spa
(-_-) 誰もカキコしてない・・・
(・∀・)カンリョウ!!
339nobodyさん:02/12/06 22:45 ID:???
>>333
正規表現のコンストラクタ、qr//も忘れずにな
340月宮あゆ ◆XalkKQX1is :02/12/06 23:50 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 展開とクオート風演算子
 (ニE(#つo⊂#)

リクエストがあったから勉強するね。

$text = "うぐぅ";
print "うぐぅ<br>\n";
print "$text<br>\n";
print 'うぐぅ<br>\n';
print '$text<br>\n';

例えば、後々の説明を楽にするために、これを実行させてみてね。
'…' で囲むと、変数名がそのまま出ちゃったり、
ちゃんと改行されなかったりすることがわかると思うんだ。
'…' では、変数やメタ文字は【展開】されないよ。
つまり、囲った文字がそのまま出る、っていうことなんだ。
"…" では、【展開】されるよ。

さっきの例のソースを、全部、
"…" で囲んであるものは、 qq{…} に書き替えができるよ。(展開されるよ)
" が、ダブルクオーテーションっていう記号だから q がふたつあるのかな。
'…' で囲んであったら、 q{…} に書き換えができるよ。(展開されないよ)
こういうのを、クオート風演算子、っていうよ。
ボクは個人的な話だけど、 print は全部 qq{…} で書いてるよ。

続くよ。
341月宮あゆ ◆XalkKQX1is :02/12/06 23:51 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < クオート風演算子
 (ニE(#つo⊂#)

qw についても説明するね。
● = qw{★};
 ★で、半角スペースで区切った文字列を順番に配列●に代入するよ。
 これは知らなくてもそんなに影響はないと思うんだけどね…

qr は、取り扱うとしたらもう少し先になるかな…?
あといくつか、クオート風演算子はあるんだけど、代表的なものとしてこのへんで終わりにするね。

{ } って書いたけれど、一定の制約を守っていれば、 { } じゃなくてもできるよ。

一定の制約
 ・英数字以外の半角文字だったら何でもいいよ。
 ・ # を使うときは、直前にスペースがあると、コメントと間違うから注意だね
 ・カッコを使うときは、左右でペアにして使うよ。 { } ( ) [ ] < >

これは、正規表現の時にも使えるんだ。
たとえば、置換演算子の時では…

$test =~ s/xxx/yyy/g;
$test =~ s#xxx#xxx#g;
$test =~ s{xxx}{yyy}g;

これらは全部同じことを表しているよ。
それにしても、ボクはこの授業の内容は全部テキストファイルにしてるんだけど、
→ この行でちょうど1000行に達してしまうんだよね…。
ボク、よくこんなに書いたなあ…
342月宮あゆ ◆XalkKQX1is :02/12/06 23:57 ID:???
>>328
>>329さんが上手く説明してくれてるね。
ボクにはこれ以上うまく説明はできないかな

>>334
おんぷちゃんねるのスクリプト…?
改造すべきところなんてあるかな?
どう改造してほしいか言ってくれたら、
もしかしたら1%ぐらいの確立で改造してみるかも
あと、ここでは「あゆ」って呼んでくれた方がうれしいな
343マルチ:02/12/07 00:21 ID:???
>342
ごめんなさいです。。。
用なし逝って話しますですぅ
344nobodyさん:02/12/07 02:59 ID:???
>>329さん
ありがと、そっか〜つまり抜けてる部分とか余ったりするとよくないっぽいんだね。
一つずつってのがポイントみたい。
これでtrは解ったよ、ホントありがと。

うぐぅタン
だんだん難しくなってきたよ・・・。
まだ何とか付いていけてるから、次もよろしく〜
345一うぐぅファン ◆unyuH2NGgE :02/12/07 03:00 ID:???
334トリップ忘れた・・・(汗
346nobodyさん:02/12/07 03:11 ID:???
このすれ く さ い
347nobodyさん:02/12/07 06:32 ID:???
>346
おまえが近づかないようにするためだよ。
348月宮あゆ ◆XalkKQX1is :02/12/07 23:16 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (1)
 (ニE(#つo⊂#)

Perlで一番重要な、サブルーチンについての説明だよ。
自分で処理を決める関数のようなものがつくれるから、ユーザー関数とかも呼ばれるよ。
サブルーチンは、「宣言」しておくと「実行」できるようになるよ。

じゃあ、宣言の方法を説明するね。
個人的な話だけど、ボクは、 { } の中に改行がくるときは、
インデントすることにしてるよ。インデントっていうのは、
行の始めにタブやスペースをいれて、始まりを右にずらすことだよ。
アンインデント、はこの逆だね。
これを使うと、スクリプトが複雑になってくると見やすくていいよ。

sub abc{
    $x ++;
}

これは、変数 $x に 1 を足す、サブルーチンだね。
呼び出すには、 &abc; って書いて呼び出すよ。

サンプル。「2」って表示されるよ。
$x = 1;
&abc;
print "$x";
sub abc{ $x ++; }

サブルーチンはとっても重要で便利だから、必ずマスターしてね。
349月宮あゆ ◆XalkKQX1is :02/12/07 23:17 ID:???
>>343
うん、そうしてね。
わかってくれてうれしいよ

>>344
だんだん難しくなっていくね
わからないことがあったら気軽に聞いてね。
350一うぐぅファン ◆unyuH2NGgE :02/12/08 14:06 ID:???
ありがと、
とりあえず今のところ大丈夫だよ。

次は何が出てくるのか楽しみです。
351nobodyさん:02/12/08 19:24 ID:Jo6i/ZZ/
cgi-lib.plを使わない>>320の簡易掲示板の作り方を教えて欲しいでつ。
352nobodyさん:02/12/08 19:53 ID:???
>>348
待て、一番重要なサブルーチンの説明がよりによって引数無し、グローバル変数操作かよ。
常識的なサンプルを提示できないなら、頼むから何もしないでくれ。はっきりいって迷惑。
353nobodyさん:02/12/08 20:14 ID:???
>>352
(1)って書いてるじゃねーか(2)があるんだろ
おとなしく待てよ行数規制があるんだから
354nobodyさん:02/12/08 23:42 ID:???
(2)はどこじゃヴぉけぇ!!!!!
355サブルーチン編:02/12/09 00:42 ID:VP9Z79ed
sub hogehoge {
 my %param = @_;

#何か

 return ...;
}
356nobodyさん:02/12/09 00:42 ID:???
>>348
>これは、変数 $x に 1 を足す、サブルーチンだね。

( ´,_ゝ`) プッ $x= 'A'でも1足すのかよ

$x= 'A';
$x++;
print $x; # これはB

$x= '?';
$x++;
print $x; # これは1

よく頭に叩き込んでおけ
357正規表現編:02/12/09 00:47 ID:VP9Z79ed
ゼロ文字幅
^ =>最初
$ =>最後

文字
. =>1文字
[..] =>文字クラス。括弧の中の、任意の1文字
[^..] =>中身以外の文字を1つ

繰り返し
* =>0以上
+ =>1以上
{n} =>n回
{n,m} =>n以上m未満
{n,}、{,m} も可能

(?:...) =>まとめるだけでいいとき
(...) =>後から$1とかで使うとき

\1 \2 \3 =>パターンマッチの中で使える。
$1 $2 $3 =>外で使う
358nobodyさん:02/12/09 02:11 ID:???
サブルーチン(1)
確かに、これだけじゃちょっと・・・

変数のスコープとか、GC,
サブルーチン内でグローバル変数を変更する事のリスクとか。
後できちんとフォローすれば大丈夫。多分。。。
359nobodyさん:02/12/09 09:41 ID:???
オタクスレ相互リンク

綾波レイのWEB制作管理教えますれ
http://pc3.2ch.net/test/read.cgi/hp/1023741627/l50
360nobodyさん:02/12/09 12:31 ID:czPx1nV4
漏れは普段平気でグローバル変数操作してるが。
use strictなんてきらいだよー。
361nobodyさん:02/12/09 13:44 ID:???
>>360 分かったから屑は死ね。
362nobodyさん:02/12/09 13:46 ID:???
>>360
movep.l d0-d7/a0-a7,-(a7)
が癖になっていたので、もはや戻れません。>グローバル変数いぢり
363nobodyさん:02/12/10 21:21 ID:???
月宮あゆのPHP教室もキボン!。
364月宮あゆ ◆XalkKQX1is :02/12/10 22:32 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (2) 返り値
 (ニE(#つo⊂#)

サブルーチンでは、返り値 (かえりち) っていうものが作れるよ。
「返り血」とか変なこと言ったら嫌だよ。

$x = &xxx;    # $x には abc が代入されるよ。
sub xxx{ return "abc"; }

return ●
 …●を返り値として、呼び出し元に戻る。

ちょっとここで注意だけど、この関数は、絶対にサブルーチンの外で
使っちゃだめなんだ。戻る場所がないからね。
ふたつ以上の返り値を送りたいなら、

return ( $a, $b, $c );

みたいに配列にして送るといいよ。
受け取るときは、

( $a, $b, $c ) = &xxx;

こうやって受け取ることができるよ。
それか、配列をあらかじめ作っておいて、

return @xxx;
@xxx = &xxx;

みたいなこともできるよ。
365月宮あゆ ◆XalkKQX1is :02/12/10 22:38 ID:???
>>351
もうすこし先で勉強するからもうちょっとまってね。

>>352-355
サブルーチン、はとりあえず (4) か (5) まで続くと思うよ。
今は (4) の途中まで書いてるからね。。

>>356
確かに、オートインクリメント演算子は、「1足す」じゃなくて、
「値を1増加させる」っていう機能なのはその通りなんだけど、
そんな扱ってないようなことを勝手に進めないで。
先に「省略してるところもある」ってちゃんと言ってるんだから。
そんなことはあまり知る必要ないんじゃない?

>>358
必要最小限のことは付け足すからね。

>>363
ボクはPHPはほとんどできないんだよね。。
勉強するにもPHPの入門書が数ないからねえ。。
366nobodyさん:02/12/11 07:08 ID:???
返り値と戻り値って、どう違うの?ダレカオシエテ
367 ◆hMJAPH9PWA :02/12/11 12:19 ID:???
>>364
重箱の隅をつつくようだけど、実はサブルーチンの外でもreturnを使えるケースがあるんだよね。
標準ライブラリの中にもその使い方をしているものもあるよ。

ところで、-wスイッチとuse strictの説明の予定はあるの?
コーディングを楽にするためにも、まずその説明をした方が良いと思うね。

>>366
同じ意味だと思うよ。
368366:02/12/11 22:40 ID:???
>>367
ありがと。戻り値でも通じるんだよね?
よかった、前から気になっていたんだ。
369nobodyさん:02/12/11 23:34 ID:M9dNCh9D
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
370nobodyさん:02/12/12 08:30 ID:???
くさい
371nobodyさん:02/12/12 10:53 ID:SmMSqgPF
すいません、教えて下さい
foreach
これってフォーイーチ?
フォーリーチですか?
気になって仕方ないです…
お願いします。
372 ◆hMJAPH9PWA :02/12/12 11:22 ID:???
>>371
for eachだから、そのように。
373nobodyさん:02/12/12 12:12 ID:???
f or each
374371:02/12/12 12:18 ID:SmMSqgPF
>>373
それはあんまりです(笑
375月宮あゆ ◆XalkKQX1is :02/12/12 20:52 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (3) 局所化
 (ニE(#つo⊂#)

サブルーチン、といえばこの関数はよく出るから覚えておいてね。
my と、 local と、 return だよ。
return は、もう勉強したからいらないね。
じゃあ、今回は my と local について勉強するね。これはほとんど同じ意味だよ。
だから、ここでは同じものとするね。いつか機会があれば、説明するね。

my ●;
local ●;
 …どっちも、変数●または配列●を、そのサブルーチンの中だけで
  有効にする、っていうことだよ。
  my 宣言された変数を、プライベート変数、 local はローカル変数、っていうよ。
  逆に、スクリプト全体で使える変数をグローバル変数、っていうよ。
  【いちばん内側の { } で囲まれた範囲だけで有効な変数】っていうことかな。
  この有効範囲を、スコープ、っていうよ。

my $xxx;    # $xxx を my 宣言する
$xxx = "abc";    # 前の行で my 宣言されている
$yyy = $xxx;    # $yyy は my 宣言されていない
my $zzz = "xyz";    # $zzz はここで my 宣言される

じゃあサンプルだよ。

$my = "abc";  $test = "abc";
&xxx;
print "my 宣言した変数=$my<br>\nしてない変数=$test";

sub xxx{ my $my = "xyz"; $test = "xyz"; }
376月宮あゆ ◆XalkKQX1is :02/12/12 20:55 ID:???
>>366
うん、同じだね

>>367
eval の中かな?
eval はまだ取り扱ってないから、出てきたときに説明しようと思って、
こんなところで「eval」って出したら混乱する人もいそうだから、
あえて説明しなかったんだよね。。

-w とか strict は、知っておいた方がいいことだろうね。。
-w は未定だけど、 strict はそのうち勉強する予定だよ。

>>371
ふぉーいーち、だと思うよ
377くせ〜:02/12/12 21:35 ID:???
このあゆ、息臭いなあ
このあゆ、汗っかきだなあ
このあゆ、ワキガ??
378かわいくしたよ:02/12/12 22:02 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ *´ー゚*リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
379nobodyさん:02/12/12 23:14 ID:???
           / ̄ ̄\
           | う う  |
           |  ぐ   う / ̄ ̄ ̄ ̄ ̄ ̄
           |  ウ  | < うげぇ
           \__/  \______
.          r‐-i^i´`||iii》ヽ
         (_| | i/二フ.〉
            (__|_ゝ、__[]_ア
               /  l| |
           /fヨI 中|
          く     l| |
           ` ‐r-十!
             ノ  ! !
               /ゝ,/ー|
           /  /l  |
            / f《 |fヨ |
.             \_)_ノ
380nobodyさん:02/12/12 23:34 ID:???
ヴ?
381 ◆hMJAPH9PWA :02/12/13 00:24 ID:???
>>376
そういえばevalもそうだっけ。でもそれ以外にもあるよ。
実はrequireされるライブラリファイルの中だとreturn出来るんだよ。
例えばAnyDBM_Fileがそうしてる。
ま、普通は使わない機能だけどね。
382nobodyさん:02/12/13 02:31 ID:???
perldoc -f return
subroutine, eval, do FILE ... みたいですね。
ライブラリの中って言うのは、よくモジュール等の最後に 1; ってやるけど
あれって、return が省略されていたんだ?

そういえば、sub 内でも定数とかを返すだけのサブルーチンでは
return省略してるの良く見かけるよなぁ
383nobodyさん:02/12/13 03:08 ID:???
>>382
> あれって、return が省略されていたんだ?

ちょっと違う。
returnがない場合、最後に評価された式の結果が返される。
1; というのは式1;の値は1だから1が返る。

…って動作のはず。
384nobodyさん:02/12/13 06:33 ID:???
日本語のページからうぐぅを検索しました。 約56,500件中1 - 50件目 ・検索にかかった時間0.09秒

385nobodyさん:02/12/13 14:56 ID:TqDERRP1
Perlのクラスは何であんなにヘンテコですか?
386nobodyさん:02/12/13 15:12 ID:???
あんなにってどんなに?
387nobodyさん:02/12/13 15:46 ID:???

睾丸無知
388nobodyさん:02/12/14 19:45 ID:???
>>386は睾丸ですか?
389nobodyさん:02/12/16 01:42 ID:/+dGpF86
あゆタンはやく続きおせーて
390しぼーん:02/12/16 17:40 ID:???
しぼーん
391ショボーン:02/12/18 02:07 ID:???
(´・ω・`)ショボーン
392月宮あゆ ◆XalkKQX1is :02/12/19 20:55 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (4) 引数
 (ニE(#つo⊂#)

引数、っていうのは、「ひきすう」って読むらしいよ。
ボクはこのあいだまで、「いんすう」だって思ってたんだけど。。

サブルーチンから値を持って戻る、っていうことをやったね。
じゃあ次は、値を持ってサブルーチンを実行するっていうことをやるね。

&xxx("abc", "123", "あいう");

こんな風に呼び出すと、特殊配列 @_ に頭から代入されて呼び出されるよ。
当然、

@list = ("abc", "123", "あいう");
&xxx(@list);

と同義だよ。

この辺の話を覚えて、次回は、名無しさんならエラー、っていう
ソースに改造してみるよ。

#投稿が遅れてごめんね。
#遅れてもdat落ちや削除されない限り途中で放棄することはないからね。。
393月宮あゆ ◆XalkKQX1is :02/12/19 20:58 ID:???
>>381
そうなんだ‥
知らなかった
ちょっと恥ずかしいな

>>384
えっ
そんなにあるのっ?!
なんだかすごいね

>>385
Perl、ってクラスって言うのかな…?
呼び方とかよく知らないや。。

>>389-391
遅れてごめんね。
394 ◆soCKet026k :02/12/21 01:51 ID:cbygjUhv
キタキタキター
395Perlは時代遅れ:02/12/21 18:38 ID:???



月宮あゆのPHP教室きぼんぬ


396nobodyさん:02/12/21 18:58 ID:???
このスレほんと勉強になりました。
で、PHPの勉強にすることにしたので、
おれもPHP教室を希望します。
ちょっとづつでいいのでお願いしたいです。
397nobodyさん:02/12/21 19:50 ID:???
いまさらPerl勉強しても需要も無い仕事無い
398nobodyさん:02/12/21 20:29 ID:???
>>397
確かに今さらPerlっつってもね。
でも、月宮あゆ君はよくがんばってると思うよ。
今後もがんばってもらいたいね。Perlで移行!!。
399nobodyさん:02/12/23 03:38 ID:1Wxw8/wH
perl今勉強中なんだが需要無いのか・・・
いや、なにか役立つでしょ。うん。

それとも先にcかphpを勉強した方が良いのか・・・?
400nobodyさん:02/12/23 04:21 ID:???
>>399
趣味にやってるぶんには頭の体操になるしPerlでも良いと思うよ。
Cは用途が違うし難易度が高いから、始めるならPHPのほうが良いと思うよ。
がんばろっ♪
401nobodyさん:02/12/23 20:45 ID:???
>399
使い捨てスクリプト書くのとかにはPerlはすごく便利だよ。
CとPerlは構文が似てるし、Perlをやっても全くCに役立たない、という訳でもなし。
402399:02/12/23 22:05 ID:???
>400-401

レスどもです。
Perlは勉強していきます。役には立ちますよね。

次にPHP、そしてCという順にやっていきます。がんがります。
403nobodyさん:02/12/23 23:37 ID:???
>>402
Perlは今後、使用者は減るけど使えないわけじゃないから勉強してもいいと思うよ。
でも、最終的にCするんだったら、ぼくはPHPを強く勧めるよ。
Perlから始めちゃうとPerl独自の癖がつくのでPerlしかできなくなる危険性があるので、
PHP勉強した後、Perlを勉強したほうかいいかもしれないね♪ がんがれ!
404月宮あゆ ◆XalkKQX1is :02/12/24 07:18 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < エラー画面を作る
 (ニE(#つo⊂#)

じゃあ、まずはソースだよ。
ttp://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0007.txt

&error("エラーメッセージ");

としてサブルーチンを呼びだすと、
( 特殊配列 @_ の0番目の要素だから $_[0] )
エラーメッセージが $_[0] に入って参照するようになってるよ。

こういうエラーのサブルーチンはよく見かけるね。
ぜひ使えるようにしようね。

次回は、環境変数について勉強するね。
405月宮あゆ ◆XalkKQX1is :02/12/24 07:21 ID:???
>>394
うん、遅くなってごめんね

>>395-396
ボクも今、PHPは勉強してるところなんだよね
ちょっとボクにはできそうにないよ
ごめんね

>>397-402
確かにこれからはPHPの時代に変わっていくかもしれないね。

>>403
elsif 、とかPerl以外にみたことないよ。。
406nobodyさん:02/12/24 14:14 ID:???
俺の鯖、CGI使えんのだが…お奨めはあるかね。
407nobodyさん:02/12/24 20:36 ID:???
>>405
Python だと elif
PHP では、 elseif, else if
Perl で、無理に独自のスタイルに馴染まなくても
C ライクなプログラミングも出来るよ。
408 ◆soCKet026k :02/12/24 23:28 ID:2kS8TiT1
>>404
ソースのHTMLが解釈されて見にくいぽ。。。
409nobodyさん:02/12/25 00:07 ID:???
メリークリスマス

あゆタン
410nobodyさん:02/12/25 01:14 ID:???
>>408
ヘッダのContent-Typeを無視して勝手に中身を判断する
IEを恨みましょう。
411nobodyさん:02/12/25 14:14 ID:???
>>407
>Perl で、無理に独自のスタイルに馴染まなくても
>C ライクなプログラミングも出来るよ。

独自スタイルを使わずしてPerlは動くのか?
C知らずしてCライクは無理だろ。もうちと考えてかけよ。
412(´・ω・`):02/12/27 23:58 ID:???
(´・ω・`)
413nobodyさん:02/12/29 18:10 ID:uoxci6sX
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
414nobodyさん:02/12/29 21:05 ID:???
ヒキコモリヲタのくせに生意気だな。
415nobodyさん:02/12/31 13:32 ID:qLQW6luA
>>414
オマエモナー
416nobodyさん:02/12/31 14:08 ID:???
>>407
elsifじゃなかったっけか?
417nobodyさん:02/12/31 16:16 ID:???
>>416
Pythonが?
418月宮あゆ ◆XalkKQX1is :03/01/02 14:41 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (1)
 (ニE(#つo⊂#)

環境変数っていうのを勉強するね。

環境変数は、 %ENV っていうハッシュに入ってるよ。
特に何もしなくても、実行すると自動で使えるよ。
これは、プログラムのどこでも使える、グローバル変数だよ。

じゃあ、全部の環境変数を表示してみようね。

foreach (keys %ENV){
    print qq{$_:$ENV{$_}<br>\n};
}

ここで出てきた、 keys について説明すると、
「ハッシュのキーを全部とりだす」っていう感じだよ。
このへんはまた今度やろうね。

よく使う環境変数を説明するね。
$ENV{REMOTE_ADDR} : リモートアドレス(IP)が入ってるよ。
$ENV{REMOTE_HOST} : リモートホストが入ってるよ。
$ENV{HTTP_USER_AGENT} : 使ってるブラウザとかのデータが入ってるよ。
$ENV{HTTP_REFERER} : そのページへのリンク元アドレスが入ってるよ。

こんな感じかな。
次回は他の環境変数と、スペースがあまったら実用例を書いてみるね。
419月宮あゆ ◆XalkKQX1is :03/01/02 14:44 ID:???
あけましておめでとう、今年もよろしくね

>>406
無料サーバかな?
規約違反するなら infoseek かトクトク
規約違反しないなら XREA がいいと思うな

>>407
Python なんて言語聞いたことない…
他は聞いたことあるけど。。

>>408
ボクもよくわからなかったんだけど410さんが言うにはIEの仕様みたいだね・・・
これはしかたないね

>>409
今は、あけましておめでとう、っていう時期になっちゃったね
ごめんね

>>413
見てくれてたのかな、ありがとうね
これからできるだけ顔を出したいと思ってるんだけどね
最近いそがしくて・・
420nobodyさん:03/01/03 22:48 ID:jx+nlJxM
>>419
あけおめ、ことよろ、ガンガレ
421nobodyさん:03/01/05 00:33 ID:???
あゆタン
422nobodyさん:03/01/05 14:58 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
423月宮あゆ ◆XalkKQX1is :03/01/06 19:32 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (2)
 (ニE(#つo⊂#)

他の環境変数だよ。
環境に依存するものとか、まったく使わない、と思うのは省いたよ。

$ENV{REQUEST_METHOD} : リクエストされたメソッドだよ。普通は GET か POST だよ。
$ENV{HTTP_HOST} : そのスクリプトが動作してるサーバのアドレスだよ。
$ENV{QUERY_STRING} : xxx.cgi?xxxx っていう感じでアクセスされたら、 ? 以降の文字が入ってるよ。
$ENV{CONTENT_LENGTH} : 送られたデータの総容量だよ。
$ENV{HTTP_COOKIE} : クッキーの情報がはいってるよ。

あとは、プロキシの判断をするときに、

HTTP_CACHE_INFO HTTP_FORWARDED HTTP_IF_MODIFIED_SINCE
HTTP_PROXY_CONNECTION HTTP_VIA HTTP_X_FORWARDED_FOR

とかの環境変数を目安にすることもあるね。

じゃあ、次回は、掲示板に書き込んだ人のリモートホストを解析して、
保存するように改造してみるね。

※ $ENV{REMOTE_HOST} では取得できないサーバーが最近増えてるよ。
  こんなサーバーは、 gethostbyaddr 関数を使わないといけないんだけど、
  使い方はまた今度説明するね。
  gethostbyaddr 関数も使えないサーバーもあるらしいよ。。
  こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。
  わからないことがあったら、サーバーの管理人さんに聞いてね。
424月宮あゆ ◆XalkKQX1is :03/01/06 19:33 ID:???
>>420
おめでとう、今年もよろしくね。

>>421
ん?なに?

>>422
Janeで読んだら「ここ壊れてます」、って言われる
なんでだろう
425nobodyさん:03/01/06 23:38 ID:???
取得するときになんか障害が起きたから。
426とりあえず:03/01/07 01:03 ID:mvf11T4j
誕生日おめでとう>あゆあゆ
427nobodyさん:03/01/07 22:45 ID:???
(´Д⊂ヽ・゚。 ウワァァァァアァァン あゆあゆ〜
428>427:03/01/08 01:50 ID:???
???
429nobodyさん:03/01/08 11:47 ID:???
>>426
そういや1月7日はあゆちゃんの誕生日だったっけ。
おめでと〜。

関係ないけど、
このスレでの「月宮あゆ」は共有コテにして、トリップだけ別々にすればいいと思うが。
俺は「C言語CGI」スレの住民だけど、あゆのレスが面白くてこっちにもいてみたり。
430PHP月宮あゆ:03/01/08 12:04 ID:???
>>429
つぅかnobodyさん−>月宮あゆ

を提唱しようではないか。と。

取りあえず次スレはWebProg総合スレにして欲しいっす。
初心者スレとかも良いかもね。
431月宮あゆ ◆XalkKQX1is :03/01/08 20:48 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (3)
 (ニE(#つo⊂#)

じゃあ、掲示板に書きこんだ人のホストを記録するよ。
簡単に言うと、ログファイルに記録すればいいんだけど、
ログファイルにそのまま記録しちゃうと、読む人にホストが見えちゃうんだよね。
たぶんここにいる人たちはホスト開示、っていうのは嫌だと思うんだ。
コメントにする、っていうのも、ソースを見られたらばれちゃうよね。

じゃあ、こんなことをしてみよう。
書きこむときに

<a href='mailto:メール'>名前</a>>メッセージ

っていう書き方をやめるんだ。こうじゃないとホストが筒抜けになっちゃうからね。
じゃあ、ホストを記録できるようにするには、

<a href='mailto:メール'>名前</a>>メッセージ(ホスト)

みたいにして、表示するときに消してやるといいよ。
表示する欄をいじってみるね。

foreach (@log){
    $_ =~ s/\([\w\.-]\)\n$//;
    print "$_<hr>\n";
}

でも、このままだと穴があるよ。
行数が入らないから次回にまわすね。
432nobodyさん:03/01/08 20:50 ID:???
>>431
なぁ、データフォーマットの時点でなんか痛くない?
433月宮あゆ ◆XalkKQX1is :03/01/08 20:50 ID:???
>>425
再取得したらなおったよ
ありがとう

>>426
ありがとう、うれしいよ

>>427
ど、どうしたの?

>>429
ありがとう。

>>429-430
やりたいことがよくわからないよ
ボクの名前の人がいっぱいいて、
みんながいろいろ教えられるスレッドにしていく、ってこと?
434月宮あゆ ◆XalkKQX1is :03/01/08 20:51 ID:???
>>432
うーん・・・
できればsplitあたりを使って今回やりたかったんだけど
行数が入らないからフォーマットは次回まわしかな
435429(みんなごめんよぅ):03/01/09 13:52 ID:???
俺は>>429っす。
重要な語句が抜けてますた(*´Д`)
質問に「答える人達が」共有であゆコテを使おうってことを言いたかったんだ。
「◆XalkKQX1is」あゆ一人だけだと、負担がかかるんじゃないかと思ったから。
気の回しすぎだったらごめん。
軽い気持ちで吊ってくるっす。
436nobodyさん:03/01/10 16:37 ID:???
ィ`
437nobodyさん:03/01/11 02:57 ID:???
>>435
それなら、AYUAYUっていうトリップ探して付けてみたら?
そっちの方が雰囲気出るかも
ただ、◆Xalk..も◆AYUAYU..も掲示板でpassを晒したら、
関係ない奴が偽物として入ってくると言う痛い罠
passの配布方法はどうするの?
438nobodyさん:03/01/11 10:37 ID:???
パスワード パスと呼ぶ奴 厨房さ 
439nobodyさん:03/01/11 11:29 ID:???
password path
440437 ◆AYUwmuUytk :03/01/11 13:11 ID:???
そのためわざわざ英字で書いたんだけど....
自分ダメダメっすね(^.^;
441月宮あゆ:03/01/11 21:02 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
442 ◆soCKet026k :03/01/11 21:52 ID:???
共通トリップ付けるのに偽物がどうこうとか言うなら
いっそトリップ付けなきゃ(ry

もしくはID表示させれば(ry
443nobodyさん:03/01/15 12:49 ID:???
とりあえず、あゆが来るまで保守
444山崎渉:03/01/15 13:35 ID:???
(^^)
445西野つかさ:03/01/15 18:27 ID:NGnYg/Kg
あゆあゆ.com.うぐぅ・・・。(^−^)
446nobodyさん:03/01/15 20:08 ID:BpytE0q0
あゆage
447ひろゆき:03/01/15 20:58 ID:XI5HMpQj
COBOLってどうなんすか、、、
いまどき(仕事以外で)使ってる人いるんすかねえ、、、
448nobodyさん:03/01/15 21:16 ID:???
全部読んだが全く知識のない自分には当然全く分からない
電2>基礎から丁寧に説明してくれるので非常に分かりやすい
449nobodyさん:03/01/15 22:14 ID:???
このスレも電2に載るほど有名になったのかage
450nobodyさん:03/01/16 00:04 ID:juXMvCeg
451nobodyさん:03/01/16 03:29 ID:???
電2に載るのはうれしいけど、肝心のあゆあゆが降臨してくれないからなぁ
降臨きぼーん
452nobodyさん:03/01/16 09:44 ID:???
ヲタドモが騒いでるな
電2ってなによ
453nobodyさん:03/01/16 10:12 ID:???
>>452
電波2ちゃんねる
454210.159.255.255:03/01/16 16:35 ID:iMxUcVql
(´Д`)
455nobodyさん:03/01/16 17:26 ID:???
1は食い逃げの常習犯なので逮捕します
456nobodyさん:03/01/16 19:04 ID:xD66X4/7
感胴上げ
457nobodyさん:03/01/16 19:13 ID:???
通りすがりのたい焼き屋さんが住むスレはここですか?
458月宮あゆ ◆XalkKQX1is :03/01/16 22:07 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ログファイル (1)
 (ニE(#つo⊂#)

前回はホストの記録をやってみたわけだけど、実は拡張子が、
.cgi とかじゃないファイルは、外部から参照されちゃうことがあるんだ
(でも、基本的にサーバーの設定に依存するよ)
log.cgi か何かにリネーム(名前を変更)して、スクリプトも少し
書き直したらこの問題は解決されるね。

じゃあ今回は、少し重い掲示板を作る、っていう想定でやってみるね。
ここでは表示欄にテーブルを組ませたりするよ。
ちょっとここで考えてみると、前回までと同じように、ログファイルに
書き込んでると、容量がどんどん大きくなっちゃうよね。
それは困る、っていうことで、一般的な掲示板では、【区切り文字】を
使って、名前、とかの要素を区切って保存してるよ。

2ちゃんねるでもこれは同じだよ。
http://pc.2ch.net/php/dat/1014096840.dat

名前<>E-mail<>投稿日<>本文<>(サブジェクト)

っていう感じに <> で区切られて保存されてるのがわかると思うよ。
区切り文字は、 <> が一番メジャーで、次に , とか : とか | を見るね。
別に何でもいいんだけどね。でも、本文にその区切り文字があると、
そこで区切られちゃうから、それを避けるようにすればいいね。
じゃあ、今回は

名前<>E-mail<>投稿日<>本文<>ホスト

っていう形式でやってみることにするね。
459月宮あゆ ◆XalkKQX1is :03/01/16 22:14 ID:???
>>435
うーん・・
ボクは別にそれでもいいけど
結構大変な仕事を継続してやってくれる人はいるかな…?
いるならボクは大歓迎だよ

>>437 >>442
トリップのキーはすぐに割れそうな気がするキーなんだけど…
えっと、他のスレでもこのトリップ使ってるから、
公開するつもりはあまりないよ、ごめんね

>>447
COBOL…?
ごめん、聞いたことないよ。。

>>448-449
えっ?!
今みてみたけどホントに掲載されてるね
うれしいよ、今度からも頑張るから応援してね

>>448
そんな難しいこと書いてるかなぁ…
どのへんから分からないのか教えてほしいな

>>451
遅くなってごめんね

>>457
スレ違いだよっ!
460nobodyさん:03/01/17 00:02 ID:???
>>458-459
あゆあゆ降臨
キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
俺はスローペースでもOK
てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
461nobodyさん:03/01/17 00:31 ID:???
月宮あゆの中の人も大変だな。
462nobodyさん:03/01/17 01:33 ID:???
    _ _
  〃┏━━
  ( )   ( )
  (.〆⌒ヽ )
  (∴゚ρ゚∴) < いないよ>>461
  ( £ £ )
  ( £ゑ££ )
  (££ゑ£)
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
463AIR ◆AIR/AeaCbM :03/01/17 22:12 ID:???
                        n
                  A_I_R_ノ V|
                        `''´
The days which are wrapped in the scene of summer and to pass gently
        An encounter with the girls repeated in the sunlight
           Summer continues to where as well
                 She is waiting in the air

                    __(/__
                  ,.-'´    `ヽ
                 r'´  ゝ'   `ヽ
                 { "''     " ii}
                 li       i i ii
                 _i_i i    i i_リ'_
               <___,.ニ=‐-‐- <__>;
.                }/      \`ヽ. イ
               /, , ' i i i 、 \ ヾ i {
              /イ! i ! i i瓜_ト、_`丈_ヽヾ.K 
              /!、、、v'frj「 ; `'}rj`yi`.l \____ 
.             ん'^iハ、ヾヽ´  ワ `゙ハ l !ト ノ´し'⌒`
             l:::::::`ーi i`i::`  .__, イi ii !il:::::::l 
             l:::::::::::,' .'/:::::::r‐w‐ヵ:、 ii i l::::::l 
             l:::::::; ' ム' ‐''`Y^r '` ‐- 、ヽ:::|
             l::/,ィ´ベ   ;゙†.!   /∧ \
             //::::|,'  〉、、 ,','  ゙、  /∧ ヽ、 ヽ、
          //l::::::::/  {  V/ 、 /〉,'./::::}  ヾメ、 ゙ヽ、
         / / く::::く   ゝ、::::\ /:::::::::ノ /l  `ヽ ヽ
         ,' ,'   \::`コ==}   `' ::::::{==「::::::j    }  }
         { {,,. ‐,.ニ"-‐=ニレ'` ー--‐ァ''´\j::/     ノ ノ
         ゝ. V´   _,,. ‐''"     /  ハ\   / /
464nobodyさん:03/01/18 06:38 ID:q6+JV5fJ
月宮あゆ ◆XalkKQX1is つまらんぞ。
シロウトがでたらめばかり書くな。
465nobodyさん:03/01/18 06:40 ID:q6+JV5fJ
ったく、ちょっとスレを読んでみたけど、いいかげんなことばっかじゃねぇか。

月宮あゆ ◆XalkKQX1is  ドシロート うせろ。
466nobodyさん:03/01/18 16:34 ID:???
( ´_ゝ`)…
467月宮あゆ ◆XalkKQX1is :03/01/19 07:34 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ログファイル (2)
 (ニE(#つo⊂#)

ログファイルをどんなフォーマットにするか考えたら、
違う形式で保存されてるんだから、
読みこむときにも工夫しないと読みこんでも変なデータになっちゃうよ。
それで、特定の文字で区切る split っていうのが用意されてるんだ。

● = split ◆, ★

スカラー変数 ★ を正規表現で指定した文字列 ◆ で区切って
配列の要素にして配列 ● に代入するよ。
★ を省略すると、 $_ に対して処理をするよ。

@data = split /<>/, $_;

と、

@data = split /<>/;

は、同じ意味だよ。
あと、こんな指定の仕方もできるんだ。

($name, $email, $date, $message, $host) = split /<>/;

これは 0 番目の要素が名前、ってわかってるなら、
スクリプトは $data[0] って書くより書きやすくなりそうだね。

じゃあ次回は、このへんをまとめて、掲示板に反映させてみるよ。
468月宮あゆ ◆XalkKQX1is :03/01/19 07:36 ID:???
>>460
それもそうだね。
ボクもそれがいいと思うよ。

>>461
結構大変かもしれない。。

>>463
よくできたアスキーアートだね
AIRの観鈴さん、ってわかるよ
こんなの作れる人すごいなあ。。
469劉邦:03/01/19 12:55 ID:iJfTCNLl
正規表記って難しいんですけど・・・
>>469
そうでもないよ。

いきなり全部覚えるのは無理だし使うものは限られているので
自分の使うものだけを取りあえず書きながら覚えていけばいいよ。

後は処理する文字列の特徴をよく把握することだね。
471nobodyさん:03/01/19 13:08 ID:???
>>464-467
冬厨様はお帰りください。
>>469
正規表現で一冊の本になったりするから、奥は深いけど、
>>470さんの言うとおり、最初は使うのだけ覚えて、
あとは少しづつできる範囲を広げていけばいいじゃないかな。
472nobodyさん:03/01/19 15:47 ID:???
臭いヲタドモ必死w
473nobodyさん:03/01/19 21:32 ID:???
>>471
あゆちゃんまで帰らさないで下さいな。
474nobodyさん:03/01/19 23:51 ID:???
>>470
>初期の頃胴の長いあゆ書いてた奴

あの趣向良かったよー
475月宮あゆ:03/01/20 09:13 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    |   ∞,|
    |   ∞,|    復活
    |   ∞,|
    |   ∞,|   胴長あゆ
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'
476nobodyさん:03/01/21 19:34 ID:eVlnRoM0
>>475
それは長すぎだろ。
477nobodyさん:03/01/21 20:26 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  了解です。
  ((ニE/⌒ヾ∞"ヽ  \____________
      ̄し'し'  ̄
478nobodyさん:03/01/21 20:28 ID:???
>477
それでも長すぎだろ。
479月宮ぁゅ:03/01/21 20:40 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    |   ∞,|
    く__∞,ノ
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
     | | | |
    ノ ノ ノ ノ
    し'  し'

481nobodyさん:03/01/21 22:23 ID:???
>>480
使えるって思っちまったよ  (((\リリ ´ー` リ  <  うぐぅ♪
482nobodyさん:03/01/22 02:01 ID:nskHLtl4
1行レスには必要十分かと
483f:03/01/22 02:14 ID:ZsLNgUOG
★あなたのお悩み解決致します!!
◎浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
◎盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
◎行方調査
行方不明になっている家族の消息を調査致します!!
◎電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
◎ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

484nobodyさん:03/01/22 04:10 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  
(((\リリ ´ー` リ ←こいつが毒カレー女に見えてしかたがない
  ((ニE/⌒ヾ∞"ヽ  
      ̄し'し'  ̄
485nobodyさん:03/01/22 10:38 ID:???
・ムッシュかまやつ
・ウド鈴木
・毒カレー女
・もののけ姫歌ってた人
ほがにいねーがー?
486nobodyさん:03/01/22 11:23 ID:???
>>485
えなり
487nobodyさん:03/01/22 18:20 ID:???
>>485
くしゃおぢさん
488nobodyさん:03/01/22 18:46 ID:???
>>487
年が・・・。
489nobodyさん:03/01/23 17:44 ID:???
定期上げ
490nobodyさん:03/01/24 01:59 ID:o0DPXSNm
>>489
上げるなよ。冬厨来るだろうが。ヒキコモリモナ
491490:03/01/24 02:09 ID:???
って言いながら上げてしまった。鬱…
吊ってきます。スマソ
492nobodyさん:03/01/24 22:18 ID:???
わかりやすくていいなぁ
PHPでもこういうスレがあったらな…
>>492
最近はPHPマンセーだからご要望があれば答えるよ。うぐぅ。
494nobodyさん:03/01/25 00:44 ID:???
ご要望というか、最初から…教えて欲しいな…とか…
495nobodyさん:03/01/25 03:51 ID:???
「月宮あゆのPHP教室」とか「月宮あゆのCでCGI教室」とか「月宮あゆの2chScript教室」とか
「月宮あゆの.htaccess教室」とか「月宮あゆのRuby教室」とか「月宮あゆの万引講座」とか






乱立したらそれはそれで楽しそうなんだが月宮あゆの中の人も大変になりそうだな。
496nobodyさん:03/01/25 12:36 ID:???
まいたけから来ますた。
過去ログぼーっと見て、間違いに突っ込まれてないので指摘。

>>37
違う。
Cのif文 = if(条件)文 else 文
Cの文 = 単文の最後に;をつけたもの または 単文を;区切りで並べて{ }で囲んだもの
Perlのif文 = if(条件){単文を;区切りで並べた物}else{単文を;区切りで並べた物}
だから。
これにより、Cではelseの直後に文が来てもいいが、Perlでは { が来なければ行けないと分かる。

詳しくは
ttp://member.nifty.ne.jp/maebashi/programmer/c_yota/semicolon.html
>>496
>まいたけから来ますた。

・・・どこ?
498nobodyさん:03/01/25 12:44 ID:???
>>496
なぁ、C使ってるくせに「ブロック」って用語知らないわけもあるまい。
499マ板研をまいたけと呼ぶ会:03/01/25 12:52 ID:???
>>497 プログラマ板研究、今日から略して まいたけ 。
http://www.ktplan.net/teciai/
>>498 { }の有無を強調したかっただけ。
500nobodyさん:03/01/25 19:41 ID:???
>>496>>499
いや、>>37でいいたいのはelse ifとelsifの違いじゃないのか?
というかなんで今さら>>37に(ry
501nobodyさん:03/01/25 20:37 ID:???
    _
    '´  ヽ.
  ,' ノノノ)))〉
  く((レ゚ ‐゚ノァ  >>500
    く/jつつ  >>496 の上2行読みましたか?
    /__il〉    >>37が言いたいことについてはその通りだと思いますが、内容が間違ってます。
     し'ノ
ま、ここはム技板じゃないし、
「なんか難しい理由があってelsifを使うらしい、 理由は忘れたけどタイプ数も少なくて楽だしラッキー」
でもいいと思います。(でも嘘を言って回るのはやめましょう)
502月宮あゆ ◆XalkKQX1is :03/01/25 23:14 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 掲示板
 (ニE(#つo⊂#)

ここまでのまとめのソースだよ。
どういう処理をしてるのか必ずわかるようにしておいてね。

http://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0008.txt

▼ どうも正確に出ない、って言う人がいたら、右クリックして保存するといいかも。

じゃあ次回は、文字列の処理に関することを勉強するね。

#じゅうぶんテストできてないからおかしくなったりしちゃうかも。。。
503月宮あゆ ◆XalkKQX1is :03/01/25 23:17 ID:???
>>469
最初は難しく思うかもしれないね。
でも少しずつ複雑なパターンに慣れていくといいんじゃないかな

>>495
ボクができそうなのは .htaccess くらいかな・・
あとは誰か他の人がやってくれるならいいかもしれないね
それはそうと、最後のやつ、どういう意味だよっ!
504nobodyさん:03/01/26 01:54 ID:NkO4LfXa
>それはそうと、最後のやつ、どういう意味だよっ!

いや、君の本業というか・・・
505nobodyさん:03/01/26 01:55 ID:???
あげちゃまずいのか・・ごめん
506nobodyさん:03/01/26 03:28 ID:???
>>503
ごめん、口が滑った。
507nobodyさん:03/01/26 12:19 ID:???
>>495
お約束をば……

「中の人などいない!」
508nobodyさん:03/01/26 12:19 ID:???
>>507
吉田戦車だっけか?
509nobodyさん:03/01/26 15:02 ID:???
510nobodyさん:03/01/29 08:50 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  age
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
511月宮あゆ ◆XalkKQX1is :03/01/29 20:47 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < length
 (ニE(#つo⊂#)

じゃあ、今度は新しい関数、 length について勉強するよ。
掲示板にものすっごく長い書き込みをされちゃったら、
とっても重くなっちゃったり大変だよね。。
じゃあ、今回は一定以上長い書き込みは禁止するような
方法を説明していくことにするね。

● = length ★

変数 ★ の長さ(バイト数)を返して ● に代入するよ。

たとえば、 1KB 以上の書き込みを禁止したいなら、

if ((length $in{message}) >= 1024) { &error("本文が長すぎだよ。。"); }

こんなふうに書けばいいね。

1KB=1000バイトだと思ってる人がいるかもだけど、1KB=1024バイトだよ。

if の条件部分が ((length $in{message}) >= 1024) っていう風に
2重カッコになってるけど、「ここは先に処理してね」っていう意味で使ってるよ。
>= 演算子は優先度が低いから、カッコを外しても正常に動作するよ。
このへんがよくわからないなら、カッコをつけててもまったく問題ないから、
あまり気にしなくてもいいよ。

次回は、ファイルテスト演算子について説明するね。
512月宮あゆ ◆XalkKQX1is :03/01/29 20:48 ID:???
>>504
ボクは食い逃げなんてしないよっ
ひどいこと言わないで

>>506
「口が滑った」っていうのは、本音ってこと?
ひどいよっ!
513nobodyさん:03/01/29 22:08 ID:???
>>511
アホか。
514nobodyさん:03/01/30 00:50 ID:???
漏れは
if (length($in{message}) >= 1024) { &error("本文が長すぎだよ。。"); }
って書いちゃうけど、駄目?
515nobodyさん:03/01/30 09:22 ID:???
ぜんぜん駄目
うぐぅに逆らうな
516ゆーいち:03/01/31 04:26 ID:???
CGI&Perlポケットリファレンス使ってるのか?あゆ。
★を省略すると$_が適用されるな。
それとmessageが裸の王様だ。
517nobodyさん:03/01/31 12:28 ID:???
>>511
2バイト文字ではちゃんと文字数が認識されませんから注意。

ぐらい書けよ。
518nobodyさん:03/02/01 08:44 ID:???
if (1024 <= length $in{message}) { &error("短い記法かな。。"); }

キロが1000だろーが1024だろーが何が違うんだ?
掲示板ごときでそんなこと気にしても役に立たんよ。
どっちも「約500文字以内」と注意書きを書くだけのことだし。

真面目に言ってるんじゃなく、あゆあゆの楽しい雑学教室♪などのつもりなら、
1KB=1024バイト、1kB=1000バイト、ネットワーク速度表記などで使われる
1Kbps=1024ビット/秒 くらいまで書いたら?
519nobodyさん:03/02/01 08:45 ID:???
まずは初歩から、だからねえ。
順次追加して覚えていけばいいんじゃない?

モレモ length() 派ダガナー
520519:03/02/01 08:46 ID:???
(´・ω・`)たまたま近い時間の書き込みだった。
521nobodyさん:03/02/01 17:46 ID:I7T2CIzo
http://pc3.2ch.net/test/read.cgi/isp/1043933410/
から来ますた。あゆがんがってね。
522nobodyさん:03/02/01 18:33 ID:U5MszDvj
use bytes ();
if (1024 <= bytes::length($in{message}) { &error("1024bytesを越えています。");
523月宮あゆ ◆XalkKQX1is :03/02/01 23:06 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイルテスト演算子
 (ニE(#つo⊂#)

ファイルテスト演算子は、こんなことができる演算子だよ。
・このファイルがあるかどうかチェック (-e)
・ファイル(ディレクトリ)が読めるかどうかチェック (-r)
・ファイル(ディレクトリ)に書けるかどうかチェック (-w)
・ファイルかどうかチェックする (-f)
・ディレクトリかどうかチェックする (-d)
・ファイルのバイト数をチェックする (-s)

これくらい知ってるといいね。
実例だよ。

if ( -e "test.txt" ) { print "ファイルがあるよ"; }
else { print "ファイルないよ"; }

if ( -r "test.txt" ) { print "ファイルから読めるよ"; }
else { print "ファイルから読めないよ"; }

if ( -f "test.txt" ) { print "通常ファイルだよ"; }
else { print "通常ファイルじゃないよ"; }

$size = -s "test.txt";
print "$sizeバイト";

他にもいろいろあるんだけど、また必要になりそうだったら説明するね。
ややこしい説明はなるべく避けたいからね。。

じゃあ次回は、他の文字列処理関係の関数を勉強するよ
524月宮あゆ ◆XalkKQX1is :03/02/01 23:11 ID:???
>>514
そう言われてみればそっちのほうが綺麗に見えるね…
意味的には同じだよ

>>516
うん、ボクのポケットリファレンスは使いすぎでもうボロボロ…

>>517
全角文字が2バイトってことは一般常識なんじゃないかな…?

>>518
いや、それは行が少しあまったから足しただけなんだよね
別にそんなに深い意味はないよ

>>519
うんうん、そうだよね

>>521
なぜかJaneで既読になっちゃってるよ…

>>522
そんなモジュールがあるんだ…
知らなかったよ
ちょっと調べてみるね
勉強になったよ、ありがとうね
525nobodyさん:03/02/01 23:11 ID:???
括弧なし関数を理解せずに使ってるとはまる例:

$a = '100';
$b = '200';

$sum = length $a + length $b;

$sumは6になるでしょうか?
526nobodyさん:03/02/02 01:39 ID:???
>>524
全角文字だけが2バイト、ではないよね。
527nobodyさん:03/02/02 10:07 ID:???
>>526
全角文字が2バイトとは限らんしな。
528nobodyさん:03/02/02 10:23 ID:EcuvSD39
半角かなで2バイトとか、
全角漢字で3バイトとかあるよね。
529nobodyさん:03/02/02 10:23 ID:EcuvSD39
>>525
3になる
と思うんだけどあってるか?
530nobodyさん:03/02/02 10:40 ID:???
$sum = length ($a + (length ($b)));
こう書くと判りやすいかも。@Ans. $sum = 3
531nobodyさん:03/02/02 10:44 ID:XEuBL7+y
大体、数ヶ月に一度パテント料が支払われていたのですが、
大仁田さんは。ときにはその半分の500万円を持って行ってしまします。
大仁田さんはどこの興行に出ても。「客が入ったのは俺のおかげじゃ!」と言い。
毎回20〜30万のギャラを持ってゆくのです。
前項でポーゴさんのギャラが破格だったと書きましたが。それでも1試合8万円です。
私たち程度の団体ではまったく考えられない金額でした。★故荒井氏著「倒産FMW」より抜粋
□自殺についての詳細はこちら
http://www.yomiuri.co.jp/hochi/battle/may/o20020516_40.htm
http://www.nikkansports.com/jinji/2002/seikyo020517_2.html
http://www.zakzak.co.jp/top/t-2002_05/2t2002051704.html
荒井元FMWプロレス団体社長を自殺に追い込んだ
大仁田議員に清き一票おながいします!
http://kenji03.hp.infoseek.co.jp/cgi-bin/kage/votec.cgi
532nobodyさん:03/02/02 11:44 ID:???
>>530
意味考えると激しく妙な式だな。それ。
533nobodyさん:03/02/02 13:00 ID:???
>>530

それ、2回自動型変換が働いてるから、型のある言語だと書けない、と思う。。
534nobodyさん:03/02/02 13:04 ID:???
>>533
気のせいだと思う。
535nobodyさん:03/02/02 13:27 ID:???
明示的な型変換をすれば出来るけど。。

知らずにはまることは無いと思う。
536月宮あゆ ◆XalkKQX1is :03/02/10 16:39 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < substr
 (ニE(#つo⊂#)

今日は、文字列の指定部分だけを取り出す、 substr っていう関数について勉強するよ。

● = substr ◆, ★, ■

◆ を対象に、 ★ バイト目から ■ バイト取り出した文字列を ● に代入するよ。
★ がマイナスなら、逆から数えるよ。
■ がマイナスなら、うしろから abs(■) バイト削ったところまで代入されるよ。 … ※
■ が省略されていたら、 ★ で指定した位置以降を全部代入するよ。

※ ● = abs ◆
  数値 ◆ の絶対値を ● に返すよ

実例だよ。

$test = "abcdefghijklmnopqrstuvwxyz";
print(substr($test, 0));     # abcdefghijklmnopqrstuvwxyz
print(substr($test, 0, 10));     # abcdefghij
print(substr($test, 10, 10));     # klmnopqrst
print(substr($test, -10));     # qrstuvwxyz
print(substr($test, -20, -10));     # ghijklmnop
print(substr($test, 10, -10));     # klmnop

まあ、柔軟に使えるようにしておいてね。
537月宮あゆ ◆XalkKQX1is :03/02/10 16:42 ID:???
>>525
うん、優先度を取り違えると間違えそうな例だね

>>526-528
今ちょっと調べてみたけど…
その通りみたいだね
初めて知ったよ
勉強になった、ありがとうね
538ゆーいち:03/02/13 01:00 ID:???
あゆはprintに括弧使う派か。
俺は使わない派だな。
539保守:03/02/23 22:30 ID:???
あゆは何処?戻ってこないのか…(鬱
540nobodyさん:03/02/24 00:46 ID:???
>>539
やっほーぶーぶーかと思われ。@ぁゅ
541長かりしあの頃:03/02/24 00:54 ID:???
>>540
規制対象外っす。ここ。
542nobodyさん:03/02/25 12:07 ID:???
入試?
543nobodyさん:03/02/25 18:40 ID:???
http://www.wai2.jp/~pear/
>高校入試が迫ってきてるんで更新頻度が下がるかもしれんです。。

リア厨やったんか
544nobodyさん:03/02/25 19:38 ID:???
COBOL知らないって言ってたから何か変だとは思ってたよ。
545ほっしゅ:03/03/01 15:48 ID:???
 
546初心者:03/03/02 17:25 ID:EYbp7ypM
WindowsでEXEファイルを実行したいのですが
exec関数は使えるのですか>
547nobodyさん:03/03/02 20:12 ID:???
> リア厨

マジ!?(;´Д`)
548nobodyさん:03/03/04 04:36 ID:OXFQovKc
そろそろ高校入試って終わってない?

>>547
マジなのかなぁ。
549nobodyさん:03/03/04 04:40 ID:???
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/kaorin/
550nobodyさん:03/03/05 00:36 ID:???
>>549 は見る必要なしです。広告のバナー集です>ALL
551nobodyさん:03/03/05 00:41 ID:5JBlRiko
わざわざコピペ宣伝クリックしてみんなにアドバイスしてる>>550晒しage
552山崎渉:03/03/13 17:08 ID:???
(^^)
553nobodyさん:03/03/14 15:38 ID:???
552 :山崎渉 :03/03/13 17:08 ID:???
(^^)
554月宮あゆ ◆XalkKQX1is :03/03/16 05:27 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 文字コードのおはなし
 (ニE(#つo⊂#)

なんか順番が前後しちゃうような気もするけど、文字コードについて説明するね。
文字コードには、 Shift_JIS と JIS と EUC が主にあるよ。
Windows では、メモ帳で入力すると、Shift_JISとして保存されるよ。
Windows のデフォルトは Shift_JIS なんだ。

じゃあ、掲示板に投稿されたとき、 Windows じゃい OS から書きこまれたら、
別の文字コードになって、それを Shift_JIS として扱うから、
【文字化け】しちゃうことがあるんだ。

じゃあ、どうしてやるのがいいのか。
書きこまれたときに、「文字コードを変換」してやるといいね。

jcode.pl っていうライブラリをここで紹介しておくね。
ttp://srekcah.org/jcode/

他にもいろいろ方法があるけど、とりあえず一番楽かな…

require "jcode.pl";
&jcode::convert(\$xyz, 'sjis');

こうすると、 $xyz を Shift_JIS に変換することができるよ。
次回は実例をあげてみるね。

他にも機能があるよ。
ttp://www.mikeneko.ne.jp/~lab/kcode/jcode.html
555月宮あゆ ◆XalkKQX1is :03/03/16 05:32 ID:???
長い間保守ありがとうね。

>>538
えっと、ボクも普段は使わないんだけど、
他の関数を組み合わせるときは、つけるようにしてるよ。

>>539
ごめんね
これまですごく忙しくて

>>542-544
うん、そうだよ。だから忙しくて…

>>546
ボク、CGIぐらいしかいじったことないから、
そういうことはちょっとわからない、ごめんね

>>547
嫌だった?

>>548
14日だったんだよ
兵庫県は他より遅くて…
556nobodyさん:03/03/16 07:22 ID:???
おお、ついに復活ですか。
あゆちゃんの中の人、なんか知らんけどお疲れさま〜。
557nobodyさん:03/03/16 09:43 ID:???
で、合格発表ゎ?(・∀・)ニヤニヤ
558nobodyさん:03/03/17 05:24 ID:???
あああ
559nobodyさん:03/03/17 18:08 ID:???
> 削除人
乙〜
560nobodyさん:03/03/17 23:39 ID:???
>>546
system関数使うといいんでない

$ex = "c:\nantoka\nantoka.exe";
system ($ex);

openを使うときもあるけどたいていはnkf+sendmailを使ってメールを
飛ばすぐらいかなぁ
561nobodyさん:03/03/18 08:58 ID:???
>>556
【「中の人」終了のお知らせ】 利用者各位

平素は「中の人」をご利用頂きありがとうございます。
長らく皆様に御愛用頂きました「中の人」ですがその役目を
終えたと判断し、このたびサービス終了の運びとなりました。
現在新規サービスを計画中ですので今後とも宜しくお願い致します。
562nobodyさん:03/03/19 02:55 ID:???
tes
563nobodyさん:03/03/19 09:46 ID:???
> 削除人
乙〜
564nobodyさん:03/03/19 14:26 ID:???
おー!3げと。
565nobodyさん:03/03/19 14:26 ID:???
早く教えてほしいぽ ♥
566nobodyさん:03/03/19 14:28 ID:???
ワラタ メール公開してるし
567nobodyさん:03/03/19 14:28 ID:???
4なのかよ!!Part.4だし。なにいってんだ。
568nobodyさん:03/03/19 14:28 ID:???
まず自己紹介きぼん
569nobodyさん:03/03/19 14:29 ID:???
こっちはどうしたよ?
570nobodyさん:03/03/19 14:29 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'
571nobodyさん:03/03/19 14:29 ID:???
アフォ
572nobodyさん:03/03/19 14:29 ID:???
なんかそういう人形が大阪の食い物屋の店頭にあるよな。
573nobodyさん:03/03/19 14:30 ID:???
良スレの悪寒!!
574nobodyさん:03/03/19 14:30 ID:???
CGIってなんですか?なんかあちこちでCGIといえばperlとかCだとか言われてますけど
何の事かさっぱりわかりません。
575nobodyさん:03/03/19 14:30 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  COMMON GATEWAY INTERFACE
  ((ニE/⌒ヾ∞"ヽ   Httpサーバとプログラムを繋ぐためのインターフェース規格(?)
    (こ)   ∞ |こ)    CGIの条件とは
    |   ∞,|     ・そのサーバで実行できる形式である。
    |   ∞,|     ・標準入力/出力を扱える。
    |   ∞,|     ・環境変数を取得できる。
    |   ∞,|     なんだよ。
    |   ∞,|
    |   ∞,|     これさえ満たしていれば言語は問われないんだ。
    |   ∞,|     テキスト処理が得意なPerl君と高速で使える人が多いC君が
    |   ∞,|     主に使われてるよ。
    |   ∞,|    
    |   ∞,|     もちろん、PascalやLISP(?)、RUBYなどもOK。
    |   ∞,|     WIndowsNTがサーバならVBもつかえるんだよ。うぐぅ。
    |   ∞,|    \____________
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'
576nobodyさん:03/03/19 14:30 ID:???
で、できる
577nobodyさん:03/03/19 14:30 ID:???
上手な食い逃げの方法教えてください。
578nobodyさん:03/03/19 14:30 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  逃げる直前まで、「お金を払うよオーラ」を出すんだよ。
  ((ニE/⌒ヾ∞"ヽ  \____________
    (こ)   ∞ |こ)
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    |   ∞,|
    く__∞,ノ
    し' し'

579nobodyさん:03/03/19 14:31 ID:???
一行レスの時は胴体短くして下さい。
容量の無駄ですし。
580nobodyさん:03/03/19 14:31 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  了解です。
  ((ニE/⌒ヾ∞"ヽ  \____________
      ̄し'し'  ̄
581nobodyさん:03/03/19 14:31 ID:???
あんた、極端だな(笑)
582nobodyさん:03/03/19 14:32 ID:???
す、すげぇ・・・
マトモ過ぎるレスが返ってきた・・
583nobodyさん:03/03/19 14:32 ID:???
うぐぅ。もう学校の時間だよう。
どこに通ってるかって?秘密だよ♪

あゆがわかる簡単な質問なら答えるよ。
584nobodyさん:03/03/19 14:32 ID:???
うぐぅ。一人称は「ボク」だね。失敗失敗。
585nobodyさん:03/03/19 14:32 ID:???
あゆ萌えJAPUさんはキモいですか?
586nobodyさん:03/03/19 14:32 ID:???
 
587nobodyさん:03/03/19 14:32 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < 何でも聞くべし。
  ((ニE/⌒ヾ∞"ヽ  \____________
      ̄し'し'  ̄
588nobodyさん:03/03/19 14:33 ID:???
{print;shift;{}{}shift;shift;map @hoge;white(-1){shift;shift;}}
589nobodyさん:03/03/19 14:33 ID:???
無限ループ。
590nobodyさん:03/03/19 14:33 ID:???
うぐぅ。
591nobodyさん:03/03/19 14:33 ID:???
whiteってどんな関数だよ。
592nobodyさん:03/03/19 14:34 ID:???
ぐは、whileじゃなかった・・・。無限ループ発言撤回。
593nobodyさん:03/03/19 14:34 ID:???
うぐぅ。 
594nobodyさん:03/03/19 14:34 ID:???
サーバーサイドのエロゲやりたい
595nobodyさん:03/03/19 14:34 ID:???
Cをとっても意識したつくりと思われるperlですが、
どうしてelsif,last,redoなんですか
596nobodyさん:03/03/19 14:34 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  パクったんじゃなくて意識しただけだからだよ。
  ((ニE/⌒ヾ∞"ヽ    自分がこっちの方がいいと思ったら変更すればいい。
    (こ)   ∞ |こ)   Perlは効率を優先した言語だからね。
    く__∞,ノ     else ifとするより2文字稼げる?
    し' し'        多分コンパイルの時点で最適化されるのかな?
                \____________
597nobodyさん:03/03/19 14:35 ID:???
ムッシュかまやつに似てる、そっくりだ
ttp://www.webk.co.jp/singer/image.jpg
598nobodyさん:03/03/19 14:35 ID:???
Perlで記述したCGIの、状況に応じた各種テスト方法の
オススメを一通り教えてホスイ マヂで
(逆でもOK、 :このテスト方法はこういうときに便利)

モジュールいろいろ豊富なのはイイんですが、
オレみたいなヘボーンPGはどれを選んで良いのか、
上手い答えがなかなか出せませんので、参考にさせてください
599nobodyさん:03/03/19 14:35 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  基本だけどテストケースをしっかり作ってホワイトボックステスト。
  ((ニE/⌒ヾ∞"ヽ    職業プログラマじゃないからあんまり詳しくないよ。うぐぅ。
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
                \____________
600nobodyさん:03/03/19 14:35 ID:???
CでCGI組みたいんだけど、なんか参考になる本かページないですか?
主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?
601nobodyさん:03/03/19 14:35 ID:???
うぐぅ、名前とアドレス欄間違えた‥‥アフォだw
602nobodyさん:03/03/19 14:36 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  この辺なんてどうでしょ? 他にもあったと思うから探してみます。うぐぅ。
  ((ニE/⌒ヾ∞"ヽ   \http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
    (こ)   ∞ |こ)    \____________
    く__∞,ノ     
    し' し'        
603nobodyさん:03/03/19 14:36 ID:???
ありがとうございます。
たしかにelsifもlastもredoも文字数は少ないですね
604nobodyさん:03/03/19 14:36 ID:???
      _ _
     〃┏━━ 、
  >−       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  変なこと言うけどPerl/CGIの入門書。
  ((ニE/⌒ヾ∞"ヽ    上にも書いたけどCGIはある条件さえ満たせば言語は問われないんだ。
    (こ)   ∞ |こ)   無理してCでの入門書を探すより腐るほど出てる詳しいPerlでの本の方が参考になるよ。
    く__∞,ノ     上にも書いたけどPerlはCとかなり似ているから結構読めるよ。
    し' し'        
               暇だから簡単にまとめておくね。

               POSTの場合、データは標準入力に入る。
               GETの場合、データは環境変数QUERY_STRINGに入る。
               リモートホストなどのステータスは環境変数に入る。
               出力は標準出力に対して行う。
               出力の前にprintf("CONTENT-TYPE: text/html\r\nr\r\n");を忘れないでね。


               うぐぅ。あんまり祐一の役にたてなかった気がするよぉ。
605nobodyさん:03/03/19 14:36 ID:???
>主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?

(1) CでCGIを組めるサーバは一般人用にはあまりなく、従って売れ行きが期待できない
(2) CGIは結局引数というか、動作条件を環境変数から得てテキスト(HTML)を吐く
ある意味ごく普通のプログラムが基本である

あたりかな。
606nobodyさん:03/03/19 14:36 ID:???
タイミング良いね。
607nobodyさん:03/03/19 14:36 ID:???
追加
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  Perl >>>>>>>>>>>>>>>>>>> Cだからだよ。
  ((ニE/⌒ヾ∞"ヽ    可変長のデータ扱うことが多かったり文字列を分割することもしばしば。
    (こ)   ∞ |こ)   言語仕様は妙だけどテキスト処理に強いPerlの方が簡単にかけるんだ。
    く__∞,ノ     けど、その代償は大きくて処理速度とシステム負荷は大きい。
    し' し'       それで、高速かつふざけた量のデータを処理する場合にはやむなくCを使うんだ。多分。 

               それと、Cがコンパイル言語だと言うことも問題だよ。
               CでCGIを組んだ場合、サーバで動くコードにコンパイルしなくちゃいけないんだ。
               (たまに.cを.cgiに変えたのに動きません。ってかわいい初心者がいるね。)
               でも、無料または一般用プロバイダが提供するサーバでGCC(CC Cコンパイラ)を
               提供しているところはtok2しかないよ。うぐぅ。
               そもそもtelnetが使えるところも少ないんだよ。
               ローカルでサーバと同じOSを使えばいいんだけどスマートじゃないよね。
               (クロスコンパイルという手もある。)
               その点Perlはインタプリタ(正確には違う。)。ソース互換は大抵の場合保証されているからお手軽なんだ。
               C/CGIの教科書を書こうとすると、
               「サーバ上でgccを使うってどうやるんですか?」
               って質問が殺到するから書きにくいのかもね。
608nobodyさん:03/03/19 14:37 ID:???
色々と回答ありがとうございました。

標準入力/出力と環境変数の取得方法(のページにしっかりあった)さえ知ってれば
普通に組めそうれすね(当方、Perlはそこそこ書けるのでした)

本がないのは結局、CのCGIが一般向けじゃないってことですかね。
609nobodyさん:03/03/19 14:37 ID:???
Perlが正確にはインタプリタじゃないってのはどいうこと?
610nobodyさん:03/03/19 14:37 ID:???
これも微妙に違うような気もするけど、
ttp://www.aifis.ne.jp/heat/assistant/perl-intro.html
とか。

perldoc perlrunとかやるといきなり「Perlインタプリタ」って文字が出てきて鬱。
611nobodyさん:03/03/19 14:37 ID:???
XREA( http://www.xrea.com/jp/ )もgcc逝けるよ。SSHで。
612nobodyさん:03/03/19 14:37 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  ソースは忘れたけど、スクリプト実行時にコンパイルしてその後に実行してるんだって。
  ((ニE/⌒ヾ∞"ヽ    怖い人たちにたたかれたらやだから思わせぶりな書き方にしちゃったよぉ。
    (こ)   ∞ |こ)   ごめんなさい。
    く__∞,ノ         し' し'        案外あるんだね。gcc OKのところ。
613nobodyさん:03/03/19 14:38 ID:???
たしかにかまやつに似ているなぁ(笑)
614nobodyさん:03/03/19 14:38 ID:???
正規表現の最後のoってあるじゃん。
m/foo/bar/o <-これ
これとか、コンパイルする部分とその場で実行する部分があることを感じさせてくれるよね。
615nobodyさん:03/03/19 14:38 ID:???
なるほど、一つ賢くなったよ!
616nobodyさん:03/03/19 14:38 ID:???
     ____                        
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴<・>∴∴.<・>|    
  |∵∵∵/ ○\∵|     
  |∵∵ /三 | 三| |  / ̄ ̄ ̄ ̄
  |∵∵ | __|__ | |< うるせー馬鹿!
   \∵ |  === .|/  \____
     \|___/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/:
617nobodyさん:03/03/19 14:38 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ TーT リ < うぐぅ。
  ((ニE/⌒ヾ∞"ヽ    
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
618nobodyさん:03/03/19 14:39 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <    ((ニE/⌒ヾ∞"ヽ   \却下。うぐぅ。
    (こ)   ∞ |こ)   
    く__∞,ノ     
    し' し'        
619nobodyさん:03/03/19 14:40 ID:???
それは「変数展開は最初に実行したときのみ」って意味で、
コンパイル時に評価されるわけじゃないでしょ。

コンパイル時に実行/評価されるのはBEGINブロックね。
for (0 .. 9){
BEGIN{ print "begin\n" }
print "loop: $_\n";
}
620nobodyさん:03/03/19 14:40 ID:???
FORTRANやCOBOLでもCGIって組めますか?
621nobodyさん:03/03/19 14:40 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  却下されちゃったから引き続きボクだよぉ。
  ((ニE/⌒ヾ∞"ヽ    はっきり言ってFORTRANもCOBOLも使ったこと無いよ〜。
    (こ)   ∞ |こ)   上の方で書いたけど、
    く__∞,ノ     
    し' し'        ・サーバで動く形式(ファイルを叩くだけで実行出来ること。 RUNの必要なBASICなどは不可。)
                ・標準入出力が扱える。
                ・環境変数が扱える

                この3点が可能ならCGIとして使えるよ。
                でも、標準入出力や環境変数って言う概念のないOSではこの限りじゃないよ。
                FORTRANなら何となく出来そうだよね。

622nobodyさん:03/03/19 14:40 ID:???
期待age
623nobodyさん:03/03/19 14:40 ID:???
packageってどういう時に使えばいいんですか?
いまいちよくわからない・・・
624nobodyさん:03/03/19 14:41 ID:???
#!/usr/local/bin/manko

/*このスクリプトは画期的な新言語「MANKO」を使用しています*/

%doutei = @;

@ key ->> .*

whitebase(%doutei){printrash "%doutei";}

/*最後の処理*/

lastescape;

sub manko{

$kekeke = 1;

hyperif($kekeke){print "ギコハハハ";}

}

__DEAD__
625nobodyさん:03/03/19 14:41 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  基本的にはネームスペースの分離だと思うよ。
  ((ニE/⌒ヾ∞"ヽ    ネームスペースってわかるかな?名前空間とも書いてあるね。C++とかは。
    (こ)   ∞ |こ)   例えばtest.plをrequireするnamespace.plがあるとするよ。
    く__∞,ノ     test.plにはayuayu()っていうサブルーチンがあるとすると、
     し' し'       namespace.plではayuayu()と言うサブルーチンは定義出来ないんだ。
               プログラムはプログラマがどっちのayuayu()を呼び出したいかわからないからね。
               と、言うことは、人が作ったライブラリを使うときには細心の注意が必要。面倒だよぉ。

               そこで登場するのがパッケージ。これはある名前群をグループ化出来るんだ。

               例えば、ayuayu()がtsukimiyaと言うパッケージ内で宣言されたとすると、それはtsukimiya::ayuayu()
               となって、何もないayuayu()とは区別されるんだ(何もないはMain::に属していることになるよ。たしか。)。
               こうすれば、他のライブラリのことは全く気にせず名前を付けられるようになるよね。
               もちろん、パッケージ名は他とだぶらないようにする必要があるけどね。

               ところで、変数とサブルーチンをグループ化する機能ってどこかで見たことない?
               そう、C++などのクラスだよ。
               Perlのクラスはパッケージを使って実現されてるんだ。 
               でも、そのおかげでPerlのクラスはわかりにくい・・・って言うのがボクの私論だよ。            
626nobodyさん:03/03/19 14:41 ID:???
デフォルトパッケージはMainじゃなくmainな。
ついでにmainは省略できるので$::fooとか ::bar('arg')とかできる。

つーか知らないんなら調べてから書け。もしかして猫と同一人物か?
627nobodyさん:03/03/19 14:41 ID:???
大文字小文字で怒るなよ・・・重箱?
628nobodyさん:03/03/19 14:41 ID:???
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   
       |         
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
       | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
   ∧ ∧ |/\_________                   
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \
629nobodyさん:03/03/19 14:42 ID:???
Perlの話ですので非Perl使いは黙ってててください。
630nobodyさん:03/03/19 14:42 ID:???
なるほど・・・。
勉強になりました。
ありがとー。
631nobodyさん:03/03/19 14:42 ID:???
突っかかりたい年頃なんだよ
相手にするな
632nobodyさん:03/03/19 14:42 ID:???
顔がののたんです
633nobodyさん:03/03/19 14:42 ID:???
良質スレあげ

ちと質問なんだけど、SSIでPerlスクリプトを叩くとき、
スクリプト自体の絶対アドレスってわからんのかな?
環境変数にはHTMLのがはいってるし
634nobodyさん:03/03/19 14:43 ID:???
$0 とかでわからなかったっけ?
635nobodyさん:03/03/19 14:43 ID:???
一緒にすんな!!ボケ
636nobodyさん:03/03/19 14:43 ID:???
$0 だとファイル名になってしまう・・・
やはりTelnetでPWDして調べるしかないのかの
637nobodyさん:03/03/19 14:43 ID:???
$pwd=`/bin/pwd`;
638nobodyさん:03/03/19 14:43 ID:???
もしコマンドが許されてなくて が駄目なら Cwd.pm なんかが
ディレクトリを一個一個上がっていって調べてくれるらしいですが・・・
詳細は知らぬ。それと SSI は知らぬ。スマソ
639nobodyさん:03/03/19 14:43 ID:???
こんなんでいいかな?

my $path = ($ENV{SCRIPT_NAME} =~ /(.+\/)[^\/]+/)[0] . $ENV{_};
$path =~ s!/\./!/!g;

print $path;
640nobodyさん:03/03/19 14:44 ID:???
サンクスコ。うまくいったよ。というか標準ライブラリ覚えてなさ過ぎだな。

,80
環境変数もコマンドも変な値返してくるサーバーだったのね。

どうでもいいけどあゆあゆどこいったのかな?
変な厨房が追い出したとか書いてあったけど
641nobodyさん:03/03/19 14:44 ID:???
オールラウンドプログラミングvol.3
 C/C++300の技
技術評論社 ISBM4-7741-1312-3
1980+税

青緑っぽい本。
わかりやすい本だとは言わないけど、CでCGIをやる場合の
サンプルコードとかが載ってるから、参考にする程度ならいいかも。
642nobodyさん:03/03/19 14:44 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < http://www.gedoh.org/aki/2ch/current/bbs/
  ((ニE/⌒ヾ∞"ヽ   \みんなが一番よく知っているサイトのC言語製CGIだよ
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'       
               
              
643nobodyさん:03/03/19 14:44 ID:???
read.c だけ見たけど、
初期とずいぶん変わったねー
644nobodyさん:03/03/19 14:44 ID:???
はあゆにジェラシー(藁
645nobodyさん:03/03/19 14:44 ID:???
うぐぅ・・・祐一くんおどかさないでよ・・・
646nobodyさん:03/03/19 14:45 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < うーーーーーーーーーーぐぅぅぅぅぅ
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'       
647nobodyさん:03/03/19 14:45 ID:???
648nobodyさん:03/03/19 14:45 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ;゚∀゚ リ  < うぐぅ、ネタだけどありがとう
      し' し'       
649nobodyさん:03/03/19 14:45 ID:???
japu逝ってヨシ
650nobodyさん:03/03/19 14:45 ID:???
なんか最近顔が変わった?
651nobodyさん:03/03/19 14:46 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < うーーーーーーーーーーぐぅぅぅぅぅ
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'   
652nobodyさん:03/03/19 14:46 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ゚∀゚ リ  < ウグゥ━━━━━━(゚∀゚)━━━━━━ !!!!!
  ((ニE/⌒ヾ∞"ヽ   \
    (こ)   ∞ |こ)   
    く__∞,ノ     
     し' し'   
653nobodyさん:03/03/19 14:46 ID:???
      _ _
     〃┏━━ 、
     |       ) 
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ;゚∀゚ リ  < うぐぅ、ボクは別人だよぅ
      し' し'       
654nobodyさん:03/03/19 14:47 ID:???
月宮先生は、Perl歴何年ですか?
何冊Perlの本を持っていますか?
Perl使えるようになるポイントは何ですか?
655nobodyさん:03/03/19 14:47 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < ケント・パイプカットとつくろう!PerlでCGI。これ一冊で十分。
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'



656nobodyさん:03/03/19 14:47 ID:???
背中にヘリコプターのハネ付けてるのですか?
657nobodyさん:03/03/19 14:47 ID:???
Perlを習うための心構えとは? どうぞ。
658nobodyさん:03/03/19 14:47 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < あくまでこれは方言だと心得るべし。
  ((ニE/⌒ヾ∞"ヽ   気がついたら「ハッシュと正規表現無いと死ぬ」みたいなプログラマはダメだよ〜
    (こ)   ∞ |こ)  \____________
    く__∞,ノ
    し' し'
659nobodyさん:03/03/19 14:47 ID:???
でも便利なんだよな・・・。
660nobodyさん:03/03/19 14:48 ID:???
ハッシュと正規表現無いと死ぬ〜
661nobodyさん:03/03/19 14:48 ID:???
★が目に付くなー ★が チカチカイライラ・・・
662nobodyさん:03/03/19 14:48 ID:???
俺もキャップ欲しい
663nobodyさん:03/03/19 14:48 ID:???
てへ
664nobodyさん:03/03/19 14:48 ID:???
うるせーバカ
665nobodyさん:03/03/19 14:49 ID:???
白星なのに怒られたよあうあうあ〜
666nobodyさん:03/03/19 14:49 ID:???
Perlを習得するには何が必要ですか?
667nobodyさん:03/03/19 14:49 ID:???
Kentサマへの崇拝
668nobodyさん:03/03/19 14:49 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < OSとPerl処理系とエディタ(うぐぅ、あたりまえだよ〜)。
  ((ニE/⌒ヾ∞"ヽ   後、参考書は一冊買っておいた方がいいよ〜。
    (こ)   ∞ |こ)  すぐわかるPerlがおすすめ。
    く__∞,ノ    でも、オブジェクト指向とかパッケージには触れてないから注意。
    し' し'       CGIは書けてもここの話には付いていけないよ〜うぐぅ。
              \____________
669nobodyさん:03/03/19 14:49 ID:???
いよぅ!かまやつ!
むっしゅむらむら
670nobodyさん:03/03/19 14:49 ID:???
Perl神の降臨を待つのみです。 さあ、祈るのです。
671nobodyさん:03/03/19 14:50 ID:???
ヘリコプターさん、
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=621
これですね。その本。
KENTの本はどうですか?
CGIは書くですか? PerlでCGIとして動作するプログラムを
書くのではないのですか?
672nobodyさん:03/03/19 14:50 ID:???
ヘリコプターをなぜつけているのですか?
673nobodyさん:03/03/19 14:50 ID:???
for($i=0;$i<50000;$i++){
&openfile($file); # openfile は $file を開いて @in に代入する関数
foreach(@in){
s/a//g;
}
}

これでね、$file を10KB と 100KB のものにした場合、なぜか10KB のものの
ほうが処理時間がかかっちゃうんだけどこの理由わかりる?
674nobodyさん:03/03/19 14:50 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ < 今回は自分の発想を大切にしようと思い、掲示板とかの作り方に関する本は読んでないよ。ボク。
  ((ニE/⌒ヾ∞"ヽ   唯一読んだのが「すぐわかる」。
    (こ)   ∞ |こ)  他の言語本と比べてもかなりいい本なので大推薦したの。
    く__∞,ノ    
    し' し'      正解。PerlでCGIというインターフェースに則ったプログラムを書くんだよ。
              後、あゆ、ヘリコプターじゃないもん。
              \____________
675nobodyさん:03/03/19 14:50 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <後、ムッシュかまやつでもウド君でもないもん!
  ((ニE/⌒ヾ∞"ヽ   
    (こ)   ∞ |こ)
    く__∞,ノ    
    し' し'      
              
              \____________
676nobodyさん:03/03/19 14:50 ID:???
        ||
        ||
      _||
     〃┏━━ 、
    | ┃ メ  |
    | ┃ | |
    | ┃ テ  |
    | ┃ ル  |
     |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´_ゝ` リ < ウグググググゥゥゥ....
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)  †  |こ)
   《《く__∞,ノ
     |O| |O|
     |O| |O|
     |O| |O|
     |O| |O|
     |O| |O|
     し' し'      
677nobodyさん:03/03/19 14:51 ID:???
ワラタ
678nobodyさん:03/03/19 14:51 ID:???
age
679nobodyさん:03/03/19 14:51 ID:???
10kbのファイルは1万行で100kbのファイルは1行とか?
680nobodyさん:03/03/19 14:51 ID:???
2ちゃんねらーの力で子供達を救おうよ(連日連夜 祭り開催中!)
何処の板から来たかを明記してくれると、みんなのやる気が上がります!
【クリック】 押してみっかなPart2【クリック】http://live.2ch.net/test/read.cgi/festival/1015607977/l50
681nobodyさん:03/03/19 14:51 ID:???
目障りだな。規制以来出すか。
682nobodyさん:03/03/19 14:51 ID:???
今朝の13話、話がよく分からなかったのですが。。
683nobodyさん:03/03/19 14:51 ID:???
       _ _
      〃┏━━ 、
      |  ノノソハ)))_ 
    /リリ ´ー`)リ/\ うぐぅ
   /| ̄ ̄ ̄ ̄ ̄|\/
     |愛媛みかん|/
684nobodyさん:03/03/19 14:52 ID:???
採用
685nobodyさん:03/03/19 14:52 ID:???
    ほれ、テンプレ
\____  ______/
             ∨
_______ _   ボコッ。
____ 〃┏━━ 、 _γ⌒⌒ヽ、
____. |  ノノソハ)))ヾ \ノハ)ヽ))   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
___(\リリ;´Д`)リ#]つ)○);´Д`) <  痛いですぅ〜。
___(ニE( #]つo"/ ⊂[||L[X⊂[||)   \________
___∠__∞__/    く7ココココヘゝ
___ し' (_f)    (゚_(゚_)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
686nobodyさん:03/03/19 14:52 ID:???
AA荒らしはこちらでどうぞ
http://wow.bbspink.com/leaf/
687nobodyさん:03/03/19 14:52 ID:???
          __
        //´ ̄ ヽ        / ̄ ̄ ̄ ̄ ̄
          i ノリノ)))〉       |
     , '^ ーノl(l!゚ ヮ゚ノリ‐' ヽ     < 嫌っ
   ノ , リノjjノ'(.II 中.II)jルjソi      |
  ('"´   "^く 中|   ノ     \_____
    `        じ'フ
688nobodyさん:03/03/19 14:52 ID:???
奇跡でみずほタンを何とかしてください
689nobodyさん:03/03/19 14:52 ID:???
       _ _
      〃┏━━ 、
      |  ノノソハ)))_  Perlじゃむりだよぉ
    /リリ ´ー`)リ/\ うぐぅ
   /| ̄ ̄ ̄ ̄ ̄|\/
     |愛媛みかん|/
690nobodyさん:03/03/19 14:53 ID:???
age
691nobodyさん:03/03/19 14:53 ID:???
ペーペーなんですが、サルでもわかる参考書教えてください。
692nobodyさん:03/03/19 14:53 ID:???
【Perl,CGI】参考書籍 第2版
ttp://pc.2ch.net/test/read.cgi/php/988809842/
693nobodyさん:03/03/19 14:53 ID:???
うぐぅ。過去ログ読んで酔う。
694nobodyさん:03/03/19 14:53 ID:???
ありがとござました
695nobodyさん:03/03/19 14:53 ID:???

このスレの発展を祈ってバンザーイ♪

http://homepage2.nifty.com/satp/imgboard/img-box/img20020418205910.gif
696nobodyさん:03/03/19 14:54 ID:???
うぐぅさん、厨な質問をきいていただけますか?
697nobodyさん:03/03/19 14:54 ID:???
あげ
698nobodyさん:03/03/19 14:54 ID:???
ほぜん
699nobodyさん:03/03/19 14:54 ID:???
<html><head><title>KANONの魅力</title></head>
<body>すべての始まりは秋子さん<br>
<img src=Akiko.jpg><br>そして伝説が始まる…
</body></html>
700nobodyさん:03/03/19 14:54 ID:???
チェックの結果は以下のとおりです。
HTML4.01 Transitional としてチェックしました。
8個のエラーがありました。このHTMLは 1点です。タグが 6種類 7組使われています。

先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています(減点数ではありません)。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

8: line 1: 最初の記述が DOCTYPE宣言ではありません。 → 解説 2
1: line 1: <HTML> には LANG 属性を指定するようにしましょう。 → 解説 110
0: line 1: (<HEAD>〜</HEAD> 内に <LINK REV="MADE" HREF="mailto:〜"> が含まれていません。) → 解説 113
0: line 1: (<HEAD>〜</HEAD> 内に <LINK REL="NEXT" HREF="〜"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 114
4: line 1: <HEAD>〜</HEAD> 内に <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="〜"> が含まれていません。 → 解説 117
0: line 3: (<IMG> の SRC の属性値 `Akiko.jpg` が引用符で囲まれていません。) → 解説 92
6: line 3: <IMG> には ALT 属性が必要です。 → 解説 82
0: line 3: (<IMG> には WIDTH と HEIGHT 属性を指定するようにしましょう。) → 解説 165
701nobodyさん:03/03/19 14:54 ID:???
あゆがいねえー
702nobodyさん:03/03/19 14:55 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  帰ってきた
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
703nobodyさん:03/03/19 14:55 ID:???
(=゚ω゚)ノぃょぅ
704nobodyさん:03/03/19 14:55 ID:???
久しぶりに来てみた。
705nobodyさん:03/03/19 14:55 ID:???
706nobodyさん:03/03/19 14:55 ID:???
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
[email protected]


707nobodyさん:03/03/19 14:55 ID:???
perlのCGIにhttpさせるやり方教えてください。
708nobodyさん:03/03/19 14:56 ID:???
use LWP::Simple;

or

use LWP::UserAgent;
709nobodyさん:03/03/19 14:56 ID:???
さん
ありがとうございます。まだ意味がわかりませんが
その言葉で検索かけてみます。
710nobodyさん:03/03/19 14:56 ID:???
httpって何だろうと思ったが、httpを使った通信ですか。
711nobodyさん:03/03/19 14:56 ID:???
懐かしいスレがあがってますな。うぐぅ。
712nobodyさん:03/03/19 14:56 ID:???
月宮さーん
がんばってね。
713nobodyさん:03/03/19 14:57 ID:???
うにゅ
714nobodyさん:03/03/19 14:57 ID:???
age
715nobodyさん:03/03/19 14:57 ID:???
perlについての質問です。実行するとたとえばユーザー名、パスワードを送信してくれる
プログラムを作りたいのですが、どのようなライブラリ、関数を使えばよいのでしょうか?
キーワードだけでも教えてください、お願いします。
716nobodyさん:03/03/19 14:57 ID:???
ネタスレに書くなよおめー。
それと質問が意味不明だ。
717nobodyさん:03/03/19 14:57 ID:???
s
718nobodyさん:03/03/19 14:57 ID:???
asdkasp
719nobodyさん:03/03/19 14:58 ID:???
さいならっきょ
720nobodyさん:03/03/19 14:58 ID:???
もう終わりですか?
721nobodyさん:03/03/19 14:58 ID:???
相手次第。ネットワーク越しかい?
722nobodyさん:03/03/19 14:58 ID:???
メールなら sendmail で検索して調べる
パスワードをランダムで生成する

@letters = ("0" .. "9", "a" .. "z", "A" .. "Z");
srand;

$password = "";

until(length $password == 8){
    $password .= $letters[rand ($#letters + 1)];
}
723nobodyさん:03/03/19 14:58 ID:???
$password .= $letters[int(rand ($#letters + 1))];
724nobodyさん:03/03/19 14:59 ID:???
psdfps
725nobodyさん:03/03/19 14:59 ID:???
test
726nobodyさん:03/03/19 14:59 ID:???
testestestestest
727nobodyさん:03/03/19 14:59 ID:???
testing....
728nobodyさん:03/03/19 15:00 ID:???
sexing
729nobodyさん:03/03/19 15:00 ID:???
homosexual
730nobodyさん:03/03/19 15:00 ID:???
SEX
731nobodyさん:03/03/19 15:00 ID:???
sex-siyo-yo
732nobodyさん:03/03/19 15:00 ID:???
なんだこの厨房は。
733nobodyさん:03/03/19 15:01 ID:???
こいつは一体何がしたいんだ。
734nobodyさん:03/03/19 15:01 ID:???
       -‐- 、
     ,' /二二 ヽ/⌒l     ___________
      i イノノノ))))〉=ヲ   < の答えがわかりません。
      ! (l| i]  i] ||  /    |
  (\ ノノノlゝ"フノ!! /   
  (∃/ヽ ^||iii》, /    
   ( ゝ 》⌒)中  |        
  [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`||
  ||  ||ニ:Iニ/_7ニヒコ    ||
  ||  ||| ||/:::::/ ||\:::ヽ   ||
  ||  ||| |に~⌒).|| (⌒”)  ||
735nobodyさん:03/03/19 15:01 ID:???
ボクが乗っ取っちゃおうかな
736nobodyさん:03/03/19 15:01 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)

乗っ取ることにしちゃったよ。
本当にゆっくりのペースでボクといっしょに勉強していこうね。
実はボクもまだまだ初心者なんだけどね。。
「こういうのはどうやるの?」っていうのは他のスレで聞いてね。
ボクがここで言ったことに対しての質問はここで聞いてくれていいよ。

WebProg板、だから、PerlでCGIを作るってことを前提に進めていこうね
質問があったら、このスレに書き込んでくれたら、
ボクに分かる範囲なら答えられるかもね
あ、最低限HTMLの知識は必要だからそのへんよろしくね。

あと、フリーのCGIでもいいから設置経験があったらいいね。
少しでも中をいじってみたことがあるっていうならなおいいね。

あと、わかりやすくするためなら、かなり強引な解釈で説明してる
ところもあるけど、とりあえずはあまり気にしないでね。

自分でCGIを作る、っていうのは、とても危険なことなんだ。
例えば、お金も持ってないのにたい焼きを買うくらい。
下手をすると、サーバーをダウンさせたりすることもできるから、
自分で作ったものはちゃんとテストして設置しないとダメだよ。

ttp://www.kent-web.com/www/
ここのページで、CGIをローカル(自分のパソコン)で動かす方法を
紹介してるから、参考にしてやってみてね。

じゃあ、今日の話はこのへんで終わるね。
737nobodyさん:03/03/19 15:01 ID:???
おわ。久々に昔の感じだな。
738nobodyさん:03/03/19 15:02 ID:???
のAAのがいいね。
739nobodyさん:03/03/19 15:02 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <ヘッダとボディ
 (ニE(#つo⊂#)

まず、覚える決まり事があるから覚えようね
1行目には、【Perlへのパス】っていうものを書くんだよ。
これは、動作させたいサーバーによって変わったりするんだよね。
わからないときは、設置サーバーに問い合わせようね。
ボクはボクが使ってるサーバーに合わせて書くから、適当に変えてね。
 ↓ こんなふうに1行で書くよ。
#!/usr/local/bin/perl

HTMLには、 <head> タグと <body> タグがあるよね?
Perlにも、これとなんとなく似た感じのものがあるんだよ。
ヘッダとボディ、っていうのがあって、ヘッダには、HTMLと同じように
実際画面には表示されない部分みたいなものを書くんだよ。
ボディは、画面に表示される部分なんだよ。

その次に、「このCGIはHTMLを書き出すよ」っていうことを
ちゃんと示さないとダメなんだ。
だから、次の行を、書き入れてみてね。

print "Content-type: text/html;\n\n";

とりあえず、今は深い意味は考えなくてもいいよ。
ここで出てくる、 \n っていうのは、「改行」を表すことなんだ。
【1行目】〜【2回 \n が続くところ】までがヘッダ、あとはボディ。
これはすごく大切だから覚えておいてね。
print っていうのは、「表示する」ってことだと、とりあえずは
思っててくれて大丈夫だよ。
またあとの方で、詳しく説明するからね。
740nobodyさん:03/03/19 15:02 ID:???
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
741nobodyさん:03/03/19 15:02 ID:???
できることなら
Content-Type: text/html; charset=EUC-JP
のように charset も出してあげませう。
742nobodyさん:03/03/19 15:02 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(1:ソース)
 (ニE(#つo⊂#)

前回ちょっとお話したけど、 print っていう【関数】を使って、
実際に何か表示してみようね。
このソースを、 perl0001.cgi とかのファイル名で保存してね。

-[perl0001.cgi]-------------------------------------------------
#!/usr/local/bin/perl

# ヘッダ
print "Content-type: text/html;\n\n";

# ボディ
print "<html>\n";
print "<body>\n";
print "うぐぅ\n";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

保存する場所は、最初に挙げたHPの解説通りにやっていれば、
C:\www\home\perl\ ぐらいに保存してね。(perlフォルダは作ってね)

そして、AnHttpdを起動して、↓にアクセスしてみてね。
http://127.0.0.1/perl/perl0001.cgi

細かい解説は次にしていくね。
743nobodyさん:03/03/19 15:03 ID:???
ちょっとよく意味がわからないけど…
ちゃんと動くならそれでいいとおもうよ
文字コードの話はもうちょっと後で
お話ししようと思ってたんだけど…
744nobodyさん:03/03/19 15:03 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(2:解説)
 (ニE(#つo⊂#)

□ 文
1行を「文」って呼ぶよ。最後には、必ず ; をつけてね。
これは、英語の文の最後にピリオド . がついているような感じ。
文の最後にはつけるようにしないと動かないよ。
ボクもたまに書くの忘れてエラー起こしちゃうんだ。

□ #…
# よりあとは、コメントになって、あってもなくても同じだよ。
HTMLの、 <!-- --> みたいな感じだね。

□ \n
\n は改行を表すよ。PerlでCGIを作るときには、
出力する【HTMLソースが改行されるだけ】だから気をつけてね。
表示上、改行したいときは、 <br> を使わないといけないよ。

□ print "●"
● の部分に、表示したい文字を入れるよ。
ファイルハンドルっていうものに関係があるんだけど、もっと後でね。

□ exit
【スクリプト】を終了させるときに使うんだよ。
これがなくても最後までいったら自動で終了するけど、
構造が複雑になってきたら見にくいから書く習慣があった方がいいね。

これで君もPerlプログラマーになれたんだよ。
でもこんな文字を出すだけなんてこと、HTMLでやればいいよね。
次はあんまり面白くないけど、Perlだからできることを勉強するよ。
745nobodyさん:03/03/19 15:03 ID:???
楽しいですが、何か?
746nobodyさん:03/03/19 15:03 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <変数、配列、連想配列(1:説明)
 (ニE(#つo⊂#)

じゃあ今回は、変数、配列、連想配列のみっつを覚えようね。
今回は簡単だから説明だけ聞いてね。
次回は使い方を説明するよ。

変数…例えれば、メモ帳1枚に名前をつけたもの。
   自由に書いたり、消したり、書き換えたりできるよ。
   「スカラー」「スカラー変数」とかいうこともあるよ
   「abcの紙」みたいに指定できるよ。
   「abcの紙」って指定したいときは、 $abc って書けばいいよ。

配列…例えれば、名前をつけたメモ帳1冊。
   0ページから始まって、何ページでも増やせるよ。
   「リスト」とかいうこともあるよ。
   「abcメモ帳の2ページめ」みたいな感じで指定するよ。
   こんなふうに指定したいなら、 $abc[2] って書くといいよ。

連想配列…例えれば、名前がついたメモ帳1冊の紙1枚ずつに、
     それぞれ名前違うがついたもの。
     「ハッシュ」っていうこともあるよ。
     「abcメモ帳のxyzのページ」みたいに指定するよ。
     こんな感じなら、 $abc{xyz} って書くことができるよ。

次は簡単な例を見てみようね。
747nobodyさん:03/03/19 15:03 ID:???
200だね
748nobodyさん:03/03/19 15:04 ID:???
何気に続いてるんですね。気にしてなかった…
749nobodyさん:03/03/19 15:04 ID:???
ハイレベルな話題も希望
750nobodyさん:03/03/19 15:04 ID:???
まだ、このスレあったのか
751nobodyさん:03/03/19 15:04 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <変数、配列、連想配列(2:実行例)
 (ニE(#つo⊂#)

□ 変数への書き込み方
$abc = "うぐぅ";

こんな感じにすると、【変数】 $abc には、 「うぐぅ」という
【文字列】が書き込まれたことになるよ。
同じように、

$abc[0] = "月宮あゆ"; # 配列
$abc{def} = "水瀬名雪"; # ハッシュ

みたいなこともできるよ。

□ 変数からの読み込み方
たとえば、 $abc の内容を表示したいっていうときは、

print "$abc";

ってかくとできるよ。
他にも方法はあるけど、とりあえずこれだけ覚えてるといいかな。


ここまでの説明なら、「こんなものが何の役に立つかわからない」と
思う人が多いと思うけど、【変数】がなかったら、何もできないよ。
じゃあ次からは実際に使用例を見ていこうね。
752nobodyさん:03/03/19 15:04 ID:???
うぐぅ
ハイレベルな話題は、たぶんボクにはできないかな…
うぐぅ
753nobodyさん:03/03/19 15:04 ID:???
これくらいの初歩からやってくれた方が漏れにとってはいいよ。
754nobodyさん:03/03/19 15:05 ID:???
ストーブはどう作るの?冬にかけて
755nobodyさん:03/03/19 15:05 ID:???
漏れも同じ
sage進行でマターリとおながいします。>ALL
756nobodyさん:03/03/19 15:05 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(1:ソース)
 (ニE(#つo⊂#)

じゃあ今回は時計を表示してみよう。
ソースはこんな感じだよ。

-[perl0002.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

C:\www\home\perl\perl0002.cgi に保存して、アクセスしてみてね。
http://127.0.0.1/perl/perl0002.cgi

詳しい解説は次にまとめてするね。
757nobodyさん:03/03/19 15:05 ID:???
うん、ボクと一緒に勉強しようね
そういう会社に入ってみればいいんじゃないのかな
マターリやっていこうね、よろしく
758nobodyさん:03/03/19 15:05 ID:???
こんなきもい時計やだよ
759nobodyさん:03/03/19 15:05 ID:???
同感。まあ、糞言語らしいといえばそうかな。
760nobodyさん:03/03/19 15:06 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(2:解説)
 (ニE(#つo⊂#)   算術演算子(1:加法演算子)

Line 5:カッコの中は、秒,分,時,日,月(※1),年(※2)でできてるよ。
    localtime で、時間を変数に書き込むんだけど、
    これは丸覚えでいいよ。また今度詳しく説明するね。
    この例では、6個の変数にそれぞれ書き込んでるよ。

Line11:print の中には【変数】を書くこともできるよ。
    その【変数に書き込まれてる文字や数値】を表示するよ。

※注意
月は、実際の月より、1少なくなってるよ。
実際、表示に使うなら、1足して使ってね。
同じように、年は、西暦より1900少なくなってるよ。
【変数】を計算(この例なら月に1を、年に1900を足す)するには、
次のように書くだけで簡単にできるよ。

$mon ++;
$year += 1900;

● ++
っていうのは、変数●に1を足すっていうことだね。
$mon += 1;
と書いてもできるよ。

● += ◆
で、変数●に、数値◆を足すっていうことだよ。

ぜひ年と月も表示できるように改造してみてね、答えは次回書くよ。
761nobodyさん:03/03/19 15:06 ID:???
質問です。
foreach(split(/<>/,$line)){}
は必要な部分を順に取り出しているのか、
それとも一度無名配列に入れるようなことをしているのか教えてください。
762nobodyさん:03/03/19 15:06 ID:???
後者じゃ
763nobodyさん:03/03/19 15:06 ID:???
しくしく。ありがとうございます。変数が大きいのですが、
substrは毎回先頭から数えているような感じがするのですが、
変数使用を少なくする場合これしかないのでしょうか。
764nobodyさん:03/03/19 15:06 ID:???
index で'<>'をサーチ位置指定でやって、substr で部分取り出し
765nobodyさん:03/03/19 15:06 ID:???
どうもありがとうございました。
766nobodyさん:03/03/19 15:06 ID:???
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;
$year+=1900;
$mon++;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;

こうかね。
767nobodyさん:03/03/19 15:07 ID:???
あゆあゆ以外が質問に答えるなよばか!
768nobodyさん:03/03/19 15:07 ID:???
スレッド・ストッパーキタ━━━━(゚∀゚)━━━━!!!!

              ↓
769nobodyさん:03/03/19 15:07 ID:???
↑ごめん

222ゲトー
770nobodyさん:03/03/19 15:07 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(3:年月日を表示)
 (ニE(#つo⊂#)

じゃあ前回の答えだね。

-[perl0003.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year) = localtime time;

$mon ++;
$year += 1900;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
----------------------------------------------------------------

今回はもう行数がなくなっちゃったから終わりだけど、
次は曜日を表示してみようね。
771nobodyさん:03/03/19 15:07 ID:???
うん、そうだね。
ボクもわからないことが多いからね…
ストップされちゃうの…?このスレ…
772nobodyさん:03/03/19 15:08 ID:???
↑トリップ間違えました
773nobodyさん:03/03/19 15:08 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <if の文
 (ニE(#つo⊂#)

($sec, $min, $hour, $day, $mon, $year) = localtime time;

この部分を、

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

こんな感じに変えると、 $week には曜日が書き込まれるよ。
でも【曜日は数字】なんだよね…
日曜日なら0、月曜日なら1…土曜日なら6が $week には入ってる。

今日が何曜日か表示したい!のに、数字じゃ困るよね。
そこで if を使ってみよう。

if(●){◆}
機能説明:もし●なら、◆する。
●…条件。 ◆…処理。



if($week == 0){$you = "日";}
if($week == 1){$you = "月";}
  :
if($week == 6){$you = "土";}

== っていうのは、左辺と右辺が等しい、っていう意味だよ。

このへんを使って、曜日を出してみてね。答えは次回載せるよ。
774nobodyさん:03/03/19 15:08 ID:???
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

if ($week == 0) {$you = "日"; }
if ($week == 1) {$you = "月"; }
if ($week == 2) {$you = "火"; }
if ($week == 3) {$you = "水"; }
if ($week == 4) {$you = "木"; }
if ($week == 5) {$you = "金"; }
if ($week == 6) {$you = "土"; }

$mon ++;
$year += 1900;

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec−$you曜日<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
775nobodyさん:03/03/19 15:08 ID:???
$year/$mon/$day($you) - $hour:$min:$sec
の方が綺麗だな。
776nobodyさん:03/03/19 15:08 ID:???
#!/usr/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

$mon ++;
$year += 1900;
@you = (
"日",
"月",
"火",
"水",
"木",
"金",
"土"
);

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$year/$mon/$day - $hour:$min:$sec−@you[$week]曜日<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
777nobodyさん:03/03/19 15:08 ID:???
#!/usr/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

@tuki = ("Jan","Feb","Mar","Apl","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
@you = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day-$tuki[$mon]-$year($you[$week]) -- $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
778nobodyさん:03/03/19 15:08 ID:???
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
779nobodyさん:03/03/19 15:09 ID:???
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;

@tuki = ("Jan","Feb","Mar","Apl","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
@you = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

print "<html>\n";
print "<body>\n";
print "  〃┏━━<br>\n";
print "  |. ノノソハ)))<br>\n";
print "(\リリ ´ー`)リ <$day-$tuki[$mon]-$year\($you[$week]\) -- $hour:$min:$sec<br>\n";
print " (ニE(#つo⊂#)";
print "</body>\n";
print "</html>\n";

exit;
780nobodyさん:03/03/19 15:09 ID:???
perlのパスは俺の場合/usr/bin/perlなんだよ・・・。
エスケープ忘れてたし・・・。
でも""の中で()は一応エスケープされてると思うんだけど。
ちゃんと実行して検証しているし。
やっぱエスケープは礼儀ということか・・・。
781nobodyさん:03/03/19 15:09 ID:???
だからまだ習ってない配列とか先に進むなっての(;´Д`)
782nobodyさん:03/03/19 15:09 ID:???
      _ _
      〃┏━━ 、
      |  ノノソハ)))  / ̄ ̄ ̄ ̄
    Λ_リリ ;´∀`)リ < うぐぅあげ♪
   ( ⊂#~ ∞~~#⊃ \____
   ( つ/_∞__|~
   |(__)_)
   (__)_)
783nobodyさん:03/03/19 15:09 ID:???
他で習ったよ
784nobodyさん:03/03/19 15:09 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <曜日を表示
 (ニE(#つo⊂#)

 が答えだね。。
配列とか使ってやるのは、もっと先に応用例としてあげたいから、
勝手に応用を使わないでほしいな…

今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね…
ちょっと考えとくね
785nobodyさん:03/03/19 15:10 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <配列の扱い方
 (ニE(#つo⊂#)

ちょっと配列の話が出てきたから説明するね
配列は、 $abc[0] とかで扱えるんだけど、
@abc で、[0] から 最後まで全部、っていう意味があるんだよ。

@you = ("日", "月", "火", "水", "木", "金", "土");

こういう感じで、0ページめから順番に値をいれることができるんだ。
こういうのを【要素】っていうから覚えておいてね。
最初の要素は、1じゃなくて0だから気を付けてね。

この例で、 $you[0] には、「日」、 $you[1] には、「月」…
っていう具合に、 $you[6] まで入ってるよ。

[ ] の中は、変数も使えるから、曜日の話には応用できるね。
こっちのほうが書き方がシンプルで好きだから、
ボクはいつも配列を使ってやってるよ。
ちなみに、連想配列の、「全部の要素」は、 % をつけて表すよ。

じゃあ、前回のソースを書き替えてみようね。

@you = ("日", "月", "火", "水", "木", "金", "土");
($sec, $min, $hour, $day, $mon, $year, $week) = localtime time;
print "$you[$week] 曜日";

ってこんな感じで曜日が出るね。
行数がなくなったから簡潔でごめんね。
次回は、ひととおり計算ができる、算術演算子をやるよ。
786nobodyさん:03/03/19 15:10 ID:???
補足しておくと、配列の全部は、 @ をつけて表すよ。
配列の中のひとつだけ、は、 @ じゃなくて $ をつけて、
[0] みたいな【添え字】をつけるよ

ってことだね
787nobodyさん:03/03/19 15:10 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <算術演算子(2)
 (ニE(#つo⊂#)

これぐらいはひととおり、全部覚えてね。
数学でおなじみの、計算ができる演算子だよ。

● = ◆ + ★
 数値、◆と★を加算(足し算)した値を●に代入するよ。

● = ◆ - ★
 数値、◆から★を減算(引き算)してその値を●に代入するよ。

● = ◆ * ★
 数値、◆に★を乗算(掛け算)してその値を●に代入するよ。

● = ◆ / ★
 数値、◆から★を除算(割り算)してその値を●に代入するよ。

● = ◆ % ★
 数値、◆を★で割った、余りを●に代入するよ。
 ◆と★は小数なら、小数点以下は切り捨てられて計算されるよ。

● = ◆ ** ★
 数値、◆の★乗の値を●に代入するよ。


優先順位についてちょっと説明するね。
実際の数学と同じように、加算、減算は、後回しにして計算されるよ。
先に計算したいなら、 ( ) でくくってみてね。
じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
788nobodyさん:03/03/19 15:10 ID:???
あゆた〜〜ん
789nobodyさん:03/03/19 15:10 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <for の文、数値比較演算子
 (ニE(#つo⊂#)

for っていうのは、ループができるんだよ。
じゃあまず、文法の説明をするね。

for ( ●; ◆; ★ ) { ■ }

● … 最初の状態  ◆ … ループする条件
★ … 増減式    ■ … 処理

じゃあ、ちょっと例を書いてみるね。

for ( $i = 1; $i <= 10; $i ++ ) { print "$i"; }

これは、最初、変数 $i は 1 だよ、って決めて、ループ1回ごとに、
変数 $i に 1 を加算していくよ。
変数 $i が、 10 以下なら、次のループに入るよ。
と、いうことは、この例では、10回の処理が繰り返されて、
"12345678910" って表示されることになるね。

<= っていうのが出てきたから、数値比較演算子もひととおりみておくね。
if とか、 for とかの条件で使われることが多いよ。

● == ◆ … ●と◆が数値として等しい ( 0 と 0.0 は等しい )
● != ◆ … ●と◆が数値として等しくない
● < ◆ … ●が◆より小さい
● > ◆ … ●が◆より大きい
● <= ◆ … ●が◆以下
● >= ◆ … ●が◆以上
790nobodyさん:03/03/19 15:11 ID:???
ど、どうしたの…?
791nobodyさん:03/03/19 15:11 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < while / until / next / last
 (ニE(#つo⊂#)

while / until っていうのは、どっちもループだよ。
じゃあまず、文法の説明をするね。

while ( ● ) { ◆ }
until ( ● ) { ◆ }

● … 式 ( 後述参照 )
◆ … 繰り返す処理

どちらの場合でも、● は、比較演算子を使った条件を指定するよ。
数値比較演算子じゃなくって、文字列比較演算子っていうのも
あるんだけど、それは次くらいに詳しくみてみるよ。

while は、英語で、【〜の間】だね。
Perl でも、条件●が成立する間、◆を繰り返すことになるよ。

until は、英語で、【〜まで】だね。
●が成立するまで(=●が成立しない間)、◆を繰り返すよ。

next / last は、ループを途中でやめたりするのに使うよ。

next は、現在のループを終了して、次のループに入る、っていうこと、
last は、全てのループからただちに抜け出す、っていうことだよ。
じゃあ次回は実例を見てみようね。
792nobodyさん:03/03/19 15:11 ID:???
ここまでは普通についていけるな
793nobodyさん:03/03/19 15:11 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ループと文字列比較演算子
 (ニE(#つo⊂#)

こんなことをすることは少ないと思うけど、例を挙げるね。

$hoge = "aaa";
until($hoge eq "aaaaaaaaaa"){
$hoge = "a$hoge";
}

この例では、変数 $hoge の前に、次々に "a" を追加していってるね。
"a" が10個並んだところでループ終了だね。

どんな時に、条件に一致するか (真偽) については、次回説明するね。

これも条件で使われるよ。数値として比較する数値比較演算子とは違って、
文字列として比較する、文字列比較演算子っていう名前があるよ。

● eq ◆ … ●と◆が完全に一致
● ne ◆ … ●と◆が一致しない
● =~ /◆/ … ●に◆が含まれる …(※)

他にもあるんだけど、これだけ覚えてれば十分だよ。

※本当は、【正規表現】っていう新しいことなんだけど、
 よく使いそうだからここで一緒に覚えようね。
 正規表現は、近いうちに勉強するよ。
794nobodyさん:03/03/19 15:11 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 真と偽
 (ニE(#つo⊂#)

条件に合致するかどうかをチェックするのは、真か偽のどちらかで表されるよ。
要は、「合致している、成立する」が真、「しない」のが「偽」だよ。

if も、 while も、 until も、真偽をチェックするよ。

じゃあここで、どんな時に真、偽になるかを覚えようね。

偽:0 / 未定義 / 空白
真:「偽」以外の要素

if(0){print "偽だからここは表示されないよ";}
if(1){print "真だから表示されるよ";}
$abc = "";
$def = "ghi";
if($abc){print "空白変数だから偽";}
if($def){print "文字列だから真";}
if($jkl){print "未定義変数だから偽";}

じゃあ次回は、 if をもっと便利に扱える、
elsif 〜 else を勉強しようね。
795nobodyさん:03/03/19 15:11 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < if / elsif / else
 (ニE(#つo⊂#)

まず、文法から見てみようね。

if ( ● ) { ◆ }
elsif ( ◎ ) { ◇ }
else { ■ }

●◎ … 条件  ◆◇■ … 処理

まず、 if だけの文と同じように、 ● の真偽がチェックされて、
真なら ◆ が実行されるよ。
偽なら、 if から抜けて、次に elsif の◎の真偽がチェックされるよ。
真なら、◇が実行されて、偽なら、 else の■が実行されるよ。
elsif は、ひとつの if 構造のなかにいくつでも書くことができるよ。

例として書いてみるね。

$i = 100;
if($i < 50){print "50より小さい";}
elsif($i > 120){print "120より大きい";}
elsif($i == 80){print "80である";}
else{print "その他";}

このへんはとっても重要だから、しっかり覚えておいてね。
796nobodyさん:03/03/19 15:11 ID:???
おもったより続いてますねぇ
頑張ってください^^;
797nobodyさん:03/03/19 15:12 ID:???
ついでですが…保存予定ですので宜しくお願いします。m(_ _)m
798nobodyさん:03/03/19 15:12 ID:???
ごめんなさい…ageてしまった…
799nobodyさん:03/03/19 15:12 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (1)
 (ニE(#つo⊂#)

正規表現っていうのを勉強するよ。
ちょっと難しい、ってよく言われるけど、そう思わずに
しっかり読むと必ず分かるから、とりあえず読んでみてね。

正規表現は、柔軟なパターンマッチをすることができるよ。
例えば、特定の文字が含まれるかどうか調べたり、
文字の置き換えをしたり、またあとで勉強するけど、
split っていう関数のパターンに使ったりできるよ。

ここはよくわからなくてもいいよ。
わかりやすく説明すると、

● =~ /◆/★

これで、【変数●がパターン◆にマッチ】っていうことだよ。
【マッチ】っていうのは、簡単に言うと、【●が◆の状態である】
っていうことなんだ。じゃあ、【◆の状態】っていうのを説明するね。
★については、2回後くらいに説明するね。今はなにも書かいでね。
まず、例は、3回前に勉強した含まれるパターンだね。
◆には【普通の文字】と、特別な意味のある、【メタ文字】のふたつが使えるよ。
3回前に勉強したのは、普通の文字だけだね。
じゃあ、メタ文字について説明するね。

続く…
800nobodyさん:03/03/19 15:12 ID:???
…続き

. … なにか1文字
* … 直前の文字やパターンの0回以上の繰り返し (いくつあってもよい)
+ … 直前の文字やパターンの1回以上の繰り返し (必ず1つ以上ある)
? … 直前の文字やパターンが1つだけあってもなくてもよい
[abc] … [ ] で囲んだ文字の中のどれか1文字
^ … 【…で始まる】という意味。パターンの最初に使う。
$ … 【…で終わる】という意味。パターンの最後に使う。
{5} … 直前の文字やパターンの5回繰り返し
{3,8} … 直前の文字やパターンの3回以上8回以下の繰り返し

例だよ。

if ( $abc =~ /^def$/ ) { print "マッチ"; }

これは、

if ( $abc eq "def" ) { print "マッチ"; }

と、同じ意味になるよ。
とりあえず、何の役に立つかわからなくてもいいから、
使い方は覚えておいてね。
801nobodyさん:03/03/19 15:12 ID:???
うん、ありがとう
頑張るよ

ずっと読んでくれてるの?
なんだか嬉しいな

別に気にしなくていいよ


…みんなはこのへんちゃんと理解してくれてるのかな?
わかりにくいところがあったら言ってね。
説明しなおすからね。
802nobodyさん:03/03/19 15:12 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (2)
 (ニE(#つo⊂#)

今回は、文字クラス [ ] について詳しく勉強するよ。

[ ] の中に文字を書くと、正規表現では [ ] の中の、
どれか1文字にマッチするんだったね。

じゃあ、特殊な書き方も含めて説明するね。
[A-Z] は、 A から Z までのどれか1文字だね。
[A-Za-z] なら、大文字か小文字だよ。
[^0-9] [ ] の先頭に ^ があると、【ここにない1文字】
って、意味が逆転するよ。

if ( $xxx =~ /[ABCDE]/ ) { print "ABCDE のどれかが含まれる"; }
if ( $xxx =~ /[abcde]/ ) { print "abcde のどれかが含まれる"; }
if ( $xxx =~ /[A-Z]/ ) { print "ABC…XYZ のどれかが含まれる"; }
if ( $xxx =~ /[0-9]/ ) { print "0123456789 のどれかが含まれる"; }
if ( $xxx =~ /[A-Z]$/ ) { print "アルファベット大文字で終わる"; }
if ( $xxx =~ /[A-Z]+/ ) { print "アルファベット大文字が1回以上繰り返し"; }
if ( $xxx =~ /^[A-Z]+$/ ) { print "アルファベット大文字しかない変数"; }
if ( $xxx =~ /[^A-Z]/ ) { print "アルファベット大文字以外の文字が含まれている"; }

次回は、 ( ) と後方参照について説明するね。

#間違いがあったら指摘してね…
803nobodyさん:03/03/19 15:12 ID:???
まだなんとかわかるよ。
804nobodyさん:03/03/19 15:13 ID:???
今のペースでいくとオブジェクトな話になるのは何年後だろう^^;
805nobodyさん:03/03/19 15:13 ID:???
まあ後は自分で勉強すれば良いだけの話だし、いいのでは?
途中で挫折した香具師多いと思われるから、マターリ進行で…
806nobodyさん:03/03/19 15:13 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (3)
 (ニE(#つo⊂#)

今回は、後方参照に使う、 ( ) について詳しく説明するね。

( ) の中に文字を書くと、【 ( ) の中でマッチした部分をあとで参照できる】んだ。
正規表現は、 [ ] を使うと、マッチするパターンがたくさん考えられるよね。
マッチした部分をあとから参照するのに使うよ。

パターンの中では、 ( ) でくくった順に、\1 、 \2 、 \3 …って参照できるよ。
パターンの外で参照するなら、 $1 、 $2 、 $3 …で参照するんだ。
パターンの外で参照する方がよく使うと思うから、
こっちはしっかり使い方を理解しておいてね。

じゃあたくさん例文を見て、使い方を覚えてね。

if ( $xxx =~ /([ABCDE])/ ) { print "マッチ:$1"; }
if ( $xxx =~ /([abcde])\1/ ) { print "abcde のどれかが2回以上続く"; }
if ( $xxx =~ /([0-9]+)-([0-9]+)/ ) { print "マッチ:$1-$2"; }

次回は、 [ ] を簡略化できる感じの、メタ文字と、
スペースがあまったら正規表現演算子をみてみようね。

今回はちょっと短いけどこれで終わりだよ。
807nobodyさん:03/03/19 15:13 ID:???
うん、それならよかった

結構かかりそうだよね…
そんなに難しい話になるまで続くのかな…?

うん、そうだね
まあ実用的なスクリプト作れるぐらいになったら終了、かな
808nobodyさん:03/03/19 15:13 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (4)
 (ニE(#つo⊂#)

今回は、メタ文字について説明するよ。

パターンの中では、 [ ] で囲む、よく使いそうなものを、
メタ文字っていうので使えるんだ。

\d … 数字を表すよ。 [0-9] と同じだね。
\D … 数字以外を表すよ。 [^0-9] と同じ。
\w … [A-Za-z0-9_] と同じ。単語構成文字、って言うみたいだね。
\W … [^A-Za-z0-9_] と同じ。

他にもあるけど、とりあえずこれだけ覚えてたらボクの経験上問題ないね。

じゃあ、演算子について説明するね。

正規表現(1) でも少し触れたけど、
● =~ /◆/★
この、★の部分だったね。
じゃあ、簡単に説明するね。

何種類かあるんだけど、 i だけ知っておけば十分だよ。

i をつけることによって、大文字小文字の区別をしないことができるんだ。

if ( $xxx =~ /abc/i ) { print "大文字小文字を区別せずにabcが含まれる"; }

他の関数も入ってくると、 e とか g とかもあるけど、それはそのとき説明するね。
809nobodyさん:03/03/19 15:13 ID:???
一行抜けちゃった…

「これでとりあえず、正規表現は終わりだよ、次回は配列操作をやるね。」
810nobodyさん:03/03/19 15:14 ID:???
>>あゆ

ほぼ、一日に1レクチャか、まめだね。尊敬するよ。
下手な日記書いてる奴よっかスゲーなおまい
811nobodyさん:03/03/19 15:14 ID:???
       |こたつから出られなくなる季節です
   ∧ ∧ |/\_________                   
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \

812nobodyさん:03/03/19 15:14 ID:???
片付けないと炬燵出せません(T-T)
813nobodyさん:03/03/19 15:14 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 配列操作
 (ニE(#つo⊂#)

配列操作関数だよ。
よく使うからしっかり覚えてね。

unshift ★, ◆
 … 配列★の先頭に要素◆を追加する

shift ★
 … 配列★の先頭の要素を削除する

push ★, ◆
 … 配列★の末尾に要素◆を追加する

pop ★
 … 配列★の末尾の要素を削除する

このよっつだよ。じゃあ例をみてみるね。

@xxx = ("a", "b", "c");
@yyy = ("x", "y", "z");

push @xxx, "d"; # 末尾に d を追加 … a, b, c, d になる
push @xxx, @yyy; # a, b, c, d, x, y, z
pop @xxx; # a, b, c, d, x, y
shift @xxx; # b, c, d, x, y
unshift @xxx, "a" # a, b, c, d, x, y

次回は、ファイル入出力とファイルハンドルについて説明するね。
814nobodyさん:03/03/19 15:14 ID:???
うん、ありがとう
途中でいきなり終わり、なんてことにならないようにがんばるよ

うん、そうだね
これからどんどん寒くなっていくからね
ボクもこの前こたつ出したよ

香里さんの家ってそんなに散らかってるの…
片づけてあとで温かいこたつに入るときもちいいよ
815nobodyさん:03/03/19 15:14 ID:???
冬でもアイス美味しいですよ
816nobodyさん:03/03/19 15:15 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (1)
 (ニE(#つo⊂#)

今回はファイルの読み書きとファイルハンドルについて説明するね。

・ファイルハンドル
ファイルハンドル、っていうのは、ファイルを開くときに、ファイルハンドル、
っていうものに結びつけて開くんだ。ファイルに書くときも同じだよ。
これにファイルを結びつけてを作るには、 open っていう関数が一番一般的だね。
ファイルハンドルは、半角大文字でつけるのが原則だよ。
ファイルハンドルを使い終わったら、 close 関数で閉じるようにしようね。

open ★, ◆
close ★

★ … ファイルハンドル (半角大文字ならなんでもいいよ)
◆ … ファイル名
ファイル◆をファイルハンドル★に結びつけて開くよ。

じゃあ、 "test.txt" の内容を $test にいれて、表示するサンプルを書いてみるね。

open IN, "test.txt";
$test = <IN>; # こうやってファイルハンドルを変数に代入する
close IN;

print "$test";

Perl の勉強熱心な人は、実際試してみるてね。
今回のプログラムは、いろいろやっていると何か気付くことがあるはずだから、
必ず試しに動かしてみてね。 test.txt の中を書きかえながら。
817nobodyさん:03/03/19 15:15 ID:???
ボ、ボクはいいよ、遠慮しとく
818nobodyさん:03/03/19 15:15 ID:???
ヲタとヲタの交流場はここですか?
819nobodyさん:03/03/19 15:15 ID:???
タイヤキアイス食え。

ここに書き込んだ時点であなたも(以下略
ここの会話がヲタ会話とわかる時点であなたも(以下略
820nobodyさん:03/03/19 15:15 ID:???
あゆたん、がんがれ。(うぐぅ
821nobodyさん:03/03/19 15:16 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (2)
 (ニE(#つo⊂#)

前回のスクリプトはみんな動かしてみてくれたかな?
いろいろやってみると、最初の1行しか表示されないことに気付いてくれたと思うんだ。
詳しくはそれはもう少しあとでやるね。
今回はファイルに書き込む方法を説明するよ。

open ★, "> test.txt";

こんなふうに、 > をつけてファイルを開くと、書き込みモードになるんだよ。
このファイルに書き込むには、

print ★ "test";

みたいな感じにするよ。
じゃあ、簡単なカウンターを書いてみるね。

行数が入らないから続くよ
822nobodyさん:03/03/19 15:16 ID:???
-[perl0004.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

open IN, "log.txt";
$count = <IN>;
close IN;

$count ++;

open OUT "> log.txt";
print OUT "$count";
close OUT;

print "<body>$count</body>";

exit;
----------------------------------------------------------------

ちゃんと動かしてみてね。
今回はここで終わりだよ。
823nobodyさん:03/03/19 15:16 ID:???
たい焼きアイス…
あるなら食べてみたいかも

うん、ありがとうね
824nobodyさん:03/03/19 15:16 ID:???
たい焼きアイスはマジであるよ。
数年前CMやってたの覚えてるし、多分うちの近所のスーパーに行けばまだ売ってると思う。

たい焼きの形をした最中の中にあずきとバニラアイスが入ってまつ。
あずきのバニラアイスのハーモーニーがたまりませんです。

余談
自分暇つぶしに2chのTripFinderスレを読んで自分なりのプログラムを組んでみたです。
CPU負荷かかりまくり、でも任意のTrip探す手間を考えれば楽なもんかな?とか思いながら使ってます。
今度taiyakiって入ったIDを探したいです!
825nobodyさん:03/03/19 15:16 ID:???
あ、ちょっとミスをみつけたから書くね。
恥ずかしい…

-[perl0004.cgi]-------------------------------------------------
#!/usr/local/bin/perl

print "Content-type: text/html;\n\n";

open IN, "log.txt";
$count = <IN>;
close IN;

$count ++;

open OUT, "> log.txt"; # , が抜けてたね、ごめんね
print OUT "$count";
close OUT;

print "<body>$count</body>";

exit;
----------------------------------------------------------------

そうなんだ、じゃあボクも近くのスーパーに行って探してみるよ
ありがとうね
826nobodyさん:03/03/19 15:16 ID:???
この教室は解り易いよ〜。

楽しみに見てますです。

それとトリップ付けてみました、別に意味はないので・・・ただunyuなだけです。


コンビニでたいやきアイスは発見できませんでした・・・残念です。
827nobodyさん:03/03/19 15:16 ID:???
今日も頑張ってね。
828nobodyさん:03/03/19 15:16 ID:???
昨日の教室はなかったのか?
829nobodyさん:03/03/19 15:17 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < foreach
 (ニE(#つo⊂#)

今回は foreach ループを説明するよ。
先に勉強しようと思ってたことを忘れてたから、簡単に説明するね。
次回からはまたファイル入出力の話に戻るからね。

foreach っていうのは、配列のすべての要素に一定の処理ができるんだ。
配列の中を全部表示したりしたいときに使うよ。
まず、構文を書くね。

foreach ● ( ◆ ) { ★ }

◆ に、対象の配列を書くよ。配列の要素が順番に変数 ● に入っていって、
順々に ★ が実行されていくよ。

これだけじゃなんのことかわからなくても、例を見てみてね。
実行したときどうなるか?は、自分で試してみてね。

@xxx = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");

foreach $x (@xxx){print "$x";}
foreach (@xxx){print "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。

この話を応用して次回にもっていくから、絶対に使えるようにしておいてね。
830nobodyさん:03/03/19 15:17 ID:???
わかりやすい…?
そう、かな…?
ありがとね

うん、頑張るよ

1日1つ頑張りたいけど、無理な日もあってごめんね
831nobodyさん:03/03/19 15:17 ID:???
.txtで今までの授業全部保存してるよ!

すっごく楽しみに見てるよ、これからも頑張ってね。
832nobodyさん:03/03/19 15:17 ID:???
私も楽しみにしているので、無理せず続けて下さいね。
833nobodyさん:03/03/19 15:17 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (3)
 (ニE(#つo⊂#)

今回は複数行のファイルを読み込む方法を説明するね。

open IN, "test.txt";

# 1行だけ読み込む
$test = <IN>;

# 全行読み込む
@test = <IN>;

close IN;

こんな感じにすると、1行ずつが配列のひとつの要素になるよ。
じゃあ、このファイルの中身を表示するには、

foreach (@test){
print "$_<br>";
}

ってやると表示されるよ。
じゃあ次回は、ファイルの読み書きもわかったし、
ユーザーが何か入力したのを受け取って結果を表示する、
ってことを勉強してみようね。
834nobodyさん:03/03/19 15:17 ID:???
ただの趣味の延長だから、変なところがあるかもしれないけど…
気に入ってくれてうれしいよ、ありがとうね。
835nobodyさん:03/03/19 15:18 ID:???
※注意

最初にも言ったけど、ここの教室でやっていることは、
【わかりやすくするために多少強引な説明をしている】ところがあるよ。
基本なんだけど、【わかりにくいし使われもしないから省いている】ところも
たくさんあるよ。他のサイトとか見てると、戸惑うことも多いとおもうけど、
混同させないように注意してね。
836nobodyさん:03/03/19 15:18 ID:???
そ〜なんだ、解りました!
837nobodyさん:03/03/19 15:18 ID:???
すごいね

メルマガとか出してみたら?
838nobodyさん:03/03/19 15:18 ID:???
うぐぅage
839nobodyさん:03/03/19 15:18 ID:???
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
840nobodyさん:03/03/19 15:18 ID:???
まだやってんの?ヲタドモ
841nobodyさん:03/03/19 15:19 ID:???
カエレ
842nobodyさん:03/03/19 15:19 ID:???
妄想族
843nobodyさん:03/03/19 15:19 ID:???
       ∬
(´・ω・)っ旦 <マターリ
844nobodyさん:03/03/19 15:19 ID:???
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< このスレきもい♪
 (     つ  \______
 (_○___)
845nobodyさん:03/03/19 15:19 ID:???
煽りは放置の方向でマターリと
846nobodyさん:03/03/19 15:19 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < フォームデーターの受けとり
 (ニE(#つo⊂#)

今回はフォームデータを受けとってみるよ。
最初のうちは、 cgi-lib.pl を使ってやってみることにするね。
下のサイトから入手できるよ。
http://cgi-lib.berkeley.edu/

確認しておくけど、フォームデータ、っていうのは、
HTMLの <form> とか <input> とかで送るデータのことだよ。

require "cgi-lib.pl";
&ReadParse;

まず、 cgi-lib.pl っていう名前で、ダウンロードしたソースを、
C:\www\home\perl\ に保存してみてね。
CGIに送られたフォームデータはこれだけで取得できるんだ。
( cgi-lib.pl が同じディレクトリにある時だけだよ)

例えばこんなデーターが送られたとすると、

aaa=xxx&bbb=yyy&ccc=zzz

%in っていうハッシュにまとめて値がいれられるよ。
例えば、 aaa を参照したいなら、 $in{'aaa'} っていう感じで取得できるよ。

フォーム入力ができたら、CGIの世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。

#投稿が遅れてごめんね
847nobodyさん:03/03/19 15:20 ID:???
うんうん、よろしくね

それもいいかもね
わかりやすく書き直して、カリキュラムもしっかり組めたら出してみるかも

うん、乗っ取らせてもらったよ
WebProg板のスレはなかなか落ちないからね…

うんうん、マターリしようね
848nobodyさん:03/03/19 15:20 ID:???
メールアドレス作ってみたよ
内容についての質問とか要望があったらメールしてくれてもいいよ

なるべく返信はしたいけど、忙しくて手が回らなかったりしたらごめんね。
849nobodyさん:03/03/19 15:20 ID:???
いつもここ見ながら新しいアイディアを模索してるよ。

もう来ないのかと思ったけど、待ってて良かったよ。


メルマガいいね!
850nobodyさん:03/03/19 15:20 ID:???
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。
気に入らなければ放置してくれれば良いだけなのに…。
851nobodyさん:03/03/19 15:20 ID:???
なるほど
こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
852nobodyさん:03/03/19 15:20 ID:???
cgi-lib.plって何?
マジで使ったこと無いけど、何するもんなの?
てか必要なの?
853nobodyさん:03/03/19 15:20 ID:???
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、
わざわざ鯖に入れている鬱、、、
854nobodyさん:03/03/19 15:21 ID:???
あゆたん、サイトがあったんだね。
今まで知らなかったよ。(うぐぅ
855nobodyさん:03/03/19 15:21 ID:???
-[perl0005.cgi]-------------------------------------------------
#!/usr/bin/perl/
# 簡易掲示板

print "Content-type: text/html;\n\n";

require "cgi-lib.pl"; &ReadParse;

print "<html>\n";
print "<head><title>掲示板</title></head>\n";
print "<body>\n";
print "<hr>\n";

if($in{message}){
open W, ">> perl0005.log";
print W "$in{message}\n";
close W;
}

open R, "perl0005.log";
@log = <R>;
close R;

foreach (@log){print "$_<hr>\n";}

print "<form action='perl0005.cgi'>\n";
print "<input type='text' name='message'> <input type='submit' value='書き込む'>\n";
print "</form>\n";
print "</body></html>\n";

exit;
----------------------------------------------------------------
856nobodyさん:03/03/19 15:21 ID:???
↑注意
簡易掲示板のソースだよ。
同じフォルダに、 cgi-lib.pl をいれてね。

ボクは途中で放棄はあまりしたくないんだよね
来なくなることはないと思うよ

まあ最初の方はこうやって簡単にやってもいいんじゃないかな?
もうちょっと勉強してきたら、自分のスクリプトの中に書いていこうと思うよ。

フォームからデーターを送られてきたのを、CGI側で取得する機能があるよ。
他にもいくつか機能があるけど、代表的なのはこれだね。
857nobodyさん:03/03/19 15:21 ID:???
今日うぐぅタンのページ見たよ、メアドの時に気づけなかった自分が寒いです・・・。


cgi-lib.plって便利そうだね。
もうちっと詳しく知りたいのでぐぐってきます。
858nobodyさん:03/03/19 15:21 ID:???
ごめん、レスぬけてたね。。

うん。
ボクの名前でドメインとっちゃった。。

わぁ、ありがとう!
まあ、 cgi-lib.pl は便利なことは便利なんだけど、
ちょっと実行したときの効率があまりよくないんだよね。
また今度、 cgi-lib.pl なしで取得する方法を勉強するね。
859nobodyさん:03/03/19 15:21 ID:???
うぐぅ。

今日タイヤキアイス食った、うまかった。
860nobodyさん:03/03/19 15:21 ID:???
社団法人日本外交協会(外務省の外郭団体、会長/綿貫民輔衆議院議長)が10月に東京都払い下げの期限切れ間近の非常用備蓄食35万食を、都や政府に無断で北朝鮮に援助していたことが石原都知事のインタビューで暴露された。
この非常用備蓄食は保存性に優れたアルファ米を使っており、自衛隊も戦闘糧食として使用していることから軍事用に転用される恐れもある。
石原都知事はこの件に関して政府と国会に徹底的な調査を要求すると述べた。

「ニュース速報+」【国際】東京都の非常食が北朝鮮に、石原知事激怒2
http://news2.2ch.net/test/read.cgi/newsplus/1038560374/

ソース:石原都知事・11/29日記者会見─2:00あたりから
http://www.metro.tokyo.jp/GOVERNOR/KAIKEN/kako.htm
MXTVで22:30から再放送

社団法人日本外交協会
〒106-0041東京都港区麻布台3-1-2飯倉セントラルビル4F
861nobodyさん:03/03/19 15:22 ID:???
うは、レスが早い! なんか嬉しい(うぐっ

自分はcgi-lib使わないで取得、エンコードずっとしてきたから・・・必要性は感じないんだけど知識としてね。


またページには遊びに行くよ!
なんか雰囲気とかもよかったし、勉強できそうなこととかもありそうな予感。



次回の授業を楽しみにしてます!
862nobodyさん:03/03/19 15:22 ID:???
具体的にどう効率があまりよくない?
863nobodyさん:03/03/19 15:22 ID:???
汎用的って事でしょう。
864nobodyさん:03/03/19 15:22 ID:???
cgi-lib.plではなくCGI.pmを使え、という意味だったのだが。

865nobodyさん:03/03/19 15:22 ID:???
CGI.pmって207k、、、。
そんなもん、コンパイルしてメモリにロードされるかとおもうと
とうてい、使う気にはなれんな。
866nobodyさん:03/03/19 15:22 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 掲示板 (2)
 (ニE(#つo⊂#)

すっごく簡単に掲示板を書いてみたけど、どうだったかな?
やっぱり、機能が少なすぎるよね。
これからはしばらくの間、毎回少しずつ機能を足していく予定だよ。

今回の追加してみる機能は…
・名前欄を作るよ
・メール欄も作るよ
・名無しさんの名前が出るようにするよ

名前、メールは、入力欄を増やして、ログファイルに書き込むように
すれば、簡単にできちゃうよ。
名無しさんも簡単だね。

if(!$in{name}){
$in{name} = "名無しさん";
}

名前欄がなかったら「名無しさん」を代入してるね。

長くて入りきらなくなっちゃったね…
ここには重要な部分だけ書いて、全文はリンクからたどれるようにするね。
ソースはここだよ。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0006.txt

読めない、っていうときは、対象をファイルに保存、かソースを表示してみてね。

次回は、新しく置換演算子を勉強して、いろいろなことをやってみるね。
867nobodyさん:03/03/19 15:23 ID:???
レスが早いのは運だよ

cgi-lib.pl は最初だから簡単に取得するために説明してるから、
慣れてきたら自分でやったほうがいいと思うよ

うん、ボクのホームページにも遊びに来てね。
ありがとう

317もあるけど、余計な処理をしすぎっていうか、
もっと簡単に短く単純に書けるよね
まあ自力でやる方法は今度説明するね。

cgi-lib.pl を使うのも CGI.pm もメリットがあればデメリットもあるよね
Perlを考えたアメリカの人は(名前忘れちゃったけど)
「Perlは好きなように書けばよい」っていう言葉を残してるんだから、
人それぞれやり方が違ってもいいと思うな
868nobodyさん:03/03/19 15:23 ID:???
↑アメリカだったっけ…?
違ってたら恥ずかしいから、とりあえず発言撤回させて…
869nobodyさん:03/03/19 15:23 ID:???
そっか〜、ありがと
鮎タンのページの掲示板でおみくじやったら「大凶」と「最大凶」ひいちゃったよ・・・。
これも運・・・。
870nobodyさん:03/03/19 15:23 ID:???
TMTOWTDIはまさにその通り、それはいい。
だが今人に勧めるのなら既に保守更新されていないcgi-lib.plよりも
標準モジュールとして使えるCGI.pmの方が導入は容易だと思うのだが?

まあそれでもcgi-lib.pmが良いというのなら、ポリシーは人それぞれだからかまわないが。

滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
871nobodyさん:03/03/19 15:23 ID:???
授業まだ〜?
872nobodyさん:03/03/19 15:23 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 置換演算子
 (ニE(#つo⊂#)

前回のソースを一般公開してしまうと、JavaScriptを使ったブラクラとかも
簡単に書き込めるから、タグの < を、 < に、 > を > に
置き換える方法を勉強するね。

● =~ s/◆/★/g;

変数●に含まれる、◆を★に置き換えるよ。
◆は、変数などが使えて、正規表現で指定するよ。
★は、◆で ( ) があったら、通常の変数に加えて後方参照の $1 $2 .. が使えるよ。

じゃあ実際に例を書いてみるね。
わかると思うけど、ファイルに書き込むよりも前に処理を実行しないと意味がないよ。

$in{message} =~ s/</</g;
$in{message} =~ s/>/>/g;

じゃあ、ついでにURLの自動リンクの方法も書いておくね。

$in{message} =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1">$1<\/a>/g;

最後の、 g っていうのは、「あるだけ置き換えする」っていう意味だよ。
なんで自動リンク
正規表現のパターンの中で、 / が使いたいときは、
その前の文字に \ を使うといいよ。
print "<a href=\"http://xxx.yyy.zzz/\">ホームページ</a>";
こんな感じで print のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
873nobodyさん:03/03/19 15:24 ID:???
うん
そういうこともあるよ

遅れちゃってごめんね
874nobodyさん:03/03/19 15:24 ID:???
やっと正規表現まで来たね。
個人的にtrがすごく知りたいよ、まだいまいち理解してないんだよね。(恥
でも正規表現そのものが便利で難しいみたいだし、まだまだ勉強だね。

次回楽しみにしてます。返答ありがと。
875nobodyさん:03/03/19 15:24 ID:???
でも「/」がたくさんあるといちいち「\/」に書き換えないとだから大変だよね。
ということで、じつは・・・

● =~ s#◆#★#g;

なんてのも使えるんだよ。
これなら「/」が多い日も安心ですね。

・・・っていうのは次回でつか?

「1文字ずつ対応させて置換する」って表現ではどうでしょう?>tr|y
$test = '01234-02468-13579-56789';
$test =~ tr/[0-9]/[A-J]/;
print $test; # ABCDE-ACEGI-BDFHJ-FGHIJ と表示
876nobodyさん:03/03/19 15:24 ID:???
$test =~ tr/[0-9]/[A-J]/;
[]に意味はあるのかい?
877nobodyさん:03/03/19 15:24 ID:???
$testに[]が含まれると、戻り値の置換文字数が変わってくる。
878nobodyさん:03/03/19 15:24 ID:???
tr[0-9][A-B];
と書き変えておこうとして忘れてました。
スマ
879nobodyさん:03/03/19 15:25 ID:???
これから先ずっと使う前に
q, qq, qw を覚えよーょ。

クォートのエスケープは他の言語でもよく使われるから、
覚えておいて損はないけど。
880nobodyさん:03/03/19 15:25 ID:???
>pearさん
こんど♪のスクリプトも改良してほしいですぅ
881nobodyさん:03/03/19 15:25 ID:???
ここにも出たか、粘着リア厨が!
さっさと糞してねれ!!
削除依頼出しとけよ!
882nobodyさん:03/03/19 15:25 ID:???
=粘着
883nobodyさん:03/03/19 15:25 ID:???
>>335=尾瀬原必死だな
まああんな穴だらけのクリプト晒されりゃいい恥さらしだから無理もないか(藁
884nobodyさん:03/03/19 15:25 ID:???
正規表現のコンストラクタ、qr//も忘れずにな
885nobodyさん:03/03/19 15:26 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 展開とクオート風演算子
 (ニE(#つo⊂#)

リクエストがあったから勉強するね。

$text = "うぐぅ";
print "うぐぅ<br>\n";
print "$text<br>\n";
print 'うぐぅ<br>\n';
print '$text<br>\n';

例えば、後々の説明を楽にするために、これを実行させてみてね。
'…' で囲むと、変数名がそのまま出ちゃったり、
ちゃんと改行されなかったりすることがわかると思うんだ。
'…' では、変数やメタ文字は【展開】されないよ。
つまり、囲った文字がそのまま出る、っていうことなんだ。
"…" では、【展開】されるよ。

さっきの例のソースを、全部、
"…" で囲んであるものは、 qq{…} に書き替えができるよ。(展開されるよ)
" が、ダブルクオーテーションっていう記号だから q がふたつあるのかな。
'…' で囲んであったら、 q{…} に書き換えができるよ。(展開されないよ)
こういうのを、クオート風演算子、っていうよ。
ボクは個人的な話だけど、 print は全部 qq{…} で書いてるよ。

続くよ。
886nobodyさん:03/03/19 15:26 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < クオート風演算子
 (ニE(#つo⊂#)

qw についても説明するね。
● = qw{★};
 ★で、半角スペースで区切った文字列を順番に配列●に代入するよ。
 これは知らなくてもそんなに影響はないと思うんだけどね…

qr は、取り扱うとしたらもう少し先になるかな…?
あといくつか、クオート風演算子はあるんだけど、代表的なものとしてこのへんで終わりにするね。

{ } って書いたけれど、一定の制約を守っていれば、 { } じゃなくてもできるよ。

一定の制約
 ・英数字以外の半角文字だったら何でもいいよ。
 ・ # を使うときは、直前にスペースがあると、コメントと間違うから注意だね
 ・カッコを使うときは、左右でペアにして使うよ。 { } ( ) [ ] < >

これは、正規表現の時にも使えるんだ。
たとえば、置換演算子の時では…

$test =~ s/xxx/yyy/g;
$test =~ s#xxx#xxx#g;
$test =~ s{xxx}{yyy}g;

これらは全部同じことを表しているよ。
それにしても、ボクはこの授業の内容は全部テキストファイルにしてるんだけど、
→ この行でちょうど1000行に達してしまうんだよね…。
ボク、よくこんなに書いたなあ…
887nobodyさん:03/03/19 15:26 ID:???
さんが上手く説明してくれてるね。
ボクにはこれ以上うまく説明はできないかな

おんぷちゃんねるのスクリプト…?
改造すべきところなんてあるかな?
どう改造してほしいか言ってくれたら、
もしかしたら1%ぐらいの確立で改造してみるかも
あと、ここでは「あゆ」って呼んでくれた方がうれしいな
888nobodyさん:03/03/19 15:26 ID:???
>342
ごめんなさいです。。。
用なし逝って話しますですぅ
889nobodyさん:03/03/19 15:26 ID:???
さん
ありがと、そっか〜つまり抜けてる部分とか余ったりするとよくないっぽいんだね。
一つずつってのがポイントみたい。
これでtrは解ったよ、ホントありがと。

うぐぅタン
だんだん難しくなってきたよ・・・。
まだ何とか付いていけてるから、次もよろしく〜
890nobodyさん:03/03/19 15:26 ID:???
334トリップ忘れた・・・(汗
891nobodyさん:03/03/19 15:26 ID:???
このすれ く さ い
892nobodyさん:03/03/19 15:27 ID:???
おまえが近づかないようにするためだよ。
893nobodyさん:03/03/19 15:27 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (1)
 (ニE(#つo⊂#)

Perlで一番重要な、サブルーチンについての説明だよ。
自分で処理を決める関数のようなものがつくれるから、ユーザー関数とかも呼ばれるよ。
サブルーチンは、「宣言」しておくと「実行」できるようになるよ。

じゃあ、宣言の方法を説明するね。
個人的な話だけど、ボクは、 { } の中に改行がくるときは、
インデントすることにしてるよ。インデントっていうのは、
行の始めにタブやスペースをいれて、始まりを右にずらすことだよ。
アンインデント、はこの逆だね。
これを使うと、スクリプトが複雑になってくると見やすくていいよ。

sub abc{
$x ++;
}

これは、変数 $x に 1 を足す、サブルーチンだね。
呼び出すには、 &abc; って書いて呼び出すよ。

サンプル。「2」って表示されるよ。
$x = 1;
&abc;
print "$x";
sub abc{ $x ++; }

サブルーチンはとっても重要で便利だから、必ずマスターしてね。
894nobodyさん:03/03/19 15:27 ID:???
うん、そうしてね。
わかってくれてうれしいよ

だんだん難しくなっていくね
わからないことがあったら気軽に聞いてね。
895nobodyさん:03/03/19 15:27 ID:???
ありがと、
とりあえず今のところ大丈夫だよ。

次は何が出てくるのか楽しみです。
896nobodyさん:03/03/19 15:27 ID:???
cgi-lib.plを使わないの簡易掲示板の作り方を教えて欲しいでつ。
897nobodyさん:03/03/19 15:27 ID:???
待て、一番重要なサブルーチンの説明がよりによって引数無し、グローバル変数操作かよ。
常識的なサンプルを提示できないなら、頼むから何もしないでくれ。はっきりいって迷惑。
898nobodyさん:03/03/19 15:27 ID:???
(1)って書いてるじゃねーか(2)があるんだろ
おとなしく待てよ行数規制があるんだから
899nobodyさん:03/03/19 15:28 ID:???
(2)はどこじゃヴぉけぇ!!!!!
900nobodyさん:03/03/19 15:28 ID:???
sub hogehoge {
 my %param = @_;

#何か

 return ...;
}
901nobodyさん:03/03/19 15:28 ID:???
>これは、変数 $x に 1 を足す、サブルーチンだね。

( ´,_ゝ`) プッ $x= 'A'でも1足すのかよ

$x= 'A';
$x++;
print $x; # これはB

$x= '?';
$x++;
print $x; # これは1

よく頭に叩き込んでおけ
902nobodyさん:03/03/19 15:28 ID:???
ゼロ文字幅
^ =>最初
$ =>最後

文字
. =文字
[..] =>文字クラス。括弧の中の、任意の1文字
[^..] =>中身以外の文字を1つ

繰り返し
* =以上
+ =以上
{n} =>n回
{n,m} =>n以上m未満
{n,}、{,m} も可能

(?:...) =>まとめるだけでいいとき
(...) =>後から$1とかで使うとき

\1 \2 \3 =>パターンマッチの中で使える。
$1 $2 $3 =>外で使う
903nobodyさん:03/03/19 15:28 ID:???
サブルーチン(1)
確かに、これだけじゃちょっと・・・

変数のスコープとか、GC,
サブルーチン内でグローバル変数を変更する事のリスクとか。
後できちんとフォローすれば大丈夫。多分。。。
904nobodyさん:03/03/19 15:28 ID:???
オタクスレ相互リンク

綾波レイのWEB制作管理教えますれ
http://pc3.2ch.net/test/read.cgi/hp/1023741627/l50
905nobodyさん:03/03/19 15:29 ID:???
漏れは普段平気でグローバル変数操作してるが。
use strictなんてきらいだよー。
906nobodyさん:03/03/19 15:29 ID:???
分かったから屑は死ね。
907nobodyさん:03/03/19 15:29 ID:???
月宮あゆのPHP教室もキボン!。
908nobodyさん:03/03/19 15:29 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (2) 返り値
 (ニE(#つo⊂#)

サブルーチンでは、返り値 (かえりち) っていうものが作れるよ。
「返り血」とか変なこと言ったら嫌だよ。

$x = &xxx; # $x には abc が代入されるよ。
sub xxx{ return "abc"; }

return ●
 …●を返り値として、呼び出し元に戻る。

ちょっとここで注意だけど、この関数は、絶対にサブルーチンの外で
使っちゃだめなんだ。戻る場所がないからね。
ふたつ以上の返り値を送りたいなら、

return ( $a, $b, $c );

みたいに配列にして送るといいよ。
受け取るときは、

( $a, $b, $c ) = &xxx;

こうやって受け取ることができるよ。
それか、配列をあらかじめ作っておいて、

return @xxx;
@xxx = &xxx;

みたいなこともできるよ。
909nobodyさん:03/03/19 15:29 ID:???
もうすこし先で勉強するからもうちょっとまってね。

サブルーチン、はとりあえず (4) か (5) まで続くと思うよ。
今は (4) の途中まで書いてるからね。。

確かに、オートインクリメント演算子は、「1足す」じゃなくて、
「値を1増加させる」っていう機能なのはその通りなんだけど、
そんな扱ってないようなことを勝手に進めないで。
先に「省略してるところもある」ってちゃんと言ってるんだから。
そんなことはあまり知る必要ないんじゃない?

必要最小限のことは付け足すからね。

ボクはPHPはほとんどできないんだよね。。
勉強するにもPHPの入門書が数ないからねえ。。
910nobodyさん:03/03/19 15:30 ID:???
返り値と戻り値って、どう違うの?ダレカオシエテ
911nobodyさん:03/03/19 15:30 ID:???
重箱の隅をつつくようだけど、実はサブルーチンの外でもreturnを使えるケースがあるんだよね。
標準ライブラリの中にもその使い方をしているものもあるよ。

ところで、-wスイッチとuse strictの説明の予定はあるの?
コーディングを楽にするためにも、まずその説明をした方が良いと思うね。

同じ意味だと思うよ。
912nobodyさん:03/03/19 15:30 ID:???
ありがと。戻り値でも通じるんだよね?
よかった、前から気になっていたんだ。
913nobodyさん:03/03/19 15:30 ID:???
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
914nobodyさん:03/03/19 15:30 ID:???
くさい
915nobodyさん:03/03/19 15:30 ID:???
すいません、教えて下さい
foreach
これってフォーイーチ?
フォーリーチですか?
気になって仕方ないです…
お願いします。
916nobodyさん:03/03/19 15:30 ID:???
for eachだから、そのように。
917nobodyさん:03/03/19 15:31 ID:???
f or each
918nobodyさん:03/03/19 15:31 ID:???
それはあんまりです(笑
919nobodyさん:03/03/19 15:31 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (3) 局所化
 (ニE(#つo⊂#)

サブルーチン、といえばこの関数はよく出るから覚えておいてね。
my と、 local と、 return だよ。
return は、もう勉強したからいらないね。
じゃあ、今回は my と local について勉強するね。これはほとんど同じ意味だよ。
だから、ここでは同じものとするね。いつか機会があれば、説明するね。

my ●;
local ●;
 …どっちも、変数●または配列●を、そのサブルーチンの中だけで
  有効にする、っていうことだよ。
  my 宣言された変数を、プライベート変数、 local はローカル変数、っていうよ。
  逆に、スクリプト全体で使える変数をグローバル変数、っていうよ。
  【いちばん内側の { } で囲まれた範囲だけで有効な変数】っていうことかな。
  この有効範囲を、スコープ、っていうよ。

my $xxx; # $xxx を my 宣言する
$xxx = "abc"; # 前の行で my 宣言されている
$yyy = $xxx; # $yyy は my 宣言されていない
my $zzz = "xyz"; # $zzz はここで my 宣言される

じゃあサンプルだよ。

$my = "abc"; $test = "abc";
&xxx;
print "my 宣言した変数=$my<br>\nしてない変数=$test";

sub xxx{ my $my = "xyz"; $test = "xyz"; }
920nobodyさん:03/03/19 15:31 ID:???
うん、同じだね

eval の中かな?
eval はまだ取り扱ってないから、出てきたときに説明しようと思って、
こんなところで「eval」って出したら混乱する人もいそうだから、
あえて説明しなかったんだよね。。

-w とか strict は、知っておいた方がいいことだろうね。。
-w は未定だけど、 strict はそのうち勉強する予定だよ。

ふぉーいーち、だと思うよ
921nobodyさん:03/03/19 15:31 ID:???
このあゆ、息臭いなあ
このあゆ、汗っかきだなあ
このあゆ、ワキガ??
922nobodyさん:03/03/19 15:31 ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ *´ー゚*リ <  うぐぅ♪
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
923nobodyさん:03/03/19 15:31 ID:???
           / ̄ ̄\
           | う う  |
           |  ぐ   う / ̄ ̄ ̄ ̄ ̄ ̄
           |  ウ  | < うげぇ
           \__/  \______
.          r‐-i^i´`||iii》ヽ
         (_| | i/二フ.〉
            (__|_ゝ、__[]_ア
               /  l| |
           /fヨI 中|
          く     l| |
           ` ‐r-十!
             ノ  ! !
               /ゝ,/ー|
           /  /l  |
            / f《 |fヨ |
.             \_)_ノ
924nobodyさん:03/03/19 15:32 ID:???
ヴ?
925nobodyさん:03/03/19 15:32 ID:???
そういえばevalもそうだっけ。でもそれ以外にもあるよ。
実はrequireされるライブラリファイルの中だとreturn出来るんだよ。
例えばAnyDBM_Fileがそうしてる。
ま、普通は使わない機能だけどね。
926nobodyさん:03/03/19 15:32 ID:???
perldoc -f return
subroutine, eval, do FILE ... みたいですね。
ライブラリの中って言うのは、よくモジュール等の最後に 1; ってやるけど
あれって、return が省略されていたんだ?

そういえば、sub 内でも定数とかを返すだけのサブルーチンでは
return省略してるの良く見かけるよなぁ
927nobodyさん:03/03/19 15:32 ID:???
> あれって、return が省略されていたんだ?

ちょっと違う。
returnがない場合、最後に評価された式の結果が返される。
1; というのは式1;の値は1だから1が返る。

…って動作のはず。
928nobodyさん:03/03/19 15:32 ID:???
日本語のページからうぐぅを検索しました。 約56,500件中1 - 50件目 ・検索にかかった時間0.09秒

929nobodyさん:03/03/19 15:33 ID:???
Perlのクラスは何であんなにヘンテコですか?
930nobodyさん:03/03/19 15:33 ID:???
あんなにってどんなに?
931nobodyさん:03/03/19 15:33 ID:???

睾丸無知
932nobodyさん:03/03/19 15:33 ID:???
は睾丸ですか?
933nobodyさん:03/03/19 15:33 ID:???
あゆタンはやく続きおせーて
934nobodyさん:03/03/19 15:33 ID:???
しぼーん
935nobodyさん:03/03/19 15:33 ID:???
(´・ω・`)ショボーン
936nobodyさん:03/03/19 15:33 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (4) 引数
 (ニE(#つo⊂#)

引数、っていうのは、「ひきすう」って読むらしいよ。
ボクはこのあいだまで、「いんすう」だって思ってたんだけど。。

サブルーチンから値を持って戻る、っていうことをやったね。
じゃあ次は、値を持ってサブルーチンを実行するっていうことをやるね。

&xxx("abc", "123", "あいう");

こんな風に呼び出すと、特殊配列 @_ に頭から代入されて呼び出されるよ。
当然、

@list = ("abc", "123", "あいう");
&xxx(@list);

と同義だよ。

この辺の話を覚えて、次回は、名無しさんならエラー、っていう
ソースに改造してみるよ。

#投稿が遅れてごめんね。
#遅れてもdat落ちや削除されない限り途中で放棄することはないからね。。
937nobodyさん:03/03/19 15:34 ID:???
そうなんだ‥
知らなかった
ちょっと恥ずかしいな

えっ
そんなにあるのっ?!
なんだかすごいね

Perl、ってクラスって言うのかな…?
呼び方とかよく知らないや。。

遅れてごめんね。
938nobodyさん:03/03/19 15:34 ID:???
キタキタキター
939nobodyさん:03/03/19 15:34 ID:???



月宮あゆのPHP教室きぼんぬ


940nobodyさん:03/03/19 15:34 ID:???
このスレほんと勉強になりました。
で、PHPの勉強にすることにしたので、
おれもPHP教室を希望します。
ちょっとづつでいいのでお願いしたいです。
941nobodyさん:03/03/19 15:34 ID:???
いまさらPerl勉強しても需要も無い仕事無い
942nobodyさん:03/03/19 15:34 ID:???
確かに今さらPerlっつってもね。
でも、月宮あゆ君はよくがんばってると思うよ。
今後もがんばってもらいたいね。Perlで移行!!。
943nobodyさん:03/03/19 15:35 ID:???
perl今勉強中なんだが需要無いのか・・・
いや、なにか役立つでしょ。うん。

それとも先にcかphpを勉強した方が良いのか・・・?
944nobodyさん:03/03/19 15:35 ID:???
レスどもです。
Perlは勉強していきます。役には立ちますよね。

次にPHP、そしてCという順にやっていきます。がんがります。
945nobodyさん:03/03/19 15:36 ID:???
Perlは今後、使用者は減るけど使えないわけじゃないから勉強してもいいと思うよ。
でも、最終的にCするんだったら、ぼくはPHPを強く勧めるよ。
Perlから始めちゃうとPerl独自の癖がつくのでPerlしかできなくなる危険性があるので、
PHP勉強した後、Perlを勉強したほうかいいかもしれないね♪ がんがれ!
946nobodyさん:03/03/19 15:36 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < エラー画面を作る
 (ニE(#つo⊂#)

じゃあ、まずはソースだよ。
ttp://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0007.txt

&error("エラーメッセージ");

としてサブルーチンを呼びだすと、
( 特殊配列 @_ の0番目の要素だから $_[0] )
エラーメッセージが $_[0] に入って参照するようになってるよ。

こういうエラーのサブルーチンはよく見かけるね。
ぜひ使えるようにしようね。

次回は、環境変数について勉強するね。
947nobodyさん:03/03/19 15:36 ID:???
うん、遅くなってごめんね

ボクも今、PHPは勉強してるところなんだよね
ちょっとボクにはできそうにないよ
ごめんね

確かにこれからはPHPの時代に変わっていくかもしれないね。

elsif 、とかPerl以外にみたことないよ。。
948nobodyさん:03/03/19 15:36 ID:???
俺の鯖、CGI使えんのだが…お奨めはあるかね。
949nobodyさん:03/03/19 15:36 ID:???
Python だと elif
PHP では、 elseif, else if
Perl で、無理に独自のスタイルに馴染まなくても
C ライクなプログラミングも出来るよ。
950nobodyさん:03/03/19 15:36 ID:???
ソースのHTMLが解釈されて見にくいぽ。。。
951nobodyさん:03/03/19 15:37 ID:???
メリークリスマス

あゆタン
952nobodyさん:03/03/19 15:37 ID:???
ヘッダのContent-Typeを無視して勝手に中身を判断する
IEを恨みましょう。
953nobodyさん:03/03/19 15:37 ID:???
>Perl で、無理に独自のスタイルに馴染まなくても
>C ライクなプログラミングも出来るよ。

独自スタイルを使わずしてPerlは動くのか?
C知らずしてCライクは無理だろ。もうちと考えてかけよ。
954nobodyさん:03/03/19 15:37 ID:???
(´・ω・`)
955nobodyさん:03/03/19 15:37 ID:???
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
956nobodyさん:03/03/19 15:37 ID:???
ヒキコモリヲタのくせに生意気だな。
957nobodyさん:03/03/19 15:38 ID:???
オマエモナー
958nobodyさん:03/03/19 15:38 ID:???
elsifじゃなかったっけか?
959nobodyさん:03/03/19 15:38 ID:???
Pythonが?
960nobodyさん:03/03/19 15:38 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (1)
 (ニE(#つo⊂#)

環境変数っていうのを勉強するね。

環境変数は、 %ENV っていうハッシュに入ってるよ。
特に何もしなくても、実行すると自動で使えるよ。
これは、プログラムのどこでも使える、グローバル変数だよ。

じゃあ、全部の環境変数を表示してみようね。

foreach (keys %ENV){
print qq{$_:$ENV{$_}<br>\n};
}

ここで出てきた、 keys について説明すると、
「ハッシュのキーを全部とりだす」っていう感じだよ。
このへんはまた今度やろうね。

よく使う環境変数を説明するね。
$ENV{REMOTE_ADDR} : リモートアドレス(IP)が入ってるよ。
$ENV{REMOTE_HOST} : リモートホストが入ってるよ。
$ENV{HTTP_USER_AGENT} : 使ってるブラウザとかのデータが入ってるよ。
$ENV{HTTP_REFERER} : そのページへのリンク元アドレスが入ってるよ。

こんな感じかな。
次回は他の環境変数と、スペースがあまったら実用例を書いてみるね。
961nobodyさん:03/03/19 15:38 ID:???
あけましておめでとう、今年もよろしくね

無料サーバかな?
規約違反するなら infoseek かトクトク
規約違反しないなら XREA がいいと思うな

Python なんて言語聞いたことない…
他は聞いたことあるけど。。

ボクもよくわからなかったんだけど410さんが言うにはIEの仕様みたいだね・・・
これはしかたないね

今は、あけましておめでとう、っていう時期になっちゃったね
ごめんね

見てくれてたのかな、ありがとうね
これからできるだけ顔を出したいと思ってるんだけどね
最近いそがしくて・・
962nobodyさん:03/03/19 15:38 ID:???
あけおめ、ことよろ、ガンガレ
963nobodyさん:03/03/19 15:39 ID:???
あゆタン
964nobodyさん:03/03/19 15:39 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
965nobodyさん:03/03/19 15:39 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (2)
 (ニE(#つo⊂#)

他の環境変数だよ。
環境に依存するものとか、まったく使わない、と思うのは省いたよ。

$ENV{REQUEST_METHOD} : リクエストされたメソッドだよ。普通は GET か POST だよ。
$ENV{HTTP_HOST} : そのスクリプトが動作してるサーバのアドレスだよ。
$ENV{QUERY_STRING} : xxx.cgi?xxxx っていう感じでアクセスされたら、 ? 以降の文字が入ってるよ。
$ENV{CONTENT_LENGTH} : 送られたデータの総容量だよ。
$ENV{HTTP_COOKIE} : クッキーの情報がはいってるよ。

あとは、プロキシの判断をするときに、

HTTP_CACHE_INFO HTTP_FORWARDED HTTP_IF_MODIFIED_SINCE
HTTP_PROXY_CONNECTION HTTP_VIA HTTP_X_FORWARDED_FOR

とかの環境変数を目安にすることもあるね。

じゃあ、次回は、掲示板に書き込んだ人のリモートホストを解析して、
保存するように改造してみるね。

※ $ENV{REMOTE_HOST} では取得できないサーバーが最近増えてるよ。
  こんなサーバーは、 gethostbyaddr 関数を使わないといけないんだけど、
  使い方はまた今度説明するね。
  gethostbyaddr 関数も使えないサーバーもあるらしいよ。。
  こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。
  わからないことがあったら、サーバーの管理人さんに聞いてね。
966nobodyさん:03/03/19 15:39 ID:???
おめでとう、今年もよろしくね。

ん?なに?

Janeで読んだら「ここ壊れてます」、って言われる
なんでだろう
967nobodyさん:03/03/19 15:39 ID:???
取得するときになんか障害が起きたから。
968nobodyさん:03/03/19 15:39 ID:???
誕生日おめでとう>あゆあゆ
969nobodyさん:03/03/19 15:40 ID:???
(´Д⊂ヽ・゚。 ウワァァァァアァァン あゆあゆ〜
970nobodyさん:03/03/19 15:40 ID:???
???
971nobodyさん:03/03/19 15:40 ID:???
そういや1月7日はあゆちゃんの誕生日だったっけ。
おめでと〜。

関係ないけど、
このスレでの「月宮あゆ」は共有コテにして、トリップだけ別々にすればいいと思うが。
俺は「C言語CGI」スレの住民だけど、あゆのレスが面白くてこっちにもいてみたり。
972nobodyさん:03/03/19 15:40 ID:???
つぅかnobodyさん−>月宮あゆ

を提唱しようではないか。と。

取りあえず次スレはWebProg総合スレにして欲しいっす。
初心者スレとかも良いかもね。
973nobodyさん:03/03/19 15:40 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (3)
 (ニE(#つo⊂#)

じゃあ、掲示板に書きこんだ人のホストを記録するよ。
簡単に言うと、ログファイルに記録すればいいんだけど、
ログファイルにそのまま記録しちゃうと、読む人にホストが見えちゃうんだよね。
たぶんここにいる人たちはホスト開示、っていうのは嫌だと思うんだ。
コメントにする、っていうのも、ソースを見られたらばれちゃうよね。

じゃあ、こんなことをしてみよう。
書きこむときに

<a href='mailto:メール'>名前</a>>メッセージ

っていう書き方をやめるんだ。こうじゃないとホストが筒抜けになっちゃうからね。
じゃあ、ホストを記録できるようにするには、

<a href='mailto:メール'>名前</a>>メッセージ(ホスト)

みたいにして、表示するときに消してやるといいよ。
表示する欄をいじってみるね。

foreach (@log){
$_ =~ s/\([\w\.-]\)\n$//;
print "$_<hr>\n";
}

でも、このままだと穴があるよ。
行数が入らないから次回にまわすね。
974nobodyさん:03/03/19 15:40 ID:???
なぁ、データフォーマットの時点でなんか痛くない?
975nobodyさん:03/03/19 15:41 ID:???
うーん・・・
できればsplitあたりを使って今回やりたかったんだけど
行数が入らないからフォーマットは次回まわしかな
976nobodyさん:03/03/19 15:41 ID:???
俺はっす。
重要な語句が抜けてますた(*´Д`)
質問に「答える人達が」共有であゆコテを使おうってことを言いたかったんだ。
「◆XalkKQX1is」あゆ一人だけだと、負担がかかるんじゃないかと思ったから。
気の回しすぎだったらごめん。
軽い気持ちで吊ってくるっす。
977nobodyさん:03/03/19 15:41 ID:???
ィ`
978nobodyさん:03/03/19 15:41 ID:???
それなら、AYUAYUっていうトリップ探して付けてみたら?
そっちの方が雰囲気出るかも
ただ、◆Xalk..も◆AYUAYU..も掲示板でpassを晒したら、
関係ない奴が偽物として入ってくると言う痛い罠
passの配布方法はどうするの?
979nobodyさん:03/03/19 15:42 ID:???
パスワード パスと呼ぶ奴 厨房さ 
980nobodyさん:03/03/19 15:42 ID:???
password path
981nobodyさん:03/03/19 15:42 ID:???
そのためわざわざ英字で書いたんだけど....
自分ダメダメっすね(^.^;
982nobodyさん:03/03/19 15:42 ID:???
共通トリップ付けるのに偽物がどうこうとか言うなら
いっそトリップ付けなきゃ(ry

もしくはID表示させれば(ry
983nobodyさん:03/03/19 15:43 ID:???
とりあえず、あゆが来るまで保守
984nobodyさん:03/03/19 15:43 ID:???
(^^)
985nobodyさん:03/03/19 15:43 ID:???
あゆあゆ.com.うぐぅ・・・。(^−^)
986nobodyさん:03/03/19 15:43 ID:???
あゆage
987nobodyさん:03/03/19 15:43 ID:???
COBOLってどうなんすか、、、
いまどき(仕事以外で)使ってる人いるんすかねえ、、、
988nobodyさん:03/03/19 15:43 ID:???
全部読んだが全く知識のない自分には当然全く分からない
電2>基礎から丁寧に説明してくれるので非常に分かりやすい
989nobodyさん:03/03/19 15:44 ID:???
電2に載るのはうれしいけど、肝心のあゆあゆが降臨してくれないからなぁ
降臨きぼーん
990nobodyさん:03/03/19 15:44 ID:???
ヲタドモが騒いでるな
電2ってなによ
991nobodyさん:03/03/19 15:44 ID:???
電波2ちゃんねる
992nobodyさん:03/03/19 15:45 ID:???
1は食い逃げの常習犯なので逮捕します
993nobodyさん:03/03/19 15:45 ID:???
通りすがりのたい焼き屋さんが住むスレはここですか?
994nobodyさん:03/03/19 15:45 ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ログファイル (1)
 (ニE(#つo⊂#)

前回はホストの記録をやってみたわけだけど、実は拡張子が、
.cgi とかじゃないファイルは、外部から参照されちゃうことがあるんだ
(でも、基本的にサーバーの設定に依存するよ)
log.cgi か何かにリネーム(名前を変更)して、スクリプトも少し
書き直したらこの問題は解決されるね。

じゃあ今回は、少し重い掲示板を作る、っていう想定でやってみるね。
ここでは表示欄にテーブルを組ませたりするよ。
ちょっとここで考えてみると、前回までと同じように、ログファイルに
書き込んでると、容量がどんどん大きくなっちゃうよね。
それは困る、っていうことで、一般的な掲示板では、【区切り文字】を
使って、名前、とかの要素を区切って保存してるよ。

2ちゃんねるでもこれは同じだよ。
http://pc.2ch.net/php/dat/1014096840.dat

名前<>E-mail<>投稿日<>本文<>(サブジェクト)

っていう感じに <> で区切られて保存されてるのがわかると思うよ。
区切り文字は、 <> が一番メジャーで、次に , とか : とか | を見るね。
別に何でもいいんだけどね。でも、本文にその区切り文字があると、
そこで区切られちゃうから、それを避けるようにすればいいね。
じゃあ、今回は

名前<>E-mail<>投稿日<>本文<>ホスト

っていう形式でやってみることにするね。
995nobodyさん:03/03/19 15:45 ID:???
うーん・・
ボクは別にそれでもいいけど
結構大変な仕事を継続してやってくれる人はいるかな…?
いるならボクは大歓迎だよ

トリップのキーはすぐに割れそうな気がするキーなんだけど…
えっと、他のスレでもこのトリップ使ってるから、
公開するつもりはあまりないよ、ごめんね

COBOL…?
ごめん、聞いたことないよ。。

えっ?!
今みてみたけどホントに掲載されてるね
うれしいよ、今度からも頑張るから応援してね

そんな難しいこと書いてるかなぁ…
どのへんから分からないのか教えてほしいな

遅くなってごめんね

スレ違いだよっ!
996nobodyさん:03/03/19 15:46 ID:???
あゆあゆ降臨
キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
俺はスローペースでもOK
てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
997nobodyさん:03/03/19 15:46 ID:???
月宮あゆの中の人も大変だな。
998nobodyさん:03/03/19 15:46 ID:???
    _ _
  〃┏━━
  ( )   ( )
  (.〆⌒ヽ )
  (∴゚ρ゚∴) < いないよ  ( £ £ )
  ( £ゑ££ )
  (££ゑ£)
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
999nobodyさん:03/03/19 15:46 ID:???
                        n
                  A_I_R_ノ V|
                        `''´
The days which are wrapped in the scene of summer and to pass gently
        An encounter with the girls repeated in the sunlight
           Summer continues to where as well
                 She is waiting in the air

                    __(/__
                  ,.-'´    `ヽ
                 r'´  ゝ'   `ヽ
                 { "''     " ii}
                 li       i i ii
                 _i_i i    i i_リ'_
               <___,.ニ=‐-‐- <__>;
.                }/      \`ヽ. イ
               /, , ' i i i 、 \ ヾ i {
              /イ! i ! i i瓜_ト、_`丈_ヽヾ.K 
              /!、、、v'frj「 ; `'}rj`yi`.l \____ 
.             ん'^iハ、ヾヽ´  ワ `゙ハ l !ト ノ´し'⌒`
             l:::::::`ーi i`i::`  .__, イi ii !il:::::::l 
             l:::::::::::,' .'/:::::::r‐w‐ヵ:、 ii i l::::::l 
             l:::::::; ' ム' ‐''`Y^r '` ‐- 、ヽ:::|
             l::/,ィ´ベ   ;゙†.!   /∧ \
             //::::|,'  〉、、 ,','  ゙、  /∧ ヽ、 ヽ、
          //l::::::::/  {  V/ 、 /〉,'./::::}  ヾメ、 ゙ヽ、
         / / く::::く   ゝ、::::\ /:::::::::ノ /l  `ヽ ヽ
         ,' ,'   \::`コ==}   `' ::::::{==「::::::j    }  }
         { {,,. ‐,.ニ"-‐=ニレ'` ー--‐ァ''´\j::/     ノ ノ
         ゝ. V´   _,,. ‐''"     /  ハ\   / /
1000nobodyさん:03/03/19 15:46 ID:???
月宮あゆ ◆XalkKQX1is つまらんぞ。
シロウトがでたらめばかり書くな。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。