トップページphp
1001コメント377KB

月宮あゆのPerl教室 Part.4

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

#!/usr/local/bin/manko

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

%doutei = @;

@ key ->> .*

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

/*最後の処理*/

lastescape;

sub manko{

$kekeke = 1;

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

}

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

http://homepage2.nifty.com/satp/imgboard/img-box/img20020418205910.gif
0142nobodyさん02/04/22 19:00ID:???
うぐぅさん、厨な質問をきいていただけますか?
0143nobodyさん02/05/01 17:36ID:9tGEKAi6
あげ
0144nobodyさん02/05/16 01:44ID:???
ほぜん
0145nobodyさん02/05/24 00:27ID:???
<html><head><title>KANONの魅力</title></head>
<body>すべての始まりは秋子さん<br>
<img src=Akiko.jpg><br>そして伝説が始まる…
</body></html>
0146nobodyさん02/05/25 03:32ID:???
>>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
0147nobodyさん02/06/09 00:17ID:???
あゆがいねえー
0148nobodyさん02/06/11 16:19ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  帰ってきた
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
0149nobodyさん02/06/24 22:05ID:esiRtk+f
(=゚ω゚)ノぃょぅ
0150Perler02/06/24 22:22ID:???
久しぶりに来てみた。
0151nobodyさん02/06/25 15:57ID:GD8HyrKF
http://ex.2ch.net/test/read.cgi/entrance/1024924027/91
0152FOR LOVERS02/06/25 16:07ID:y3UvfTKA
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
who@luck.ocn.ne.jp


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

use LWP::Simple;

or

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

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

$password = "";

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

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

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

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

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

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

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

じゃあ、今日の話はこのへんで終わるね。
0189nobodyさん02/10/12 20:10ID:???
おわ。久々に昔の感じだな。
0190nobodyさん02/10/13 02:16ID:???
>>185のAAのがいいね。
0191月宮あゆ ◆XalkKQX1is 02/10/13 10:32ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <ヘッダとボディ
 (ニ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 っていうのは、「表示する」ってことだと、とりあえずは
思っててくれて大丈夫だよ。
またあとの方で、詳しく説明するからね。
0192nobodyさん02/10/13 21:23ID:???
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
0193nobodyさん02/10/13 21:56ID:???
できることなら
Content-Type: text/html; charset=EUC-JP
のように charset も出してあげませう。
0194月宮あゆ ◆XalkKQX1is 02/10/14 09:43ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

print "$abc";

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


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

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

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

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

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

$mon ++;
$year += 1900;

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

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

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

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

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

222ゲトー
0223月宮あゆ ◆XalkKQX1is 02/10/20 12:38ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(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;
----------------------------------------------------------------

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

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

このへんを使って、曜日を出してみてね。答えは次回載せるよ。
0227こうだろ02/10/22 19:25ID:???
#!/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;
0228nobodyさん02/10/22 23:16ID:???
$year/$mon/$day($you) - $hour:$min:$sec
の方が綺麗だな。
0229むしろこう02/10/23 00:29ID:???
#!/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;
0230むしろこう(さらに改良)02/10/23 00:45ID:???
#!/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;
0231nobodyさん02/10/23 01:28ID:???
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
0232こうだろ(むしろこうの修正)02/10/23 15:49ID:???
#!/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;
0233むしろこう02/10/23 23:48ID:???
>>232
perlのパスは俺の場合/usr/bin/perlなんだよ・・・。
エスケープ忘れてたし・・・。
でも""の中で()は一応エスケープされてると思うんだけど。
ちゃんと実行して検証しているし。
やっぱエスケープは礼儀ということか・・・。
0234nobodyさん02/10/24 01:43ID:???
だからまだ習ってない配列とか先に進むなっての(;´Д`)
0235nobodyさん02/10/24 20:31ID:???
      _ _
      〃┏━━ 、
      |  ノノソハ)))  / ̄ ̄ ̄ ̄
    Λ_リリ ;´∀`)リ < うぐぅあげ♪
   ( ⊂#~ ∞~~#⊃ \____
   ( つ/_∞__|~
   |(__)_)
   (__)_)
0236nobodyさん02/10/25 00:18ID:???
他で習ったよ
0237月宮あゆ ◆XalkKQX1is 02/10/25 14:26ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <曜日を表示
 (ニE(#つo⊂#)

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

今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね…
ちょっと考えとくね
0238月宮あゆ ◆XalkKQX1is 02/10/26 02:46ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <配列の扱い方
 (ニ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] 曜日";

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

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

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

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

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

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

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

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

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


優先順位についてちょっと説明するね。
実際の数学と同じように、加算、減算は、後回しにして計算されるよ。
先に計算したいなら、 ( ) でくくってみてね。
じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
0241nobodyさん02/10/27 10:54ID:???
あゆた〜〜ん
0242月宮あゆ ◆XalkKQX1is 02/10/27 13:04ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <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 は等しい )
● != ◆ … ●と◆が数値として等しくない
● < ◆ … ●が◆より小さい
● > ◆ … ●が◆より大きい
● <= ◆ … ●が◆以下
● >= ◆ … ●が◆以上
0243月宮あゆ ◆XalkKQX1is 02/10/27 13:04ID:???
>>241
ど、どうしたの…?
0244月宮あゆ ◆XalkKQX1is 02/10/29 22:19ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < while / until / next / last
 (ニE(#つo⊂#)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

※本当は、【正規表現】っていう新しいことなんだけど、
 よく使いそうだからここで一緒に覚えようね。
 正規表現は、近いうちに勉強するよ。
0247月宮あゆ ◆XalkKQX1is 02/11/01 17:40ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 真と偽
 (ニ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 を勉強しようね。
0248月宮あゆ ◆XalkKQX1is 02/11/03 23:56ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 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 "その他";}

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

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

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

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

● =~ /◆/★

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

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

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

例だよ。

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

これは、

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

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

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

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


…みんなはこのへんちゃんと理解してくれてるのかな?
わかりにくいところがあったら言ってね。
説明しなおすからね。
0255月宮あゆ ◆XalkKQX1is 02/11/09 23:36ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (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 "アルファベット大文字以外の文字が含まれている"; }

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

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

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

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

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

>>258
うん、そうだね
まあ実用的なスクリプト作れるぐらいになったら終了、かな
0261月宮あゆ ◆XalkKQX1is 02/11/14 21:11ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (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 とかもあるけど、それはそのとき説明するね。
0262月宮あゆ ◆XalkKQX1is 02/11/14 21:11ID:???
一行抜けちゃった…

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

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

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

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

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

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

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

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

open ★, ◆
close ★

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

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

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

print "$test";

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

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

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

open ★, "> test.txt";

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

print ★ "test";

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

行数が入らないから続くよ
0276月宮あゆ ◆XalkKQX1is 02/11/19 23:16ID:???
-[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;
----------------------------------------------------------------

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

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

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

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

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

楽しみに見てますです。

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


コンビニでたいやきアイスは発見できませんでした・・・残念です。
0281秋子 ◆AKiKoYVoZk 02/11/20 23:18ID:???
今日も頑張ってね。
0282祐一 ◆yuitiQyXzU 02/11/21 10:39ID:???
昨日の教室はなかったのか?
0283月宮あゆ ◆XalkKQX1is 02/11/21 21:00ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 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 "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。

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

>>281
うん、頑張るよ

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

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

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

open IN, "test.txt";

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

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

close IN;

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

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

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

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

メルマガとか出してみたら?
0292 ◆soCKet026k 02/11/23 20:37ID:bk4yPgrO
うぐぅage
0293nobodyさん02/11/24 17:29ID:???
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
0294nobodyさん02/11/25 15:02ID:???
まだやってんの?ヲタドモ
0295nobodyさん02/11/26 07:17ID:wcv/13ds
カエレ
0296nobodyさん02/11/26 12:02ID:???
妄想族
0297nobodyさん02/11/26 16:16ID:???
       ∬
(´・ω・)っ旦 <マターリ
0298nobodyさん02/11/26 20:26ID:???
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< このスレきもい♪
 (     つ  \______
 (_○___)
0299>ALL02/11/26 22:58ID:???
煽りは放置の方向でマターリと
0300月宮あゆ ◆XalkKQX1is 02/11/27 18:09ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < フォームデーターの受けとり
 (ニ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の世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。

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

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

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

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

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

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


メルマガいいね!
0304nobodyさん02/11/28 01:41ID:???
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。
気に入らなければ放置してくれれば良いだけなのに…。
0305nobodyさん02/11/28 21:24ID:???
なるほど
こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
0306一うぐぅファン ◆unyuH2NGgE 02/11/29 00:10ID:???
>305
cgi-lib.plって何?
マジで使ったこと無いけど、何するもんなの?
てか必要なの?
0307nobodyさん02/11/29 00:21ID:???
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、
わざわざ鯖に入れている鬱、、、
0308nobodyさん02/11/29 11:21ID:???
あゆたん、サイトがあったんだね。
今まで知らなかったよ。(うぐぅ
0309月宮あゆ ◆XalkKQX1is 02/11/29 18:18ID:???
-[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;
----------------------------------------------------------------
0310月宮あゆ ◆XalkKQX1is 02/11/29 18:21ID:???
↑注意
簡易掲示板のソースだよ。
同じフォルダに、 cgi-lib.pl をいれてね。

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

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

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


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

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

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

今日タイヤキアイス食った、うまかった。
0314nobodyさん02/11/29 20:40ID: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
0315一うぐぅファン ◆unyuH2NGgE 02/11/29 21:02ID:???
うは、レスが早い! なんか嬉しい(うぐっ

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>319
滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
0325nobodyさん02/12/05 18:47ID:o9GMmmoX
授業まだ〜?
0326月宮あゆ ◆XalkKQX1is 02/12/05 20:43ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 置換演算子
 (ニ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 のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
0327月宮あゆ ◆XalkKQX1is 02/12/05 20:46ID:???
>>323
うん
そういうこともあるよ

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

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

● =~ s#◆#★#g;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub abc{
    $x ++;
}

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

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

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

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

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

#何か

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

return @xxx;
@xxx = &xxx;

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

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

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

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

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

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

>>366
同じ意味だと思うよ。
036836602/12/11 22:40ID:???
>>367
ありがと。戻り値でも通じるんだよね?
よかった、前から気になっていたんだ。
0369nobodyさん02/12/11 23:34ID:M9dNCh9D
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
0370nobodyさん02/12/12 08:30ID:???
くさい
0371nobodyさん02/12/12 10:53ID:SmMSqgPF
すいません、教えて下さい
foreach
これってフォーイーチ?
フォーリーチですか?
気になって仕方ないです…
お願いします。
0372 ◆hMJAPH9PWA 02/12/12 11:22ID:???
>>371
for eachだから、そのように。
0373nobodyさん02/12/12 12:12ID:???
f or each
037437102/12/12 12:18ID:SmMSqgPF
>>373
それはあんまりです(笑
0375月宮あゆ ◆XalkKQX1is 02/12/12 20:52ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (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"; }
0376月宮あゆ ◆XalkKQX1is 02/12/12 20:55ID:???
>>366
うん、同じだね

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

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

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

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

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

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

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

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

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

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

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

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

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

と同義だよ。

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

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

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

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

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



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


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

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

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

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

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

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

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

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

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

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

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

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

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

独自スタイルを使わずしてPerlは動くのか?
C知らずしてCライクは無理だろ。もうちと考えてかけよ。
0412(´・ω・`)02/12/27 23:58ID:???
(´・ω・`)
0413nobodyさん02/12/29 18:10ID:uoxci6sX
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
0414nobodyさん02/12/29 21:05ID:???
ヒキコモリヲタのくせに生意気だな。
0415nobodyさん02/12/31 13:32ID:qLQW6luA
>>414
オマエモナー
0416nobodyさん02/12/31 14:08ID:???
>>407
elsifじゃなかったっけか?
0417nobodyさん02/12/31 16:16ID:???
>>416
Pythonが?
0418月宮あゆ ◆XalkKQX1is 03/01/02 14:41ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (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} : そのページへのリンク元アドレスが入ってるよ。

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

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

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

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

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

>>413
見てくれてたのかな、ありがとうね
これからできるだけ顔を出したいと思ってるんだけどね
最近いそがしくて・・
0420nobodyさん03/01/03 22:48ID:jx+nlJxM
>>419
あけおめ、ことよろ、ガンガレ
0421nobodyさん03/01/05 00:33ID:???
あゆタン
0422nobodyさん03/01/05 14:58ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
0423月宮あゆ ◆XalkKQX1is 03/01/06 19:32ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (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 関数も使えないサーバーもあるらしいよ。。
  こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。
  わからないことがあったら、サーバーの管理人さんに聞いてね。
0424月宮あゆ ◆XalkKQX1is 03/01/06 19:33ID:???
>>420
おめでとう、今年もよろしくね。

>>421
ん?なに?

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

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

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

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

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

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

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

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

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

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

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

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

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

>>427
ど、どうしたの?

>>429
ありがとう。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>457
スレ違いだよっ!
0460nobodyさん03/01/17 00:02ID:???
>>458-459
あゆあゆ降臨
キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
俺はスローペースでもOK
てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
0461nobodyさん03/01/17 00:31ID:???
月宮あゆの中の人も大変だな。
0462nobodyさん03/01/17 01:33ID:???
    _ _
  〃┏━━
  ( )   ( )
  (.〆⌒ヽ )
  (∴゚ρ゚∴) < いないよ>>461
  ( £ £ )
  ( £ゑ££ )
  (££ゑ£)
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
0463AIR ◆AIR/AeaCbM 03/01/17 22:12ID:???
                        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´   _,,. ‐''"     /  ハ\   / /
0464nobodyさん03/01/18 06:38ID:q6+JV5fJ
月宮あゆ ◆XalkKQX1is つまらんぞ。
シロウトがでたらめばかり書くな。
0465nobodyさん03/01/18 06:40ID:q6+JV5fJ
ったく、ちょっとスレを読んでみたけど、いいかげんなことばっかじゃねぇか。

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

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

● = split ◆, ★

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

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

と、

@data = split /<>/;

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

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

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

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

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

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

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

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

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

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

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






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

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

詳しくは
ttp://member.nifty.ne.jp/maebashi/programmer/c_yota/semicolon.html
0497(((\リリ ´ー` リ  <  うぐぅ♪ 03/01/25 12:43ID:???
>>496
>まいたけから来ますた。

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

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

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

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

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

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

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

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

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

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

● = length ★

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$sum = length $a + length $b;

$sumは6になるでしょうか?
0526nobodyさん03/02/02 01:39ID:???
>>524
全角文字だけが2バイト、ではないよね。
0527nobodyさん03/02/02 10:07ID:???
>>526
全角文字が2バイトとは限らんしな。
0528nobodyさん03/02/02 10:23ID:EcuvSD39
半角かなで2バイトとか、
全角漢字で3バイトとかあるよね。
0529nobodyさん03/02/02 10:23ID:EcuvSD39
>>525
3になる
と思うんだけどあってるか?
0530nobodyさん03/02/02 10:40ID:???
$sum = length ($a + (length ($b)));
こう書くと判りやすいかも。@Ans. $sum = 3
0531nobodyさん03/02/02 10:44ID: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
0532nobodyさん03/02/02 11:44ID:???
>>530
意味考えると激しく妙な式だな。それ。
0533nobodyさん03/02/02 13:00ID:???
>>530

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

知らずにはまることは無いと思う。
0536月宮あゆ ◆XalkKQX1is 03/02/10 16:39ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 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

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

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

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

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

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

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

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

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

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

>>547
嫌だった?

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

%doutei = @;

@ key ->> .*

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

/*最後の処理*/

lastescape;

sub manko{

$kekeke = 1;

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

}

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

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

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

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

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

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

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

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

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

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

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



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

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

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

http://homepage2.nifty.com/satp/imgboard/img-box/img20020418205910.gif
0696nobodyさん03/03/19 14:54ID:???
うぐぅさん、厨な質問をきいていただけますか?
0697nobodyさん03/03/19 14:54ID:???
あげ
0698nobodyさん03/03/19 14:54ID:???
ほぜん
0699nobodyさん03/03/19 14:54ID:???
<html><head><title>KANONの魅力</title></head>
<body>すべての始まりは秋子さん<br>
<img src=Akiko.jpg><br>そして伝説が始まる…
</body></html>
0700nobodyさん03/03/19 14:54ID:???
チェックの結果は以下のとおりです。
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
0701nobodyさん03/03/19 14:54ID:???
あゆがいねえー
0702nobodyさん03/03/19 14:55ID:???
      _ _
     〃┏━━ 、
パタパタ |  ノノソハ)))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (((\リリ ´ー` リ <  帰ってきた
  ((ニE/⌒ヾ∞"ヽ   \____________
    (こ)   ∞ |こ)
    く__∞,ノ
    し' し'
0703nobodyさん03/03/19 14:55ID:???
(=゚ω゚)ノぃょぅ
0704nobodyさん03/03/19 14:55ID:???
久しぶりに来てみた。
0705nobodyさん03/03/19 14:55ID:???
http://ex.2ch.net/test/read.cgi/entrance/1024924027/91
0706nobodyさん03/03/19 14:55ID:???
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
who@luck.ocn.ne.jp


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

or

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

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

$password = "";

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

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

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

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

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

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

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

じゃあ、今日の話はこのへんで終わるね。
0737nobodyさん03/03/19 15:01ID:???
おわ。久々に昔の感じだな。
0738nobodyさん03/03/19 15:02ID:???
のAAのがいいね。
0739nobodyさん03/03/19 15:02ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <ヘッダとボディ
 (ニ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 っていうのは、「表示する」ってことだと、とりあえずは
思っててくれて大丈夫だよ。
またあとの方で、詳しく説明するからね。
0740nobodyさん03/03/19 15:02ID:???
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
0741nobodyさん03/03/19 15:02ID:???
できることなら
Content-Type: text/html; charset=EUC-JP
のように charset も出してあげませう。
0742nobodyさん03/03/19 15:02ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <何か表示してみよう(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

print "$abc";

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


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

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

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

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

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

$mon ++;
$year += 1900;

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

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

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

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

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

222ゲトー
0770nobodyさん03/03/19 15:07ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <時計を表示してみよう(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;
----------------------------------------------------------------

今回はもう行数がなくなっちゃったから終わりだけど、
次は曜日を表示してみようね。
0771nobodyさん03/03/19 15:07ID:???
うん、そうだね。
ボクもわからないことが多いからね…
ストップされちゃうの…?このスレ…
0772nobodyさん03/03/19 15:08ID:???
↑トリップ間違えました
0773nobodyさん03/03/19 15:08ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <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 = "土";}

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

このへんを使って、曜日を出してみてね。答えは次回載せるよ。
0774nobodyさん03/03/19 15:08ID:???
#!/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;
0775nobodyさん03/03/19 15:08ID:???
$year/$mon/$day($you) - $hour:$min:$sec
の方が綺麗だな。
0776nobodyさん03/03/19 15:08ID:???
#!/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;
0777nobodyさん03/03/19 15:08ID:???
#!/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;
0778nobodyさん03/03/19 15:08ID:???
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
0779nobodyさん03/03/19 15:09ID:???
#!/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;
0780nobodyさん03/03/19 15:09ID:???
perlのパスは俺の場合/usr/bin/perlなんだよ・・・。
エスケープ忘れてたし・・・。
でも""の中で()は一応エスケープされてると思うんだけど。
ちゃんと実行して検証しているし。
やっぱエスケープは礼儀ということか・・・。
0781nobodyさん03/03/19 15:09ID:???
だからまだ習ってない配列とか先に進むなっての(;´Д`)
0782nobodyさん03/03/19 15:09ID:???
      _ _
      〃┏━━ 、
      |  ノノソハ)))  / ̄ ̄ ̄ ̄
    Λ_リリ ;´∀`)リ < うぐぅあげ♪
   ( ⊂#~ ∞~~#⊃ \____
   ( つ/_∞__|~
   |(__)_)
   (__)_)
0783nobodyさん03/03/19 15:09ID:???
他で習ったよ
0784nobodyさん03/03/19 15:09ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <曜日を表示
 (ニE(#つo⊂#)

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

今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね…
ちょっと考えとくね
0785nobodyさん03/03/19 15:10ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <配列の扱い方
 (ニ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] 曜日";

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

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

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

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

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

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

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

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

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


優先順位についてちょっと説明するね。
実際の数学と同じように、加算、減算は、後回しにして計算されるよ。
先に計算したいなら、 ( ) でくくってみてね。
じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
0788nobodyさん03/03/19 15:10ID:???
あゆた〜〜ん
0789nobodyさん03/03/19 15:10ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  <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 は等しい )
● != ◆ … ●と◆が数値として等しくない
● < ◆ … ●が◆より小さい
● > ◆ … ●が◆より大きい
● <= ◆ … ●が◆以下
● >= ◆ … ●が◆以上
0790nobodyさん03/03/19 15:11ID:???
ど、どうしたの…?
0791nobodyさん03/03/19 15:11ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < while / until / next / last
 (ニE(#つo⊂#)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

※本当は、【正規表現】っていう新しいことなんだけど、
 よく使いそうだからここで一緒に覚えようね。
 正規表現は、近いうちに勉強するよ。
0794nobodyさん03/03/19 15:11ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 真と偽
 (ニ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 を勉強しようね。
0795nobodyさん03/03/19 15:11ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 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 "その他";}

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

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

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

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

● =~ /◆/★

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

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

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

例だよ。

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

これは、

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

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

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

別に気にしなくていいよ


…みんなはこのへんちゃんと理解してくれてるのかな?
わかりにくいところがあったら言ってね。
説明しなおすからね。
0802nobodyさん03/03/19 15:12ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (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 "アルファベット大文字以外の文字が含まれている"; }

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

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

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

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

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

うん、そうだね
まあ実用的なスクリプト作れるぐらいになったら終了、かな
0808nobodyさん03/03/19 15:13ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 正規表現 (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 とかもあるけど、それはそのとき説明するね。
0809nobodyさん03/03/19 15:13ID:???
一行抜けちゃった…

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

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

0812nobodyさん03/03/19 15:14ID:???
片付けないと炬燵出せません(T-T)
0813nobodyさん03/03/19 15:14ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 配列操作
 (ニ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

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

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

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

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

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

open ★, ◆
close ★

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

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

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

print "$test";

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

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

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

open ★, "> test.txt";

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

print ★ "test";

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

行数が入らないから続くよ
0822nobodyさん03/03/19 15:16ID:???
-[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;
----------------------------------------------------------------

ちゃんと動かしてみてね。
今回はここで終わりだよ。
0823nobodyさん03/03/19 15:16ID:???
たい焼きアイス…
あるなら食べてみたいかも

うん、ありがとうね
0824nobodyさん03/03/19 15:16ID:???
たい焼きアイスはマジであるよ。
数年前CMやってたの覚えてるし、多分うちの近所のスーパーに行けばまだ売ってると思う。

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

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

-[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;
----------------------------------------------------------------

そうなんだ、じゃあボクも近くのスーパーに行って探してみるよ
ありがとうね
0826nobodyさん03/03/19 15:16ID:???
この教室は解り易いよ〜。

楽しみに見てますです。

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


コンビニでたいやきアイスは発見できませんでした・・・残念です。
0827nobodyさん03/03/19 15:16ID:???
今日も頑張ってね。
0828nobodyさん03/03/19 15:16ID:???
昨日の教室はなかったのか?
0829nobodyさん03/03/19 15:17ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 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 "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。

この話を応用して次回にもっていくから、絶対に使えるようにしておいてね。
0830nobodyさん03/03/19 15:17ID:???
わかりやすい…?
そう、かな…?
ありがとね

うん、頑張るよ

1日1つ頑張りたいけど、無理な日もあってごめんね
0831nobodyさん03/03/19 15:17ID:???
.txtで今までの授業全部保存してるよ!

すっごく楽しみに見てるよ、これからも頑張ってね。
0832nobodyさん03/03/19 15:17ID:???
私も楽しみにしているので、無理せず続けて下さいね。
0833nobodyさん03/03/19 15:17ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイル入出力 (3)
 (ニE(#つo⊂#)

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

open IN, "test.txt";

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

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

close IN;

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

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

ってやると表示されるよ。
じゃあ次回は、ファイルの読み書きもわかったし、
ユーザーが何か入力したのを受け取って結果を表示する、
ってことを勉強してみようね。
0834nobodyさん03/03/19 15:17ID:???
ただの趣味の延長だから、変なところがあるかもしれないけど…
気に入ってくれてうれしいよ、ありがとうね。
0835nobodyさん03/03/19 15:18ID:???
※注意

最初にも言ったけど、ここの教室でやっていることは、
【わかりやすくするために多少強引な説明をしている】ところがあるよ。
基本なんだけど、【わかりにくいし使われもしないから省いている】ところも
たくさんあるよ。他のサイトとか見てると、戸惑うことも多いとおもうけど、
混同させないように注意してね。
0836nobodyさん03/03/19 15:18ID:???
そ〜なんだ、解りました!
0837nobodyさん03/03/19 15:18ID:???
すごいね

メルマガとか出してみたら?
0838nobodyさん03/03/19 15:18ID:???
うぐぅage
0839nobodyさん03/03/19 15:18ID:???
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
0840nobodyさん03/03/19 15:18ID:???
まだやってんの?ヲタドモ
0841nobodyさん03/03/19 15:19ID:???
カエレ
0842nobodyさん03/03/19 15:19ID:???
妄想族
0843nobodyさん03/03/19 15:19ID:???
       ∬
(´・ω・)っ旦 <マターリ
0844nobodyさん03/03/19 15:19ID:???
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< このスレきもい♪
 (     つ  \______
 (_○___)
0845nobodyさん03/03/19 15:19ID:???
煽りは放置の方向でマターリと
0846nobodyさん03/03/19 15:19ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < フォームデーターの受けとり
 (ニ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の世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。

#投稿が遅れてごめんね
0847nobodyさん03/03/19 15:20ID:???
うんうん、よろしくね

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

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

うんうん、マターリしようね
0848nobodyさん03/03/19 15:20ID:???
メールアドレス作ってみたよ
内容についての質問とか要望があったらメールしてくれてもいいよ

なるべく返信はしたいけど、忙しくて手が回らなかったりしたらごめんね。
0849nobodyさん03/03/19 15:20ID:???
いつもここ見ながら新しいアイディアを模索してるよ。

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


メルマガいいね!
0850nobodyさん03/03/19 15:20ID:???
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。
気に入らなければ放置してくれれば良いだけなのに…。
0851nobodyさん03/03/19 15:20ID:???
なるほど
こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
0852nobodyさん03/03/19 15:20ID:???
cgi-lib.plって何?
マジで使ったこと無いけど、何するもんなの?
てか必要なの?
0853nobodyさん03/03/19 15:20ID:???
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、
わざわざ鯖に入れている鬱、、、
0854nobodyさん03/03/19 15:21ID:???
あゆたん、サイトがあったんだね。
今まで知らなかったよ。(うぐぅ
0855nobodyさん03/03/19 15:21ID:???
-[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;
----------------------------------------------------------------
0856nobodyさん03/03/19 15:21ID:???
↑注意
簡易掲示板のソースだよ。
同じフォルダに、 cgi-lib.pl をいれてね。

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

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

フォームからデーターを送られてきたのを、CGI側で取得する機能があるよ。
他にもいくつか機能があるけど、代表的なのはこれだね。
0857nobodyさん03/03/19 15:21ID:???
今日うぐぅタンのページ見たよ、メアドの時に気づけなかった自分が寒いです・・・。


cgi-lib.plって便利そうだね。
もうちっと詳しく知りたいのでぐぐってきます。
0858nobodyさん03/03/19 15:21ID:???
ごめん、レスぬけてたね。。

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

わぁ、ありがとう!
まあ、 cgi-lib.pl は便利なことは便利なんだけど、
ちょっと実行したときの効率があまりよくないんだよね。
また今度、 cgi-lib.pl なしで取得する方法を勉強するね。
0859nobodyさん03/03/19 15:21ID:???
うぐぅ。

今日タイヤキアイス食った、うまかった。
0860nobodyさん03/03/19 15:21ID:???
社団法人日本外交協会(外務省の外郭団体、会長/綿貫民輔衆議院議長)が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
0861nobodyさん03/03/19 15:22ID:???
うは、レスが早い! なんか嬉しい(うぐっ

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


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



次回の授業を楽しみにしてます!
0862nobodyさん03/03/19 15:22ID:???
具体的にどう効率があまりよくない?
0863nobodyさん03/03/19 15:22ID:???
汎用的って事でしょう。
0864nobodyさん03/03/19 15:22ID:???
cgi-lib.plではなくCGI.pmを使え、という意味だったのだが。

0865nobodyさん03/03/19 15:22ID:???
CGI.pmって207k、、、。
そんなもん、コンパイルしてメモリにロードされるかとおもうと
とうてい、使う気にはなれんな。
0866nobodyさん03/03/19 15:22ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 掲示板 (2)
 (ニE(#つo⊂#)

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

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

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

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

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

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

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

次回は、新しく置換演算子を勉強して、いろいろなことをやってみるね。
0867nobodyさん03/03/19 15:23ID:???
レスが早いのは運だよ

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

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

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

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

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

滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
0871nobodyさん03/03/19 15:23ID:???
授業まだ〜?
0872nobodyさん03/03/19 15:23ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 置換演算子
 (ニ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 のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
0873nobodyさん03/03/19 15:24ID:???
うん
そういうこともあるよ

遅れちゃってごめんね
0874nobodyさん03/03/19 15:24ID:???
やっと正規表現まで来たね。
個人的にtrがすごく知りたいよ、まだいまいち理解してないんだよね。(恥
でも正規表現そのものが便利で難しいみたいだし、まだまだ勉強だね。

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

● =~ s#◆#★#g;

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

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

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

クォートのエスケープは他の言語でもよく使われるから、
覚えておいて損はないけど。
0880nobodyさん03/03/19 15:25ID:???
>pearさん
こんど♪のスクリプトも改良してほしいですぅ
0881nobodyさん03/03/19 15:25ID:???
ここにも出たか、粘着リア厨が!
さっさと糞してねれ!!
削除依頼出しとけよ!
0882nobodyさん03/03/19 15:25ID:???
=粘着
0883nobodyさん03/03/19 15:25ID:???
>>335=尾瀬原必死だな
まああんな穴だらけのクリプト晒されりゃいい恥さらしだから無理もないか(藁
0884nobodyさん03/03/19 15:25ID:???
正規表現のコンストラクタ、qr//も忘れずにな
0885nobodyさん03/03/19 15:26ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 展開とクオート風演算子
 (ニE(#つo⊂#)

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

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

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

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

続くよ。
0886nobodyさん03/03/19 15:26ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < クオート風演算子
 (ニE(#つo⊂#)

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

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

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

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

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

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

これらは全部同じことを表しているよ。
それにしても、ボクはこの授業の内容は全部テキストファイルにしてるんだけど、
→ この行でちょうど1000行に達してしまうんだよね…。
ボク、よくこんなに書いたなあ…
0887nobodyさん03/03/19 15:26ID:???
さんが上手く説明してくれてるね。
ボクにはこれ以上うまく説明はできないかな

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

うぐぅタン
だんだん難しくなってきたよ・・・。
まだ何とか付いていけてるから、次もよろしく〜
0890nobodyさん03/03/19 15:26ID:???
334トリップ忘れた・・・(汗
0891nobodyさん03/03/19 15:26ID:???
このすれ く さ い
0892nobodyさん03/03/19 15:27ID:???
おまえが近づかないようにするためだよ。
0893nobodyさん03/03/19 15:27ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (1)
 (ニE(#つo⊂#)

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

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

sub abc{
$x ++;
}

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

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

サブルーチンはとっても重要で便利だから、必ずマスターしてね。
0894nobodyさん03/03/19 15:27ID:???
うん、そうしてね。
わかってくれてうれしいよ

だんだん難しくなっていくね
わからないことがあったら気軽に聞いてね。
0895nobodyさん03/03/19 15:27ID:???
ありがと、
とりあえず今のところ大丈夫だよ。

次は何が出てくるのか楽しみです。
0896nobodyさん03/03/19 15:27ID:???
cgi-lib.plを使わないの簡易掲示板の作り方を教えて欲しいでつ。
0897nobodyさん03/03/19 15:27ID:???
待て、一番重要なサブルーチンの説明がよりによって引数無し、グローバル変数操作かよ。
常識的なサンプルを提示できないなら、頼むから何もしないでくれ。はっきりいって迷惑。
0898nobodyさん03/03/19 15:27ID:???
(1)って書いてるじゃねーか(2)があるんだろ
おとなしく待てよ行数規制があるんだから
0899nobodyさん03/03/19 15:28ID:???
(2)はどこじゃヴぉけぇ!!!!!
0900nobodyさん03/03/19 15:28ID:???
sub hogehoge {
 my %param = @_;

#何か

 return ...;
}
0901nobodyさん03/03/19 15:28ID:???
>これは、変数 $x に 1 を足す、サブルーチンだね。

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

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

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

よく頭に叩き込んでおけ
0902nobodyさん03/03/19 15:28ID:???
ゼロ文字幅
^ =>最初
$ =>最後

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

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

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

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

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

綾波レイのWEB制作管理教えますれ
http://pc3.2ch.net/test/read.cgi/hp/1023741627/l50
0905nobodyさん03/03/19 15:29ID:???
漏れは普段平気でグローバル変数操作してるが。
use strictなんてきらいだよー。
0906nobodyさん03/03/19 15:29ID:???
分かったから屑は死ね。
0907nobodyさん03/03/19 15:29ID:???
月宮あゆのPHP教室もキボン!。
0908nobodyさん03/03/19 15:29ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (2) 返り値
 (ニE(#つo⊂#)

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

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

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

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

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

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

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

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

return @xxx;
@xxx = &xxx;

みたいなこともできるよ。
0909nobodyさん03/03/19 15:29ID:???
もうすこし先で勉強するからもうちょっとまってね。

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

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

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

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

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

同じ意味だと思うよ。
0912nobodyさん03/03/19 15:30ID:???
ありがと。戻り値でも通じるんだよね?
よかった、前から気になっていたんだ。
0913nobodyさん03/03/19 15:30ID:???
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
0914nobodyさん03/03/19 15:30ID:???
くさい
0915nobodyさん03/03/19 15:30ID:???
すいません、教えて下さい
foreach
これってフォーイーチ?
フォーリーチですか?
気になって仕方ないです…
お願いします。
0916nobodyさん03/03/19 15:30ID:???
for eachだから、そのように。
0917nobodyさん03/03/19 15:31ID:???
f or each
0918nobodyさん03/03/19 15:31ID:???
それはあんまりです(笑
0919nobodyさん03/03/19 15:31ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (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"; }
0920nobodyさん03/03/19 15:31ID:???
うん、同じだね

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

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

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

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

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

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

0929nobodyさん03/03/19 15:33ID:???
Perlのクラスは何であんなにヘンテコですか?
0930nobodyさん03/03/19 15:33ID:???
あんなにってどんなに?
0931nobodyさん03/03/19 15:33ID:???

睾丸無知
0932nobodyさん03/03/19 15:33ID:???
は睾丸ですか?
0933nobodyさん03/03/19 15:33ID:???
あゆタンはやく続きおせーて
0934nobodyさん03/03/19 15:33ID:???
しぼーん
0935nobodyさん03/03/19 15:33ID:???
(´・ω・`)ショボーン
0936nobodyさん03/03/19 15:33ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < サブルーチン (4) 引数
 (ニE(#つo⊂#)

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

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

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

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

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

と同義だよ。

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

#投稿が遅れてごめんね。
#遅れてもdat落ちや削除されない限り途中で放棄することはないからね。。
0937nobodyさん03/03/19 15:34ID:???
そうなんだ‥
知らなかった
ちょっと恥ずかしいな

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

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

遅れてごめんね。
0938nobodyさん03/03/19 15:34ID:???
キタキタキター
0939nobodyさん03/03/19 15:34ID:???



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


0940nobodyさん03/03/19 15:34ID:???
このスレほんと勉強になりました。
で、PHPの勉強にすることにしたので、
おれもPHP教室を希望します。
ちょっとづつでいいのでお願いしたいです。
0941nobodyさん03/03/19 15:34ID:???
いまさらPerl勉強しても需要も無い仕事無い
0942nobodyさん03/03/19 15:34ID:???
確かに今さらPerlっつってもね。
でも、月宮あゆ君はよくがんばってると思うよ。
今後もがんばってもらいたいね。Perlで移行!!。
0943nobodyさん03/03/19 15:35ID:???
perl今勉強中なんだが需要無いのか・・・
いや、なにか役立つでしょ。うん。

それとも先にcかphpを勉強した方が良いのか・・・?
0944nobodyさん03/03/19 15:35ID:???
レスどもです。
Perlは勉強していきます。役には立ちますよね。

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

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

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

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

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

次回は、環境変数について勉強するね。
0947nobodyさん03/03/19 15:36ID:???
うん、遅くなってごめんね

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

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

elsif 、とかPerl以外にみたことないよ。。
0948nobodyさん03/03/19 15:36ID:???
俺の鯖、CGI使えんのだが…お奨めはあるかね。
0949nobodyさん03/03/19 15:36ID:???
Python だと elif
PHP では、 elseif, else if
Perl で、無理に独自のスタイルに馴染まなくても
C ライクなプログラミングも出来るよ。
0950nobodyさん03/03/19 15:36ID:???
ソースのHTMLが解釈されて見にくいぽ。。。
0951nobodyさん03/03/19 15:37ID:???
メリークリスマス

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

独自スタイルを使わずしてPerlは動くのか?
C知らずしてCライクは無理だろ。もうちと考えてかけよ。
0954nobodyさん03/03/19 15:37ID:???
(´・ω・`)
0955nobodyさん03/03/19 15:37ID:???
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
0956nobodyさん03/03/19 15:37ID:???
ヒキコモリヲタのくせに生意気だな。
0957nobodyさん03/03/19 15:38ID:???
オマエモナー
0958nobodyさん03/03/19 15:38ID:???
elsifじゃなかったっけか?
0959nobodyさん03/03/19 15:38ID:???
Pythonが?
0960nobodyさん03/03/19 15:38ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (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} : そのページへのリンク元アドレスが入ってるよ。

こんな感じかな。
次回は他の環境変数と、スペースがあまったら実用例を書いてみるね。
0961nobodyさん03/03/19 15:38ID:???
あけましておめでとう、今年もよろしくね

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

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

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

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

見てくれてたのかな、ありがとうね
これからできるだけ顔を出したいと思ってるんだけどね
最近いそがしくて・・
0962nobodyさん03/03/19 15:38ID:???
あけおめ、ことよろ、ガンガレ
0963nobodyさん03/03/19 15:39ID:???
あゆタン
0964nobodyさん03/03/19 15:39ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
0965nobodyさん03/03/19 15:39ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (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 関数も使えないサーバーもあるらしいよ。。
  こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。
  わからないことがあったら、サーバーの管理人さんに聞いてね。
0966nobodyさん03/03/19 15:39ID:???
おめでとう、今年もよろしくね。

ん?なに?

Janeで読んだら「ここ壊れてます」、って言われる
なんでだろう
0967nobodyさん03/03/19 15:39ID:???
取得するときになんか障害が起きたから。
0968nobodyさん03/03/19 15:39ID:???
誕生日おめでとう>あゆあゆ
0969nobodyさん03/03/19 15:40ID:???
(´Д⊂ヽ・゚。 ウワァァァァアァァン あゆあゆ〜
0970nobodyさん03/03/19 15:40ID:???
???
0971nobodyさん03/03/19 15:40ID:???
そういや1月7日はあゆちゃんの誕生日だったっけ。
おめでと〜。

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

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

取りあえず次スレはWebProg総合スレにして欲しいっす。
初心者スレとかも良いかもね。
0973nobodyさん03/03/19 15:40ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < 環境変数 (3)
 (ニE(#つo⊂#)

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

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

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

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

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

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

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

でも、このままだと穴があるよ。
行数が入らないから次回にまわすね。
0974nobodyさん03/03/19 15:40ID:???
なぁ、データフォーマットの時点でなんか痛くない?
0975nobodyさん03/03/19 15:41ID:???
うーん・・・
できればsplitあたりを使って今回やりたかったんだけど
行数が入らないからフォーマットは次回まわしかな
0976nobodyさん03/03/19 15:41ID:???
俺はっす。
重要な語句が抜けてますた(*´Д`)
質問に「答える人達が」共有であゆコテを使おうってことを言いたかったんだ。
「◆XalkKQX1is」あゆ一人だけだと、負担がかかるんじゃないかと思ったから。
気の回しすぎだったらごめん。
軽い気持ちで吊ってくるっす。
0977nobodyさん03/03/19 15:41ID:???
ィ`
0978nobodyさん03/03/19 15:41ID:???
それなら、AYUAYUっていうトリップ探して付けてみたら?
そっちの方が雰囲気出るかも
ただ、◆Xalk..も◆AYUAYU..も掲示板でpassを晒したら、
関係ない奴が偽物として入ってくると言う痛い罠
passの配布方法はどうするの?
0979nobodyさん03/03/19 15:42ID:???
パスワード パスと呼ぶ奴 厨房さ 
0980nobodyさん03/03/19 15:42ID:???
password path
0981nobodyさん03/03/19 15:42ID:???
そのためわざわざ英字で書いたんだけど....
自分ダメダメっすね(^.^;
0982nobodyさん03/03/19 15:42ID:???
共通トリップ付けるのに偽物がどうこうとか言うなら
いっそトリップ付けなきゃ(ry

もしくはID表示させれば(ry
0983nobodyさん03/03/19 15:43ID:???
とりあえず、あゆが来るまで保守
0984nobodyさん03/03/19 15:43ID:???
(^^)
0985nobodyさん03/03/19 15:43ID:???
あゆあゆ.com.うぐぅ・・・。(^−^)
0986nobodyさん03/03/19 15:43ID:???
あゆage
0987nobodyさん03/03/19 15:43ID:???
COBOLってどうなんすか、、、
いまどき(仕事以外で)使ってる人いるんすかねえ、、、
0988nobodyさん03/03/19 15:43ID:???
全部読んだが全く知識のない自分には当然全く分からない
電2>基礎から丁寧に説明してくれるので非常に分かりやすい
0989nobodyさん03/03/19 15:44ID:???
電2に載るのはうれしいけど、肝心のあゆあゆが降臨してくれないからなぁ
降臨きぼーん
0990nobodyさん03/03/19 15:44ID:???
ヲタドモが騒いでるな
電2ってなによ
0991nobodyさん03/03/19 15:44ID:???
電波2ちゃんねる
0992nobodyさん03/03/19 15:45ID:???
1は食い逃げの常習犯なので逮捕します
0993nobodyさん03/03/19 15:45ID:???
通りすがりのたい焼き屋さんが住むスレはここですか?
0994nobodyさん03/03/19 15:45ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ログファイル (1)
 (ニE(#つo⊂#)

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

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

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

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

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

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

っていう形式でやってみることにするね。
0995nobodyさん03/03/19 15:45ID:???
うーん・・
ボクは別にそれでもいいけど
結構大変な仕事を継続してやってくれる人はいるかな…?
いるならボクは大歓迎だよ

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

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

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

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

遅くなってごめんね

スレ違いだよっ!
0996nobodyさん03/03/19 15:46ID:???
あゆあゆ降臨
キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
俺はスローペースでもOK
てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
0997nobodyさん03/03/19 15:46ID:???
月宮あゆの中の人も大変だな。
0998nobodyさん03/03/19 15:46ID:???
    _ _
  〃┏━━
  ( )   ( )
  (.〆⌒ヽ )
  (∴゚ρ゚∴) < いないよ  ( £ £ )
  ( £ゑ££ )
  (££ゑ£)
  |. ノノソハ)))
(\リリ ´ー`)リ
 (ニE(#つo⊂#)
0999nobodyさん03/03/19 15:46ID:???
                        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:46ID:???
月宮あゆ ◆XalkKQX1is つまらんぞ。
シロウトがでたらめばかり書くな。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。