1 :
月宮あゆ :
02/02/19 14:34 ID:??? _ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
おー!3げと。
4なのかよ!!Part.4だし。なにいってんだ。
まず自己紹介きぼん
こっちはどうしたよ?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
アフォ
>1 >8 なんかそういう人形が大阪の食い物屋の店頭にあるよな。
良スレの悪寒!!
CGIってなんですか?なんかあちこちでCGIといえばperlとかCだとか言われてますけど 何の事かさっぱりわかりません。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < COMMON GATEWAY INTERFACE ((ニE/⌒ヾ∞"ヽ Httpサーバとプログラムを繋ぐためのインターフェース規格(?) (こ) ∞ |こ) CGIの条件とは | ∞,| ・そのサーバで実行できる形式である。 | ∞,| ・標準入力/出力を扱える。 | ∞,| ・環境変数を取得できる。 | ∞,| なんだよ。 | ∞,| | ∞,| これさえ満たしていれば言語は問われないんだ。 | ∞,| テキスト処理が得意なPerl君と高速で使える人が多いC君が | ∞,| 主に使われてるよ。 | ∞,| | ∞,| もちろん、PascalやLISP(?)、RUBYなどもOK。 | ∞,| WIndowsNTがサーバならVBもつかえるんだよ。うぐぅ。 | ∞,| \____________ | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
で、できる
上手な食い逃げの方法教えてください。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 逃げる直前まで、「お金を払うよオーラ」を出すんだよ。 ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
>16 一行レスの時は胴体短くして下さい。 容量の無駄ですし。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 了解です。 ((ニE/⌒ヾ∞"ヽ \____________  ̄し'し'  ̄
>18 あんた、極端だな(笑)
おれにはウドちゃんがコスプレしてるようにしか見えない
>>13 す、すげぇ・・・
マトモ過ぎるレスが返ってきた・・
22 :
あゆあゆ ◆AYU.J0rE :02/02/20 09:18 ID:1Y5hFUx3
うぐぅ。もう学校の時間だよう。 どこに通ってるかって?秘密だよ♪ あゆがわかる簡単な質問なら答えるよ。
うぐぅ。一人称は「ボク」だね。失敗失敗。
あゆ萌えJAPUさんはキモいですか?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 何でも聞くべし。 ((ニE/⌒ヾ∞"ヽ \____________  ̄し'し'  ̄
27 :
名無しさん@お腹いっぱい。 :02/02/20 22:43 ID:jTfqjt4Z
{print;shift;{}{}shift;shift;map @hoge;white(-1){shift;shift;}}
うぐぅ。
>27 whiteってどんな関数だよ。
31 :
名無しさん@お腹いっぱい。 :02/02/21 09:51 ID:RO5/QDf2
>>30 ぐは、whileじゃなかった・・・。無限ループ発言撤回。
32 :
名無しさん@お腹いっぱい。 :02/02/21 17:22 ID:piBirvYG
ヲタPGは市ね
うぐぅ。
34 :
606 :02/02/23 01:12 ID:???
35 :
名無しさん@お腹いっぱい。 :02/02/24 18:28 ID:RsG30jwz
サーバーサイドのエロゲやりたい
Cをとっても意識したつくりと思われるperlですが、 どうしてelsif,last,redoなんですか
>>36 _ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < パクったんじゃなくて意識しただけだからだよ。
((ニE/⌒ヾ∞"ヽ 自分がこっちの方がいいと思ったら変更すればいい。
(こ) ∞ |こ) Perlは効率を優先した言語だからね。
く__∞,ノ else ifとするより2文字稼げる?
し' し' 多分コンパイルの時点で最適化されるのかな?
\____________
Perlで記述したCGIの、状況に応じた各種テスト方法の オススメを一通り教えてホスイ マヂで (逆でもOK、 :このテスト方法はこういうときに便利) モジュールいろいろ豊富なのはイイんですが、 オレみたいなヘボーンPGはどれを選んで良いのか、 上手い答えがなかなか出せませんので、参考にさせてください
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 基本だけどテストケースをしっかり作ってホワイトボックステスト。 ((ニE/⌒ヾ∞"ヽ 職業プログラマじゃないからあんまり詳しくないよ。うぐぅ。 (こ) ∞ |こ) く__∞,ノ し' し' \____________
42 :
sage :02/02/26 01:58 ID:whPHUYwK
CでCGI組みたいんだけど、なんか参考になる本かページないですか? 主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?
うぐぅ、名前とアドレス欄間違えた‥‥アフォだw
44 :
代理 :02/02/26 02:21 ID:???
45 :
36 :02/02/26 03:56 ID:???
>>37 ありがとうございます。
たしかにelsifもlastもredoも文字数は少ないですね
>>42 _ _
〃┏━━ 、
>− )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 変なこと言うけどPerl/CGIの入門書。
((ニE/⌒ヾ∞"ヽ 上にも書いたけどCGIはある条件さえ満たせば言語は問われないんだ。
(こ) ∞ |こ) 無理してCでの入門書を探すより腐るほど出てる詳しいPerlでの本の方が参考になるよ。
く__∞,ノ 上にも書いたけどPerlはCとかなり似ているから結構読めるよ。
し' し'
暇だから簡単にまとめておくね。
POSTの場合、データは標準入力に入る。
GETの場合、データは環境変数QUERY_STRINGに入る。
リモートホストなどのステータスは環境変数に入る。
出力は標準出力に対して行う。
出力の前にprintf("CONTENT-TYPE: text/html\r\nr\r\n");を忘れないでね。
うぐぅ。あんまり祐一の役にたてなかった気がするよぉ。
47 :
yani ◆NSktNEdQ :02/02/26 08:14 ID:eIw9sfNX
>主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ? (1) CでCGIを組めるサーバは一般人用にはあまりなく、従って売れ行きが期待できない (2) CGIは結局引数というか、動作条件を環境変数から得てテキスト(HTML)を吐く ある意味ごく普通のプログラムが基本である あたりかな。
48 :
yani ◆NSktNEdQ :02/02/26 08:15 ID:eIw9sfNX
>>42 追加
_ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < Perl >>>>>>>>>>>>>>>>>>> Cだからだよ。
((ニE/⌒ヾ∞"ヽ 可変長のデータ扱うことが多かったり文字列を分割することもしばしば。
(こ) ∞ |こ) 言語仕様は妙だけどテキスト処理に強いPerlの方が簡単にかけるんだ。
く__∞,ノ けど、その代償は大きくて処理速度とシステム負荷は大きい。
し' し' それで、高速かつふざけた量のデータを処理する場合にはやむなくCを使うんだ。多分。
それと、Cがコンパイル言語だと言うことも問題だよ。
CでCGIを組んだ場合、サーバで動くコードにコンパイルしなくちゃいけないんだ。
(たまに.cを.cgiに変えたのに動きません。ってかわいい初心者がいるね。)
でも、無料または一般用プロバイダが提供するサーバでGCC(CC Cコンパイラ)を
提供しているところはtok2しかないよ。うぐぅ。
そもそもtelnetが使えるところも少ないんだよ。
ローカルでサーバと同じOSを使えばいいんだけどスマートじゃないよね。
(クロスコンパイルという手もある。)
その点Perlはインタプリタ(正確には違う。)。ソース互換は大抵の場合保証されているからお手軽なんだ。
C/CGIの教科書を書こうとすると、
「サーバ上でgccを使うってどうやるんですか?」
って質問が殺到するから書きにくいのかもね。
50 :
42 :02/02/26 12:02 ID:???
色々と回答ありがとうございました。
標準入力/出力と環境変数の取得方法(
>>44 のページにしっかりあった)さえ知ってれば
普通に組めそうれすね(当方、Perlはそこそこ書けるのでした)
本がないのは結局、CのCGIが一般向けじゃないってことですかね。
Perlが正確にはインタプリタじゃないってのはどいうこと?
_ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < ソースは忘れたけど、スクリプト実行時にコンパイルしてその後に実行してるんだって。
((ニE/⌒ヾ∞"ヽ 怖い人たちにたたかれたらやだから思わせぶりな書き方にしちゃったよぉ。
(こ) ∞ |こ) ごめんなさい。
く__∞,ノ
>>53 し' し' 案外あるんだね。gcc OKのところ。
たしかにかまやつに似ているなぁ(笑)
56 :
36 :02/02/26 22:12 ID:???
>>54 正規表現の最後のoってあるじゃん。
m/foo/bar/o <-これ
これとか、コンパイルする部分とその場で実行する部分があることを感じさせてくれるよね。
57 :
51 :02/02/26 22:25 ID:???
なるほど、一つ賢くなったよ!
____ /∵∴∵∴\ /∵∴∵∴∵∴\ /∵∴<・>∴∴.<・>| |∵∵∵/ ○\∵| |∵∵ /三 | 三| | / ̄ ̄ ̄ ̄ |∵∵ | __|__ | |< うるせー馬鹿! \∵ | === .|/ \____ \|___/ ______.ノ (⌒) //::::::::|-、 ,-/::::::ノ ~.レ-r┐ / /:::::::::::| /:::::ノ__ | .| ト、 | /:::::::::::::::| 〈 ̄ `-Lλ_レ′ レ::::::::::::::::::|/:
>>58 _ _
〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ TーT リ < うぐぅ。
((ニE/⌒ヾ∞"ヽ
(こ) ∞ |こ)
く__∞,ノ
し' し'
60 :
名無しさん@お腹いっぱい。 :02/03/01 20:06 ID:WMKcIrtF
-‐- 、 ,' /二二 ヽ/⌒l ___________ i イノノノ))))〉=ヲ <以後これ採用 ! (l| i] i] || / | (\ ノノノlゝ"フノ!! / (∃/ヽ ^||iii》, / ( ゝ 》⌒)中 | [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`|| || ||ニ:Iニ/_7ニヒコ || || ||| ||/:::::/ ||\:::ヽ || || ||| |に~⌒).|| (⌒”) ||
61 :
かまやつ :02/03/01 21:37 ID:???
_ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ <
>>60 ((ニE/⌒ヾ∞"ヽ \却下。うぐぅ。
(こ) ∞ |こ)
く__∞,ノ
し' し'
>>56 それは「変数展開は最初に実行したときのみ」って意味で、
コンパイル時に評価されるわけじゃないでしょ。
コンパイル時に実行/評価されるのはBEGINブロックね。
for (0 .. 9){
BEGIN{ print "begin\n" }
print "loop: $_\n";
}
FORTRANやCOBOLでもCGIって組めますか?
>>63 _ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 却下されちゃったから引き続きボクだよぉ。
((ニE/⌒ヾ∞"ヽ はっきり言ってFORTRANもCOBOLも使ったこと無いよ〜。
(こ) ∞ |こ) 上の方で書いたけど、
く__∞,ノ
し' し' ・サーバで動く形式(ファイルを叩くだけで実行出来ること。 RUNの必要なBASICなどは不可。)
・標準入出力が扱える。
・環境変数が扱える
この3点が可能ならCGIとして使えるよ。
でも、標準入出力や環境変数って言う概念のないOSではこの限りじゃないよ。
FORTRANなら何となく出来そうだよね。
65 :
$_ :02/03/02 11:42 ID:rGRXAcBK
期待age
66 :
nobodyさん :02/03/02 11:49 ID:zcjkO+os
packageってどういう時に使えばいいんですか? いまいちよくわからない・・・
>>65 #!/usr/local/bin/manko
/*このスクリプトは画期的な新言語「MANKO」を使用しています*/
%doutei = @;
@ key ->> .*
whitebase(%doutei){printrash "%doutei";}
/*最後の処理*/
lastescape;
sub manko{
$kekeke = 1;
hyperif($kekeke){print "ギコハハハ";}
}
__DEAD__
>>66 _ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 基本的にはネームスペースの分離だと思うよ。
((ニE/⌒ヾ∞"ヽ ネームスペースってわかるかな?名前空間とも書いてあるね。C++とかは。
(こ) ∞ |こ) 例えばtest.plをrequireするnamespace.plがあるとするよ。
く__∞,ノ test.plにはayuayu()っていうサブルーチンがあるとすると、
し' し' namespace.plではayuayu()と言うサブルーチンは定義出来ないんだ。
プログラムはプログラマがどっちのayuayu()を呼び出したいかわからないからね。
と、言うことは、人が作ったライブラリを使うときには細心の注意が必要。面倒だよぉ。
そこで登場するのがパッケージ。これはある名前群をグループ化出来るんだ。
例えば、ayuayu()がtsukimiyaと言うパッケージ内で宣言されたとすると、それはtsukimiya::ayuayu()
となって、何もないayuayu()とは区別されるんだ(何もないはMain::に属していることになるよ。たしか。)。
こうすれば、他のライブラリのことは全く気にせず名前を付けられるようになるよね。
もちろん、パッケージ名は他とだぶらないようにする必要があるけどね。
ところで、変数とサブルーチンをグループ化する機能ってどこかで見たことない?
そう、C++などのクラスだよ。
Perlのクラスはパッケージを使って実現されてるんだ。
でも、そのおかげでPerlのクラスはわかりにくい・・・って言うのがボクの私論だよ。
デフォルトパッケージはMainじゃなくmainな。 ついでにmainは省略できるので$::fooとか ::bar('arg')とかできる。 つーか知らないんなら調べてから書け。もしかして猫と同一人物か?
70 :
$_さん :02/03/02 17:09 ID:rGRXAcBK
大文字小文字で怒るなよ・・・重箱?
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|
>>69 | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
| うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!
∧ ∧ |/\_________
(,,゚Д゚)____.
(つ/~ ※ ※ \
/※ ※ ※ ※ \
>>70 Perlの話ですので非Perl使いは黙ってててください。
73 :
nobodyさん :02/03/04 01:22 ID:g+Jxs+YU
>68-69 なるほど・・・。 勉強になりました。 ありがとー。
>>71 突っかかりたい年頃なんだよ
相手にするな
顔がののたんです
76 :
use Socket; :02/03/08 23:55 ID:7Mh5sc6B
良質スレあげ ちと質問なんだけど、SSIでPerlスクリプトを叩くとき、 スクリプト自体の絶対アドレスってわからんのかな? 環境変数にはHTMLのがはいってるし
$0 とかでわからなかったっけ?
$0 だとファイル名になってしまう・・・ やはりTelnetでPWDして調べるしかないのかの
$pwd=`/bin/pwd`;
>>76 もしコマンドが許されてなくて
>>80 が駄目なら Cwd.pm なんかが
ディレクトリを一個一個上がっていって調べてくれるらしいですが・・・
詳細は知らぬ。それと SSI は知らぬ。スマソ
こんなんでいいかな? my $path = ($ENV{SCRIPT_NAME} =~ /(.+\/)[^\/]+/)[0] . $ENV{_}; $path =~ s!/\./!/!g; print $path;
>>81 サンクスコ。うまくいったよ。というか標準ライブラリ覚えてなさ過ぎだな。
>>82 ,80
環境変数もコマンドも変な値返してくるサーバーだったのね。
どうでもいいけどあゆあゆどこいったのかな?
変な厨房が追い出したとか書いてあったけど
>42 オールラウンドプログラミングvol.3 C/C++300の技 技術評論社 ISBM4-7741-1312-3 1980+税 青緑っぽい本。 わかりやすい本だとは言わないけど、CでCGIをやる場合の サンプルコードとかが載ってるから、参考にする程度ならいいかも。
read.c だけ見たけど、 初期とずいぶん変わったねー
88 :
Linda³ ◆4xALiNDA :02/03/17 01:28 ID:Z8En8QVF
うぐぅ・・・祐一くんおどかさないでよ・・・
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < うーーーーーーーーーーぐぅぅぅぅぅ ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < うぐぅ、Perlってどこでダウンロードできるの? し' し'
>>91 _ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ;゚∀゚ リ < うぐぅ、ネタだけどありがとう
し' し'
japu逝ってヨシ
なんか最近顔が変わった?
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < うーーーーーーーーーーぐぅぅぅぅぅ ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
前の顔の方が良かったな。
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < ウグゥ━━━━━━(゚∀゚)━━━━━━ !!!!! ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
>>96 _ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ;゚∀゚ リ < うぐぅ、ボクは別人だよぅ
し' し'
月宮先生は、Perl歴何年ですか? 何冊Perlの本を持っていますか? Perl使えるようになるポイントは何ですか?
100 :
アゴ :02/03/26 07:38 ID:???
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < ケント・パイプカットとつくろう!PerlでCGI。これ一冊で十分。 ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
背中にヘリコプターのハネ付けてるのですか?
Perlを習うための心構えとは? どうぞ。
>>102 _ _
〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < あくまでこれは方言だと心得るべし。
((ニE/⌒ヾ∞"ヽ 気がついたら「ハッシュと正規表現無いと死ぬ」みたいなプログラマはダメだよ〜
(こ) ∞ |こ) \____________
く__∞,ノ
し' し'
でも便利なんだよな・・・。
105 :
Dream ★ :02/03/26 16:15 ID:???
ハッシュと正規表現無いと死ぬ〜
★が目に付くなー ★が チカチカイライラ・・・
俺もキャップ欲しい
てへ
うるせーバカ
白星なのに怒られたよあうあうあ〜
Perlを習得するには何が必要ですか?
Kentサマへの崇拝
>>111 _ _
〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < OSとPerl処理系とエディタ(うぐぅ、あたりまえだよ〜)。
((ニE/⌒ヾ∞"ヽ 後、参考書は一冊買っておいた方がいいよ〜。
(こ) ∞ |こ) すぐわかるPerlがおすすめ。
く__∞,ノ でも、オブジェクト指向とかパッケージには触れてないから注意。
し' し' CGIは書けてもここの話には付いていけないよ〜うぐぅ。
\____________
いよぅ!かまやつ! むっしゅむらむら
>111 Perl神の降臨を待つのみです。 さあ、祈るのです。
>>103 ヘリコプターをなぜつけているのですか?
118 :
nobodyさん :02/03/27 00:42 ID:fVOwp8nR
for($i=0;$i<50000;$i++){ &openfile($file); # openfile は $file を開いて @in に代入する関数 foreach(@in){ s/a//g; } } これでね、$file を10KB と 100KB のものにした場合、なぜか10KB のものの ほうが処理時間がかかっちゃうんだけどこの理由わかりる?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 今回は自分の発想を大切にしようと思い、掲示板とかの作り方に関する本は読んでないよ。ボク。 ((ニE/⌒ヾ∞"ヽ 唯一読んだのが「すぐわかる」。 (こ) ∞ |こ) 他の言語本と比べてもかなりいい本なので大推薦したの。 く__∞,ノ し' し' 正解。PerlでCGIというインターフェースに則ったプログラムを書くんだよ。 後、あゆ、ヘリコプターじゃないもん。 \____________
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ <後、ムッシュかまやつでもウド君でもないもん! ((ニE/⌒ヾ∞"ヽ (こ) ∞ |こ) く__∞,ノ し' し' \____________
|| || _|| 〃┏━━ 、 | ┃ メ | | ┃ | | | ┃ テ | | ┃ ル | | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´_ゝ` リ < ウグググググゥゥゥ.... ((ニE/⌒ヾ∞"ヽ \____________ (こ) † |こ) 《《く__∞,ノ |O| |O| |O| |O| |O| |O| |O| |O| |O| |O| し' し'
age
124 :
nobodyさん :02/03/28 05:42 ID:QmuV5sFD
>>118 10kbのファイルは1万行で100kbのファイルは1行とか?
125 :
nobodyさん :02/03/28 07:35 ID:UW9Ws4eZ
>>119 今朝の13話、話がよく分からなかったのですが。。
_ _ 〃┏━━ 、 | ノノソハ)))_ /リリ ´ー`)リ/\ うぐぅ /| ̄ ̄ ̄ ̄ ̄|\/ |愛媛みかん|/
ほれ、テンプレ \____ ______/ ∨ _______ _ ボコッ。 ____ 〃┏━━ 、 _γ⌒⌒ヽ、 ____. | ノノソハ)))ヾ \ノハ)ヽ)) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ___(\リリ;´Д`)リ#]つ)○);´Д`) < 痛いですぅ〜。 ___(ニE( #]つo"/ ⊂[||L[X⊂[||) \________ ___∠__∞__/ く7ココココヘゝ ___ し' (_f) (゚_(゚_)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
__ //´ ̄ ヽ / ̄ ̄ ̄ ̄ ̄ i ノリノ)))〉 | , '^ ーノl(l!゚ ヮ゚ノリ‐' ヽ < 嫌っ ノ , リノjjノ'(.II 中.II)jルjソi | ('"´ "^く 中| ノ \_____ ` じ'フ
133 :
nobodyさん :02/04/05 21:51 ID:x+hR6+xK
奇跡でみずほタンを何とかしてください
_ _ 〃┏━━ 、 | ノノソハ)))_ Perlじゃむりだよぉ /リリ ´ー`)リ/\ うぐぅ /| ̄ ̄ ̄ ̄ ̄|\/ |愛媛みかん|/
??
136 :
nobodyさん :02/04/18 21:20 ID:vObLTJgR
age
137 :
nobodyさん :02/04/18 21:43 ID:9hkDClnY
ペーペーなんですが、サルでもわかる参考書教えてください。
ありがとござました
141 :
nobodyさん :02/04/20 02:08 ID:ajIKEcTR
うぐぅさん、厨な質問をきいていただけますか?
143 :
nobodyさん :02/05/01 17:36 ID:9tGEKAi6
あげ
ほぜん
<html><head><title>KANONの魅力</title></head> <body>すべての始まりは秋子さん<br> <img src=Akiko.jpg><br>そして伝説が始まる… </body></html>
>>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
あゆがいねえー
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 帰ってきた ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
149 :
nobodyさん :02/06/24 22:05 ID:esiRtk+f
(=゚ω゚)ノぃょぅ
久しぶりに来てみた。
151 :
nobodyさん :02/06/25 15:57 ID:GD8HyrKF
152 :
FOR LOVERS :02/06/25 16:07 ID:y3UvfTKA
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html [email protected]
153 :
nobodyさん :02/06/25 17:55 ID:g4wy6DfA
perlのCGIにhttpさせるやり方教えてください。
154 :
hoge :02/06/25 19:13 ID:j0DYF6ca
>>153 use LWP::Simple;
or
use LWP::UserAgent;
155 :
nobodyさん :02/06/28 21:26 ID:XZlkpNpu
>>154 さん
ありがとうございます。まだ意味がわかりませんが
その言葉で検索かけてみます。
httpって何だろうと思ったが、httpを使った通信ですか。
懐かしいスレがあがってますな。うぐぅ。
158 :
nobodyさん :02/07/02 14:06 ID:bleSkaPh
月宮さーん がんばってね。
うにゅ
160 :
nobodyさん :02/07/23 10:43 ID:ghlElUX/
age
161 :
nobodyさん :02/07/25 02:10 ID:/52BoRCi
perlについての質問です。実行するとたとえばユーザー名、パスワードを送信してくれる プログラムを作りたいのですが、どのようなライブラリ、関数を使えばよいのでしょうか? キーワードだけでも教えてください、お願いします。
ネタスレに書くなよおめー。 それと質問が意味不明だ。
s
164 :
nobodyさん :02/08/10 08:00 ID:XeEMyPNM
asdkasp
えげぇ
さいならっきょ
167 :
nobodyさん :02/08/26 08:54 ID:Us+tWRjS
もう終わりですか?
>>161 メールなら sendmail で検索して調べる
パスワードをランダムで生成する
@letters = ("0" .. "9", "a" .. "z", "A" .. "Z");
srand;
$password = "";
until(length $password == 8){
$password .= $letters[rand ($#letters + 1)];
}
>>169 $password .= $letters[int(rand ($#letters + 1))];
psdfps
172 :
◆eCyy.... :02/09/29 16:06 ID:SRy9XARQ
test
173 :
◆aqiw.... :02/09/29 16:09 ID:SRy9XARQ
testestestestest
174 :
◆d7pJ.... :02/09/29 16:11 ID:SRy9XARQ
testing....
175 :
◆1D1g.... :02/09/29 16:21 ID:SRy9XARQ
unting style
176 :
◆a221.... :02/09/29 16:29 ID:SRy9XARQ
unching
177 :
◆zWhs.... :02/09/29 16:35 ID:SRy9XARQ
sexing
178 :
◆uE7i.... :02/09/29 16:36 ID:SRy9XARQ
homosexual
179 :
◆3dGH.... :02/09/29 17:00 ID:SRy9XARQ
SEX
180 :
◆HImu.... :02/09/29 17:03 ID:SRy9XARQ
sex-siyo-yo
181 :
◆8yWF.... :02/09/29 17:08 ID:SRy9XARQ
182 :
◆3nAmKeeA :02/09/29 17:47 ID:Tm1puShE
#gigigi8788
なんだこの厨房は。
こいつは一体何がしたいんだ。
-‐- 、 ,' /二二 ヽ/⌒l ___________ i イノノノ))))〉=ヲ < >118の答えがわかりません。 ! (l| i] i] || / | (\ ノノノlゝ"フノ!! / (∃/ヽ ^||iii》, / ( ゝ 》⌒)中 | [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`|| || ||ニ:Iニ/_7ニヒコ || || ||| ||/:::::/ ||\:::ヽ || || ||| |に~⌒).|| (⌒”) ||
ボクが乗っ取っちゃおうかな
187 :
>>186 :02/10/11 18:04 ID:yEGdgJzi
了承。
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ
(ニE(#つo⊂#)
乗っ取ることにしちゃったよ。
本当にゆっくりのペースでボクといっしょに勉強していこうね。
実はボクもまだまだ初心者なんだけどね。。
「こういうのはどうやるの?」っていうのは他のスレで聞いてね。
ボクがここで言ったことに対しての質問はここで聞いてくれていいよ。
WebProg板、だから、PerlでCGIを作るってことを前提に進めていこうね
質問があったら、このスレに書き込んでくれたら、
ボクに分かる範囲なら答えられるかもね
あ、最低限HTMLの知識は必要だからそのへんよろしくね。
あと、フリーのCGIでもいいから設置経験があったらいいね。
少しでも中をいじってみたことがあるっていうならなおいいね。
あと、わかりやすくするためなら、かなり強引な解釈で説明してる
ところもあるけど、とりあえずはあまり気にしないでね。
自分でCGIを作る、っていうのは、とても危険なことなんだ。
例えば、お金も持ってないのにたい焼きを買うくらい。
下手をすると、サーバーをダウンさせたりすることもできるから、
自分で作ったものはちゃんとテストして設置しないとダメだよ。
ttp://www.kent-web.com/www/ ここのページで、CGIをローカル(自分のパソコン)で動かす方法を
紹介してるから、参考にしてやってみてね。
じゃあ、今日の話はこのへんで終わるね。
おわ。久々に昔の感じだな。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <ヘッダとボディ (ニ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 っていうのは、「表示する」ってことだと、とりあえずは 思っててくれて大丈夫だよ。 またあとの方で、詳しく説明するからね。
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
できることなら Content-Type: text/html; charset=EUC-JP のように charset も出してあげませう。
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ <何か表示してみよう(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 細かい解説は次にしていくね。
>>192 ちょっとよく意味がわからないけど…
ちゃんと動くならそれでいいとおもうよ
>>193 文字コードの話はもうちょっと後で
お話ししようと思ってたんだけど…
たのしいのかヲタ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <何か表示してみよう(2:解説) (ニE(#つo⊂#) □ 文 1行を「文」って呼ぶよ。最後には、必ず ; をつけてね。 これは、英語の文の最後にピリオド . がついているような感じ。 文の最後にはつけるようにしないと動かないよ。 ボクもたまに書くの忘れてエラー起こしちゃうんだ。 □ #… # よりあとは、コメントになって、あってもなくても同じだよ。 HTMLの、 <!-- --> みたいな感じだね。 □ \n \n は改行を表すよ。PerlでCGIを作るときには、 出力する【HTMLソースが改行されるだけ】だから気をつけてね。 表示上、改行したいときは、 <br> を使わないといけないよ。 □ print "●" ● の部分に、表示したい文字を入れるよ。 ファイルハンドルっていうものに関係があるんだけど、もっと後でね。 □ exit 【スクリプト】を終了させるときに使うんだよ。 これがなくても最後までいったら自動で終了するけど、 構造が複雑になってきたら見にくいから書く習慣があった方がいいね。 これで君もPerlプログラマーになれたんだよ。 でもこんな文字を出すだけなんてこと、HTMLでやればいいよね。 次はあんまり面白くないけど、Perlだからできることを勉強するよ。
198 :
ヲタ :02/10/15 18:46 ID:???
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <変数、配列、連想配列(1:説明) (ニE(#つo⊂#) じゃあ今回は、変数、配列、連想配列のみっつを覚えようね。 今回は簡単だから説明だけ聞いてね。 次回は使い方を説明するよ。 変数…例えれば、メモ帳1枚に名前をつけたもの。 自由に書いたり、消したり、書き換えたりできるよ。 「スカラー」「スカラー変数」とかいうこともあるよ 「abcの紙」みたいに指定できるよ。 「abcの紙」って指定したいときは、 $abc って書けばいいよ。 配列…例えれば、名前をつけたメモ帳1冊。 0ページから始まって、何ページでも増やせるよ。 「リスト」とかいうこともあるよ。 「abcメモ帳の2ページめ」みたいな感じで指定するよ。 こんなふうに指定したいなら、 $abc[2] って書くといいよ。 連想配列…例えれば、名前がついたメモ帳1冊の紙1枚ずつに、 それぞれ名前違うがついたもの。 「ハッシュ」っていうこともあるよ。 「abcメモ帳のxyzのページ」みたいに指定するよ。 こんな感じなら、 $abc{xyz} って書くことができるよ。 次は簡単な例を見てみようね。
200だね
201 :
:02/10/17 03:03 ID:nUzJ4slF
何気に続いてるんですね。気にしてなかった…
ハイレベルな話題も希望
まだ、このスレあったのか
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <変数、配列、連想配列(2:実行例) (ニE(#つo⊂#) □ 変数への書き込み方 $abc = "うぐぅ"; こんな感じにすると、【変数】 $abc には、 「うぐぅ」という 【文字列】が書き込まれたことになるよ。 同じように、 $abc[0] = "月宮あゆ"; # 配列 $abc{def} = "水瀬名雪"; # ハッシュ みたいなこともできるよ。 □ 変数からの読み込み方 たとえば、 $abc の内容を表示したいっていうときは、 print "$abc"; ってかくとできるよ。 他にも方法はあるけど、とりあえずこれだけ覚えてるといいかな。 ここまでの説明なら、「こんなものが何の役に立つかわからない」と 思う人が多いと思うけど、【変数】がなかったら、何もできないよ。 じゃあ次からは実際に使用例を見ていこうね。
これくらいの初歩からやってくれた方が漏れにとってはいいよ。
ストーブはどう作るの?冬にかけて
>>206 漏れも同じ
sage進行でマターリとおながいします。>ALL
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ <時計を表示してみよう(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 詳しい解説は次にまとめてするね。
こんなきもい時計やだよ
同感。まあ、糞言語らしいといえばそうかな。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <時計を表示してみよう(2:解説) (ニE(#つo⊂#) 算術演算子(1:加法演算子) Line 5:カッコの中は、秒,分,時,日,月(※1),年(※2)でできてるよ。 localtime で、時間を変数に書き込むんだけど、 これは丸覚えでいいよ。また今度詳しく説明するね。 この例では、6個の変数にそれぞれ書き込んでるよ。 Line11:print の中には【変数】を書くこともできるよ。 その【変数に書き込まれてる文字や数値】を表示するよ。 ※注意 月は、実際の月より、1少なくなってるよ。 実際、表示に使うなら、1足して使ってね。 同じように、年は、西暦より1900少なくなってるよ。 【変数】を計算(この例なら月に1を、年に1900を足す)するには、 次のように書くだけで簡単にできるよ。 $mon ++; $year += 1900; ● ++ っていうのは、変数●に1を足すっていうことだね。 $mon += 1; と書いてもできるよ。 ● += ◆ で、変数●に、数値◆を足すっていうことだよ。 ぜひ年と月も表示できるように改造してみてね、答えは次回書くよ。
214 :
nobodyさん :02/10/19 13:03 ID:OUy8ZxhU
質問です。 foreach(split(/<>/,$line)){} は必要な部分を順に取り出しているのか、 それとも一度無名配列に入れるようなことをしているのか教えてください。
後者じゃ
>>215 しくしく。ありがとうございます。変数が大きいのですが、
substrは毎回先頭から数えているような感じがするのですが、
変数使用を少なくする場合これしかないのでしょうか。
index で'<>'をサーチ位置指定でやって、substr で部分取り出し
どうもありがとうございました。
#!/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; こうかね。
あゆあゆ以外が質問に答えるなよばか!
スレッド・ストッパーキタ━━━━(゚∀゚)━━━━!!!! ↓
222 :
nobodyさん :02/10/19 23:56 ID:8H09/WLZ
↑ごめん 222ゲトー
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <時計を表示してみよう(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; ---------------------------------------------------------------- 今回はもう行数がなくなっちゃったから終わりだけど、 次は曜日を表示してみようね。
↑トリップ間違えました
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <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 = "土";} == っていうのは、左辺と右辺が等しい、っていう意味だよ。 このへんを使って、曜日を出してみてね。答えは次回載せるよ。
#!/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;
$year/$mon/$day($you) - $hour:$min:$sec の方が綺麗だな。
#!/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;
#!/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;
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
#!/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;
>>232 perlのパスは俺の場合/usr/bin/perlなんだよ・・・。
エスケープ忘れてたし・・・。
でも""の中で()は一応エスケープされてると思うんだけど。
ちゃんと実行して検証しているし。
やっぱエスケープは礼儀ということか・・・。
だからまだ習ってない配列とか先に進むなっての(;´Д`)
_ _ 〃┏━━ 、 | ノノソハ))) / ̄ ̄ ̄ ̄ Λ_リリ ;´∀`)リ < うぐぅあげ♪ ( ⊂#~ ∞~~#⊃ \____ ( つ/_∞__|~ |(__)_) (__)_)
他で習ったよ
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ <曜日を表示
(ニE(#つo⊂#)
>>227 が答えだね。。
配列とか使ってやるのは、もっと先に応用例としてあげたいから、
勝手に応用を使わないでほしいな…
今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね…
ちょっと考えとくね
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <配列の扱い方 (ニ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] 曜日"; ってこんな感じで曜日が出るね。 行数がなくなったから簡潔でごめんね。 次回は、ひととおり計算ができる、算術演算子をやるよ。
補足しておくと、配列の全部は、 @ をつけて表すよ。 配列の中のひとつだけ、は、 @ じゃなくて $ をつけて、 [0] みたいな【添え字】をつけるよ ってことだね
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <算術演算子(2) (ニE(#つo⊂#) これぐらいはひととおり、全部覚えてね。 数学でおなじみの、計算ができる演算子だよ。 ● = ◆ + ★ 数値、◆と★を加算(足し算)した値を●に代入するよ。 ● = ◆ - ★ 数値、◆から★を減算(引き算)してその値を●に代入するよ。 ● = ◆ * ★ 数値、◆に★を乗算(掛け算)してその値を●に代入するよ。 ● = ◆ / ★ 数値、◆から★を除算(割り算)してその値を●に代入するよ。 ● = ◆ % ★ 数値、◆を★で割った、余りを●に代入するよ。 ◆と★は小数なら、小数点以下は切り捨てられて計算されるよ。 ● = ◆ ** ★ 数値、◆の★乗の値を●に代入するよ。 優先順位についてちょっと説明するね。 実際の数学と同じように、加算、減算は、後回しにして計算されるよ。 先に計算したいなら、 ( ) でくくってみてね。 じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
あゆた〜〜ん
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <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 は等しい ) ● != ◆ … ●と◆が数値として等しくない ● < ◆ … ●が◆より小さい ● > ◆ … ●が◆より大きい ● <= ◆ … ●が◆以下 ● >= ◆ … ●が◆以上
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < while / until / next / last (ニE(#つo⊂#) while / until っていうのは、どっちもループだよ。 じゃあまず、文法の説明をするね。 while ( ● ) { ◆ } until ( ● ) { ◆ } ● … 式 ( 後述参照 ) ◆ … 繰り返す処理 どちらの場合でも、● は、比較演算子を使った条件を指定するよ。 数値比較演算子じゃなくって、文字列比較演算子っていうのも あるんだけど、それは次くらいに詳しくみてみるよ。 while は、英語で、【〜の間】だね。 Perl でも、条件●が成立する間、◆を繰り返すことになるよ。 until は、英語で、【〜まで】だね。 ●が成立するまで(=●が成立しない間)、◆を繰り返すよ。 next / last は、ループを途中でやめたりするのに使うよ。 next は、現在のループを終了して、次のループに入る、っていうこと、 last は、全てのループからただちに抜け出す、っていうことだよ。 じゃあ次回は実例を見てみようね。
ここまでは普通についていけるな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ループと文字列比較演算子 (ニE(#つo⊂#) こんなことをすることは少ないと思うけど、例を挙げるね。 $hoge = "aaa"; until($hoge eq "aaaaaaaaaa"){ $hoge = "a$hoge"; } この例では、変数 $hoge の前に、次々に "a" を追加していってるね。 "a" が10個並んだところでループ終了だね。 どんな時に、条件に一致するか (真偽) については、次回説明するね。 これも条件で使われるよ。数値として比較する数値比較演算子とは違って、 文字列として比較する、文字列比較演算子っていう名前があるよ。 ● eq ◆ … ●と◆が完全に一致 ● ne ◆ … ●と◆が一致しない ● =~ /◆/ … ●に◆が含まれる …(※) 他にもあるんだけど、これだけ覚えてれば十分だよ。 ※本当は、【正規表現】っていう新しいことなんだけど、 よく使いそうだからここで一緒に覚えようね。 正規表現は、近いうちに勉強するよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 真と偽 (ニ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 を勉強しようね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 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 "その他";} このへんはとっても重要だから、しっかり覚えておいてね。
おもったより続いてますねぇ 頑張ってください^^;
ついでですが…保存予定ですので宜しくお願いします。m(_ _)m
ごめんなさい…ageてしまった…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (1) (ニE(#つo⊂#) 正規表現っていうのを勉強するよ。 ちょっと難しい、ってよく言われるけど、そう思わずに しっかり読むと必ず分かるから、とりあえず読んでみてね。 正規表現は、柔軟なパターンマッチをすることができるよ。 例えば、特定の文字が含まれるかどうか調べたり、 文字の置き換えをしたり、またあとで勉強するけど、 split っていう関数のパターンに使ったりできるよ。 ここはよくわからなくてもいいよ。 わかりやすく説明すると、 ● =~ /◆/★ これで、【変数●がパターン◆にマッチ】っていうことだよ。 【マッチ】っていうのは、簡単に言うと、【●が◆の状態である】 っていうことなんだ。じゃあ、【◆の状態】っていうのを説明するね。 ★については、2回後くらいに説明するね。今はなにも書かいでね。 まず、例は、3回前に勉強した含まれるパターンだね。 ◆には【普通の文字】と、特別な意味のある、【メタ文字】のふたつが使えるよ。 3回前に勉強したのは、普通の文字だけだね。 じゃあ、メタ文字について説明するね。 続く…
…続き . … なにか1文字 * … 直前の文字やパターンの0回以上の繰り返し (いくつあってもよい) + … 直前の文字やパターンの1回以上の繰り返し (必ず1つ以上ある) ? … 直前の文字やパターンが1つだけあってもなくてもよい [abc] … [ ] で囲んだ文字の中のどれか1文字 ^ … 【…で始まる】という意味。パターンの最初に使う。 $ … 【…で終わる】という意味。パターンの最後に使う。 {5} … 直前の文字やパターンの5回繰り返し {3,8} … 直前の文字やパターンの3回以上8回以下の繰り返し 例だよ。 if ( $abc =~ /^def$/ ) { print "マッチ"; } これは、 if ( $abc eq "def" ) { print "マッチ"; } と、同じ意味になるよ。 とりあえず、何の役に立つかわからなくてもいいから、 使い方は覚えておいてね。
>>249 うん、ありがとう
頑張るよ
>>250 ずっと読んでくれてるの?
なんだか嬉しいな
>>251 別に気にしなくていいよ
…みんなはこのへんちゃんと理解してくれてるのかな?
わかりにくいところがあったら言ってね。
説明しなおすからね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (2) (ニE(#つo⊂#) 今回は、文字クラス [ ] について詳しく勉強するよ。 [ ] の中に文字を書くと、正規表現では [ ] の中の、 どれか1文字にマッチするんだったね。 じゃあ、特殊な書き方も含めて説明するね。 [A-Z] は、 A から Z までのどれか1文字だね。 [A-Za-z] なら、大文字か小文字だよ。 [^0-9] [ ] の先頭に ^ があると、【ここにない1文字】 って、意味が逆転するよ。 if ( $xxx =~ /[ABCDE]/ ) { print "ABCDE のどれかが含まれる"; } if ( $xxx =~ /[abcde]/ ) { print "abcde のどれかが含まれる"; } if ( $xxx =~ /[A-Z]/ ) { print "ABC…XYZ のどれかが含まれる"; } if ( $xxx =~ /[0-9]/ ) { print "0123456789 のどれかが含まれる"; } if ( $xxx =~ /[A-Z]$/ ) { print "アルファベット大文字で終わる"; } if ( $xxx =~ /[A-Z]+/ ) { print "アルファベット大文字が1回以上繰り返し"; } if ( $xxx =~ /^[A-Z]+$/ ) { print "アルファベット大文字しかない変数"; } if ( $xxx =~ /[^A-Z]/ ) { print "アルファベット大文字以外の文字が含まれている"; } 次回は、 ( ) と後方参照について説明するね。 #間違いがあったら指摘してね…
256 :
◆soCKet026k :02/11/10 21:21 ID:Za96cXhY
まだなんとかわかるよ。
今のペースでいくとオブジェクトな話になるのは何年後だろう^^;
まあ後は自分で勉強すれば良いだけの話だし、いいのでは? 途中で挫折した香具師多いと思われるから、マターリ進行で…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (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"; } 次回は、 [ ] を簡略化できる感じの、メタ文字と、 スペースがあまったら正規表現演算子をみてみようね。 今回はちょっと短いけどこれで終わりだよ。
>>256 うん、それならよかった
>>257 結構かかりそうだよね…
そんなに難しい話になるまで続くのかな…?
>>258 うん、そうだね
まあ実用的なスクリプト作れるぐらいになったら終了、かな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (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 とかもあるけど、それはそのとき説明するね。
一行抜けちゃった… 「これでとりあえず、正規表現は終わりだよ、次回は配列操作をやるね。」
>>あゆ ほぼ、一日に1レクチャか、まめだね。尊敬するよ。 下手な日記書いてる奴よっかスゲーなおまい
|こたつから出られなくなる季節です ∧ ∧ |/\_________ (,,゚Д゚)____. (つ/~ ※ ※ \ /※ ※ ※ ※ \
片付けないと炬燵出せません(T-T)
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 配列操作 (ニ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 次回は、ファイル入出力とファイルハンドルについて説明するね。
>>263 うん、ありがとう
途中でいきなり終わり、なんてことにならないようにがんばるよ
>>264 うん、そうだね
これからどんどん寒くなっていくからね
ボクもこの前こたつ出したよ
>>265 香里さんの家ってそんなに散らかってるの…
片づけてあとで温かいこたつに入るときもちいいよ
冬でもアイス美味しいですよ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (1) (ニE(#つo⊂#) 今回はファイルの読み書きとファイルハンドルについて説明するね。 ・ファイルハンドル ファイルハンドル、っていうのは、ファイルを開くときに、ファイルハンドル、 っていうものに結びつけて開くんだ。ファイルに書くときも同じだよ。 これにファイルを結びつけてを作るには、 open っていう関数が一番一般的だね。 ファイルハンドルは、半角大文字でつけるのが原則だよ。 ファイルハンドルを使い終わったら、 close 関数で閉じるようにしようね。 open ★, ◆ close ★ ★ … ファイルハンドル (半角大文字ならなんでもいいよ) ◆ … ファイル名 ファイル◆をファイルハンドル★に結びつけて開くよ。 じゃあ、 "test.txt" の内容を $test にいれて、表示するサンプルを書いてみるね。 open IN, "test.txt"; $test = <IN>; # こうやってファイルハンドルを変数に代入する close IN; print "$test"; Perl の勉強熱心な人は、実際試してみるてね。 今回のプログラムは、いろいろやっていると何か気付くことがあるはずだから、 必ず試しに動かしてみてね。 test.txt の中を書きかえながら。
ヲタとヲタの交流場はここですか?
273 :
◆soCKet026k :02/11/19 17:09 ID:/vFjknvy
>>270 タイヤキアイス食え。
>>271 ここに書き込んだ時点であなたも(以下略
ここの会話がヲタ会話とわかる時点であなたも(以下略
あゆたん、がんがれ。(うぐぅ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (2) (ニE(#つo⊂#) 前回のスクリプトはみんな動かしてみてくれたかな? いろいろやってみると、最初の1行しか表示されないことに気付いてくれたと思うんだ。 詳しくはそれはもう少しあとでやるね。 今回はファイルに書き込む方法を説明するよ。 open ★, "> test.txt"; こんなふうに、 > をつけてファイルを開くと、書き込みモードになるんだよ。 このファイルに書き込むには、 print ★ "test"; みたいな感じにするよ。 じゃあ、簡単なカウンターを書いてみるね。 行数が入らないから続くよ
-[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; ---------------------------------------------------------------- ちゃんと動かしてみてね。 今回はここで終わりだよ。
たい焼きアイスはマジであるよ。 数年前CMやってたの覚えてるし、多分うちの近所のスーパーに行けばまだ売ってると思う。 たい焼きの形をした最中の中にあずきとバニラアイスが入ってまつ。 あずきのバニラアイスのハーモーニーがたまりませんです。 余談 自分暇つぶしに2chのTripFinderスレを読んで自分なりのプログラムを組んでみたです。 CPU負荷かかりまくり、でも任意のTrip探す手間を考えれば楽なもんかな?とか思いながら使ってます。 今度taiyakiって入ったIDを探したいです!
あ、ちょっとミスをみつけたから書くね。
恥ずかしい…
-[perl0004.cgi]-------------------------------------------------
#!/usr/local/bin/perl
print "Content-type: text/html;\n\n";
open IN, "log.txt";
$count = <IN>;
close IN;
$count ++;
open OUT, "> log.txt"; # , が抜けてたね、ごめんね
print OUT "$count";
close OUT;
print "<body>$count</body>";
exit;
----------------------------------------------------------------
>>278 そうなんだ、じゃあボクも近くのスーパーに行って探してみるよ
ありがとうね
この教室は解り易いよ〜。 楽しみに見てますです。 それとトリップ付けてみました、別に意味はないので・・・ただunyuなだけです。 コンビニでたいやきアイスは発見できませんでした・・・残念です。
今日も頑張ってね。
昨日の教室はなかったのか?
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 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 "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。 この話を応用して次回にもっていくから、絶対に使えるようにしておいてね。
.txtで今までの授業全部保存してるよ! すっごく楽しみに見てるよ、これからも頑張ってね。
私も楽しみにしているので、無理せず続けて下さいね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (3) (ニE(#つo⊂#) 今回は複数行のファイルを読み込む方法を説明するね。 open IN, "test.txt"; # 1行だけ読み込む $test = <IN>; # 全行読み込む @test = <IN>; close IN; こんな感じにすると、1行ずつが配列のひとつの要素になるよ。 じゃあ、このファイルの中身を表示するには、 foreach (@test){ print "$_<br>"; } ってやると表示されるよ。 じゃあ次回は、ファイルの読み書きもわかったし、 ユーザーが何か入力したのを受け取って結果を表示する、 ってことを勉強してみようね。
>>285-286 ただの趣味の延長だから、変なところがあるかもしれないけど…
気に入ってくれてうれしいよ、ありがとうね。
※注意 最初にも言ったけど、ここの教室でやっていることは、 【わかりやすくするために多少強引な説明をしている】ところがあるよ。 基本なんだけど、【わかりにくいし使われもしないから省いている】ところも たくさんあるよ。他のサイトとか見てると、戸惑うことも多いとおもうけど、 混同させないように注意してね。
そ〜なんだ、解りました!
すごいね メルマガとか出してみたら?
292 :
◆soCKet026k :02/11/23 20:37 ID:bk4yPgrO
うぐぅage
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
まだやってんの?ヲタドモ
295 :
nobodyさん :02/11/26 07:17 ID:wcv/13ds
カエレ
妄想族
∬ (´・ω・)っ旦 <マターリ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< このスレきもい♪ ( つ \______ (_○___)
煽りは放置の方向でマターリと
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < フォームデーターの受けとり
(ニ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の世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。
#投稿が遅れてごめんね
>>290 うんうん、よろしくね
>>291 それもいいかもね
わかりやすく書き直して、カリキュラムもしっかり組めたら出してみるかも
>>293 うん、乗っ取らせてもらったよ
WebProg板のスレはなかなか落ちないからね…
>>297 うんうん、マターリしようね
メールアドレス作ってみたよ 内容についての質問とか要望があったらメールしてくれてもいいよ なるべく返信はしたいけど、忙しくて手が回らなかったりしたらごめんね。
いつもここ見ながら新しいアイディアを模索してるよ。 もう来ないのかと思ったけど、待ってて良かったよ。 メルマガいいね!
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。 気に入らなければ放置してくれれば良いだけなのに…。
なるほど こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
>305 cgi-lib.plって何? マジで使ったこと無いけど、何するもんなの? てか必要なの?
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、 わざわざ鯖に入れている鬱、、、
あゆたん、サイトがあったんだね。 今まで知らなかったよ。(うぐぅ
-[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; ----------------------------------------------------------------
↑注意
簡易掲示板のソースだよ。
同じフォルダに、 cgi-lib.pl をいれてね。
>>303-304 ボクは途中で放棄はあまりしたくないんだよね
来なくなることはないと思うよ
>>305 >>307 まあ最初の方はこうやって簡単にやってもいいんじゃないかな?
もうちょっと勉強してきたら、自分のスクリプトの中に書いていこうと思うよ。
>>306 フォームからデーターを送られてきたのを、CGI側で取得する機能があるよ。
他にもいくつか機能があるけど、代表的なのはこれだね。
今日うぐぅタンのページ見たよ、メアドの時に気づけなかった自分が寒いです・・・。 cgi-lib.plって便利そうだね。 もうちっと詳しく知りたいのでぐぐってきます。
ごめん、レスぬけてたね。。
>>308 うん。
ボクの名前でドメインとっちゃった。。
>>311 わぁ、ありがとう!
まあ、 cgi-lib.pl は便利なことは便利なんだけど、
ちょっと実行したときの効率があまりよくないんだよね。
また今度、 cgi-lib.pl なしで取得する方法を勉強するね。
313 :
◆soCKet026k :02/11/29 20:14 ID:I1ECfjSv
うぐぅ。 今日タイヤキアイス食った、うまかった。
314 :
nobodyさん :02/11/29 20:40 ID:Utvm+/IV
うは、レスが早い! なんか嬉しい(うぐっ 自分はcgi-lib使わないで取得、エンコードずっとしてきたから・・・必要性は感じないんだけど知識としてね。 またページには遊びに行くよ! なんか雰囲気とかもよかったし、勉強できそうなこととかもありそうな予感。 次回の授業を楽しみにしてます!
318 :
305 :02/11/30 10:28 ID:???
cgi-lib.plではなくCGI.pmを使え、という意味だったのだが。
CGI.pmって207k、、、。 そんなもん、コンパイルしてメモリにロードされるかとおもうと とうてい、使う気にはなれんな。
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < 掲示板 (2)
(ニE(#つo⊂#)
すっごく簡単に掲示板を書いてみたけど、どうだったかな?
やっぱり、機能が少なすぎるよね。
これからはしばらくの間、毎回少しずつ機能を足していく予定だよ。
今回の追加してみる機能は…
・名前欄を作るよ
・メール欄も作るよ
・名無しさんの名前が出るようにするよ
名前、メールは、入力欄を増やして、ログファイルに書き込むように
すれば、簡単にできちゃうよ。
名無しさんも簡単だね。
if(!$in{name}){
$in{name} = "名無しさん";
}
名前欄がなかったら「名無しさん」を代入してるね。
長くて入りきらなくなっちゃったね…
ここには重要な部分だけ書いて、全文はリンクからたどれるようにするね。
ソースはここだよ。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0006.txt 読めない、っていうときは、対象をファイルに保存、かソースを表示してみてね。
次回は、新しく置換演算子を勉強して、いろいろなことをやってみるね。
>>315 レスが早いのは運だよ
cgi-lib.pl は最初だから簡単に取得するために説明してるから、
慣れてきたら自分でやったほうがいいと思うよ
うん、ボクのホームページにも遊びに来てね。
ありがとう
>>316 317もあるけど、余計な処理をしすぎっていうか、
もっと簡単に短く単純に書けるよね
まあ自力でやる方法は今度説明するね。
>>318-319 cgi-lib.pl を使うのも CGI.pm もメリットがあればデメリットもあるよね
Perlを考えたアメリカの人は(名前忘れちゃったけど)
「Perlは好きなように書けばよい」っていう言葉を残してるんだから、
人それぞれやり方が違ってもいいと思うな
↑アメリカだったっけ…? 違ってたら恥ずかしいから、とりあえず発言撤回させて…
そっか〜、ありがと 鮎タンのページの掲示板でおみくじやったら「大凶」と「最大凶」ひいちゃったよ・・・。 これも運・・・。
324 :
305 :02/12/02 13:14 ID:???
TMTOWTDIはまさにその通り、それはいい。
だが今人に勧めるのなら既に保守更新されていないcgi-lib.plよりも
標準モジュールとして使えるCGI.pmの方が導入は容易だと思うのだが?
まあそれでもcgi-lib.pmが良いというのなら、ポリシーは人それぞれだからかまわないが。
>>319 滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
325 :
nobodyさん :02/12/05 18:47 ID:o9GMmmoX
授業まだ〜?
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < 置換演算子
(ニ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 のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
やっと正規表現まで来たね。 個人的にtrがすごく知りたいよ、まだいまいち理解してないんだよね。(恥 でも正規表現そのものが便利で難しいみたいだし、まだまだ勉強だね。 次回楽しみにしてます。返答ありがと。
でも「/」がたくさんあるといちいち「\/」に書き換えないとだから大変だよね。
ということで、じつは・・・
● =~ s#◆#★#g;
なんてのも使えるんだよ。
これなら「/」が多い日も安心ですね。
・・・っていうのは次回でつか?
>>328 「1文字ずつ対応させて置換する」って表現ではどうでしょう?>tr|y
$test = '01234-02468-13579-56789';
$test =~ tr/[0-9]/[A-J]/;
print $test; # ABCDE-ACEGI-BDFHJ-FGHIJ と表示
$test =~ tr/[0-9]/[A-J]/; []に意味はあるのかい?
>>330 $testに[]が含まれると、戻り値の置換文字数が変わってくる。
>>330 tr[0-9][A-B];
と書き変えておこうとして忘れてました。
スマ
これから先ずっと使う前に q, qq, qw を覚えよーょ。 クォートのエスケープは他の言語でもよく使われるから、 覚えておいて損はないけど。
334 :
マルチ :02/12/06 20:22 ID:???
>pearさん こんど♪のスクリプトも改良してほしいですぅ
>334 ここにも出たか、粘着リア厨が! さっさと糞してねれ!! 削除依頼出しとけよ!
>335=粘着
>>335=尾瀬原必死だな まああんな穴だらけのクリプト晒されりゃいい恥さらしだから無理もないか(藁
338 :
nobodyさん :02/12/06 22:40 ID:dKGf9spa
(-_-) 誰もカキコしてない・・・ (・∀・)カンリョウ!!
>>333 正規表現のコンストラクタ、qr//も忘れずにな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 展開とクオート風演算子 (ニE(#つo⊂#) リクエストがあったから勉強するね。 $text = "うぐぅ"; print "うぐぅ<br>\n"; print "$text<br>\n"; print 'うぐぅ<br>\n'; print '$text<br>\n'; 例えば、後々の説明を楽にするために、これを実行させてみてね。 '…' で囲むと、変数名がそのまま出ちゃったり、 ちゃんと改行されなかったりすることがわかると思うんだ。 '…' では、変数やメタ文字は【展開】されないよ。 つまり、囲った文字がそのまま出る、っていうことなんだ。 "…" では、【展開】されるよ。 さっきの例のソースを、全部、 "…" で囲んであるものは、 qq{…} に書き替えができるよ。(展開されるよ) " が、ダブルクオーテーションっていう記号だから q がふたつあるのかな。 '…' で囲んであったら、 q{…} に書き換えができるよ。(展開されないよ) こういうのを、クオート風演算子、っていうよ。 ボクは個人的な話だけど、 print は全部 qq{…} で書いてるよ。 続くよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < クオート風演算子 (ニE(#つo⊂#) qw についても説明するね。 ● = qw{★}; ★で、半角スペースで区切った文字列を順番に配列●に代入するよ。 これは知らなくてもそんなに影響はないと思うんだけどね… qr は、取り扱うとしたらもう少し先になるかな…? あといくつか、クオート風演算子はあるんだけど、代表的なものとしてこのへんで終わりにするね。 { } って書いたけれど、一定の制約を守っていれば、 { } じゃなくてもできるよ。 一定の制約 ・英数字以外の半角文字だったら何でもいいよ。 ・ # を使うときは、直前にスペースがあると、コメントと間違うから注意だね ・カッコを使うときは、左右でペアにして使うよ。 { } ( ) [ ] < > これは、正規表現の時にも使えるんだ。 たとえば、置換演算子の時では… $test =~ s/xxx/yyy/g; $test =~ s#xxx#xxx#g; $test =~ s{xxx}{yyy}g; これらは全部同じことを表しているよ。 それにしても、ボクはこの授業の内容は全部テキストファイルにしてるんだけど、 → この行でちょうど1000行に達してしまうんだよね…。 ボク、よくこんなに書いたなあ…
>>328 >>329 さんが上手く説明してくれてるね。
ボクにはこれ以上うまく説明はできないかな
>>334 おんぷちゃんねるのスクリプト…?
改造すべきところなんてあるかな?
どう改造してほしいか言ってくれたら、
もしかしたら1%ぐらいの確立で改造してみるかも
あと、ここでは「あゆ」って呼んでくれた方がうれしいな
343 :
マルチ :02/12/07 00:21 ID:???
>342 ごめんなさいです。。。 用なし逝って話しますですぅ
>>329 さん
ありがと、そっか〜つまり抜けてる部分とか余ったりするとよくないっぽいんだね。
一つずつってのがポイントみたい。
これでtrは解ったよ、ホントありがと。
うぐぅタン
だんだん難しくなってきたよ・・・。
まだ何とか付いていけてるから、次もよろしく〜
334トリップ忘れた・・・(汗
このすれ く さ い
>346 おまえが近づかないようにするためだよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (1) (ニE(#つo⊂#) Perlで一番重要な、サブルーチンについての説明だよ。 自分で処理を決める関数のようなものがつくれるから、ユーザー関数とかも呼ばれるよ。 サブルーチンは、「宣言」しておくと「実行」できるようになるよ。 じゃあ、宣言の方法を説明するね。 個人的な話だけど、ボクは、 { } の中に改行がくるときは、 インデントすることにしてるよ。インデントっていうのは、 行の始めにタブやスペースをいれて、始まりを右にずらすことだよ。 アンインデント、はこの逆だね。 これを使うと、スクリプトが複雑になってくると見やすくていいよ。 sub abc{ $x ++; } これは、変数 $x に 1 を足す、サブルーチンだね。 呼び出すには、 &abc; って書いて呼び出すよ。 サンプル。「2」って表示されるよ。 $x = 1; &abc; print "$x"; sub abc{ $x ++; } サブルーチンはとっても重要で便利だから、必ずマスターしてね。
>>343 うん、そうしてね。
わかってくれてうれしいよ
>>344 だんだん難しくなっていくね
わからないことがあったら気軽に聞いてね。
ありがと、 とりあえず今のところ大丈夫だよ。 次は何が出てくるのか楽しみです。
351 :
nobodyさん :02/12/08 19:24 ID:Jo6i/ZZ/
cgi-lib.plを使わない
>>320 の簡易掲示板の作り方を教えて欲しいでつ。
>>348 待て、一番重要なサブルーチンの説明がよりによって引数無し、グローバル変数操作かよ。
常識的なサンプルを提示できないなら、頼むから何もしないでくれ。はっきりいって迷惑。
>>352 (1)って書いてるじゃねーか(2)があるんだろ
おとなしく待てよ行数規制があるんだから
(2)はどこじゃヴぉけぇ!!!!!
355 :
サブルーチン編 :02/12/09 00:42 ID:VP9Z79ed
sub hogehoge { my %param = @_; #何か return ...; }
>>348 >これは、変数 $x に 1 を足す、サブルーチンだね。
( ´,_ゝ`) プッ $x= 'A'でも1足すのかよ
$x= 'A';
$x++;
print $x; # これはB
$x= '?';
$x++;
print $x; # これは1
よく頭に叩き込んでおけ
357 :
正規表現編 :02/12/09 00:47 ID:VP9Z79ed
ゼロ文字幅 ^ =>最初 $ =>最後 文字 . =>1文字 [..] =>文字クラス。括弧の中の、任意の1文字 [^..] =>中身以外の文字を1つ 繰り返し * =>0以上 + =>1以上 {n} =>n回 {n,m} =>n以上m未満 {n,}、{,m} も可能 (?:...) =>まとめるだけでいいとき (...) =>後から$1とかで使うとき \1 \2 \3 =>パターンマッチの中で使える。 $1 $2 $3 =>外で使う
サブルーチン(1) 確かに、これだけじゃちょっと・・・ 変数のスコープとか、GC, サブルーチン内でグローバル変数を変更する事のリスクとか。 後できちんとフォローすれば大丈夫。多分。。。
360 :
nobodyさん :02/12/09 12:31 ID:czPx1nV4
漏れは普段平気でグローバル変数操作してるが。 use strictなんてきらいだよー。
>>360 movep.l d0-d7/a0-a7,-(a7)
が癖になっていたので、もはや戻れません。>グローバル変数いぢり
月宮あゆのPHP教室もキボン!。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (2) 返り値 (ニE(#つo⊂#) サブルーチンでは、返り値 (かえりち) っていうものが作れるよ。 「返り血」とか変なこと言ったら嫌だよ。 $x = &xxx; # $x には abc が代入されるよ。 sub xxx{ return "abc"; } return ● …●を返り値として、呼び出し元に戻る。 ちょっとここで注意だけど、この関数は、絶対にサブルーチンの外で 使っちゃだめなんだ。戻る場所がないからね。 ふたつ以上の返り値を送りたいなら、 return ( $a, $b, $c ); みたいに配列にして送るといいよ。 受け取るときは、 ( $a, $b, $c ) = &xxx; こうやって受け取ることができるよ。 それか、配列をあらかじめ作っておいて、 return @xxx; @xxx = &xxx; みたいなこともできるよ。
>>351 もうすこし先で勉強するからもうちょっとまってね。
>>352-355 サブルーチン、はとりあえず (4) か (5) まで続くと思うよ。
今は (4) の途中まで書いてるからね。。
>>356 確かに、オートインクリメント演算子は、「1足す」じゃなくて、
「値を1増加させる」っていう機能なのはその通りなんだけど、
そんな扱ってないようなことを勝手に進めないで。
先に「省略してるところもある」ってちゃんと言ってるんだから。
そんなことはあまり知る必要ないんじゃない?
>>358 必要最小限のことは付け足すからね。
>>363 ボクはPHPはほとんどできないんだよね。。
勉強するにもPHPの入門書が数ないからねえ。。
返り値と戻り値って、どう違うの?ダレカオシエテ
>>364 重箱の隅をつつくようだけど、実はサブルーチンの外でもreturnを使えるケースがあるんだよね。
標準ライブラリの中にもその使い方をしているものもあるよ。
ところで、-wスイッチとuse strictの説明の予定はあるの?
コーディングを楽にするためにも、まずその説明をした方が良いと思うね。
>>366 同じ意味だと思うよ。
368 :
366 :02/12/11 22:40 ID:???
>>367 ありがと。戻り値でも通じるんだよね?
よかった、前から気になっていたんだ。
369 :
nobodyさん :02/12/11 23:34 ID:M9dNCh9D
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
くさい
371 :
nobodyさん :02/12/12 10:53 ID:SmMSqgPF
すいません、教えて下さい foreach これってフォーイーチ? フォーリーチですか? 気になって仕方ないです… お願いします。
f or each
374 :
371 :02/12/12 12:18 ID:SmMSqgPF
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (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"; }
>>366 うん、同じだね
>>367 eval の中かな?
eval はまだ取り扱ってないから、出てきたときに説明しようと思って、
こんなところで「eval」って出したら混乱する人もいそうだから、
あえて説明しなかったんだよね。。
-w とか strict は、知っておいた方がいいことだろうね。。
-w は未定だけど、 strict はそのうち勉強する予定だよ。
>>371 ふぉーいーち、だと思うよ
377 :
くせ〜 :02/12/12 21:35 ID:???
このあゆ、息臭いなあ このあゆ、汗っかきだなあ このあゆ、ワキガ??
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ *´ー゚*リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
/ ̄ ̄\ | う う | | ぐ う / ̄ ̄ ̄ ̄ ̄ ̄ | ウ | < うげぇ \__/ \______ . r‐-i^i´`||iii》ヽ (_| | i/二フ.〉 (__|_ゝ、__[]_ア / l| | /fヨI 中| く l| | ` ‐r-十! ノ ! ! /ゝ,/ー| / /l | / f《 |fヨ | . \_)_ノ
ヴ?
>>376 そういえばevalもそうだっけ。でもそれ以外にもあるよ。
実はrequireされるライブラリファイルの中だとreturn出来るんだよ。
例えばAnyDBM_Fileがそうしてる。
ま、普通は使わない機能だけどね。
perldoc -f return subroutine, eval, do FILE ... みたいですね。 ライブラリの中って言うのは、よくモジュール等の最後に 1; ってやるけど あれって、return が省略されていたんだ? そういえば、sub 内でも定数とかを返すだけのサブルーチンでは return省略してるの良く見かけるよなぁ
>>382 > あれって、return が省略されていたんだ?
ちょっと違う。
returnがない場合、最後に評価された式の結果が返される。
1; というのは式1;の値は1だから1が返る。
…って動作のはず。
日本語のページからうぐぅを検索しました。 約56,500件中1 - 50件目 ・検索にかかった時間0.09秒
385 :
nobodyさん :02/12/13 14:56 ID:TqDERRP1
Perlのクラスは何であんなにヘンテコですか?
あんなにってどんなに?
↑ 睾丸無知
389 :
nobodyさん :02/12/16 01:42 ID:/+dGpF86
あゆタンはやく続きおせーて
しぼーん
(´・ω・`)ショボーン
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (4) 引数 (ニE(#つo⊂#) 引数、っていうのは、「ひきすう」って読むらしいよ。 ボクはこのあいだまで、「いんすう」だって思ってたんだけど。。 サブルーチンから値を持って戻る、っていうことをやったね。 じゃあ次は、値を持ってサブルーチンを実行するっていうことをやるね。 &xxx("abc", "123", "あいう"); こんな風に呼び出すと、特殊配列 @_ に頭から代入されて呼び出されるよ。 当然、 @list = ("abc", "123", "あいう"); &xxx(@list); と同義だよ。 この辺の話を覚えて、次回は、名無しさんならエラー、っていう ソースに改造してみるよ。 #投稿が遅れてごめんね。 #遅れてもdat落ちや削除されない限り途中で放棄することはないからね。。
394 :
◆soCKet026k :02/12/21 01:51 ID:cbygjUhv
キタキタキター
月宮あゆのPHP教室きぼんぬ
このスレほんと勉強になりました。 で、PHPの勉強にすることにしたので、 おれもPHP教室を希望します。 ちょっとづつでいいのでお願いしたいです。
いまさらPerl勉強しても需要も無い仕事無い
>>397 確かに今さらPerlっつってもね。
でも、月宮あゆ君はよくがんばってると思うよ。
今後もがんばってもらいたいね。Perlで移行!!。
399 :
nobodyさん :02/12/23 03:38 ID:1Wxw8/wH
perl今勉強中なんだが需要無いのか・・・ いや、なにか役立つでしょ。うん。 それとも先にcかphpを勉強した方が良いのか・・・?
>>399 趣味にやってるぶんには頭の体操になるしPerlでも良いと思うよ。
Cは用途が違うし難易度が高いから、始めるならPHPのほうが良いと思うよ。
がんばろっ♪
>399 使い捨てスクリプト書くのとかにはPerlはすごく便利だよ。 CとPerlは構文が似てるし、Perlをやっても全くCに役立たない、という訳でもなし。
402 :
399 :02/12/23 22:05 ID:???
>400-401 レスどもです。 Perlは勉強していきます。役には立ちますよね。 次にPHP、そしてCという順にやっていきます。がんがります。
>>402 Perlは今後、使用者は減るけど使えないわけじゃないから勉強してもいいと思うよ。
でも、最終的にCするんだったら、ぼくはPHPを強く勧めるよ。
Perlから始めちゃうとPerl独自の癖がつくのでPerlしかできなくなる危険性があるので、
PHP勉強した後、Perlを勉強したほうかいいかもしれないね♪ がんがれ!
>>394 うん、遅くなってごめんね
>>395-396 ボクも今、PHPは勉強してるところなんだよね
ちょっとボクにはできそうにないよ
ごめんね
>>397-402 確かにこれからはPHPの時代に変わっていくかもしれないね。
>>403 elsif 、とかPerl以外にみたことないよ。。
俺の鯖、CGI使えんのだが…お奨めはあるかね。
>>405 Python だと elif
PHP では、 elseif, else if
Perl で、無理に独自のスタイルに馴染まなくても
C ライクなプログラミングも出来るよ。
408 :
◆soCKet026k :02/12/24 23:28 ID:2kS8TiT1
>>404 ソースのHTMLが解釈されて見にくいぽ。。。
メリークリスマス あゆタン
>>408 ヘッダのContent-Typeを無視して勝手に中身を判断する
IEを恨みましょう。
>>407 >Perl で、無理に独自のスタイルに馴染まなくても
>C ライクなプログラミングも出来るよ。
独自スタイルを使わずしてPerlは動くのか?
C知らずしてCライクは無理だろ。もうちと考えてかけよ。
(´・ω・`)
413 :
nobodyさん :02/12/29 18:10 ID:uoxci6sX
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
ヒキコモリヲタのくせに生意気だな。
415 :
nobodyさん :02/12/31 13:32 ID:qLQW6luA
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (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} : そのページへのリンク元アドレスが入ってるよ。 こんな感じかな。 次回は他の環境変数と、スペースがあまったら実用例を書いてみるね。
あけましておめでとう、今年もよろしくね
>>406 無料サーバかな?
規約違反するなら infoseek かトクトク
規約違反しないなら XREA がいいと思うな
>>407 Python なんて言語聞いたことない…
他は聞いたことあるけど。。
>>408 ボクもよくわからなかったんだけど410さんが言うにはIEの仕様みたいだね・・・
これはしかたないね
>>409 今は、あけましておめでとう、っていう時期になっちゃったね
ごめんね
>>413 見てくれてたのかな、ありがとうね
これからできるだけ顔を出したいと思ってるんだけどね
最近いそがしくて・・
420 :
nobodyさん :03/01/03 22:48 ID:jx+nlJxM
あゆタン
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ (ニE(#つo⊂#)
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (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 関数も使えないサーバーもあるらしいよ。。 こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。 わからないことがあったら、サーバーの管理人さんに聞いてね。
取得するときになんか障害が起きたから。
426 :
とりあえず :03/01/07 01:03 ID:mvf11T4j
誕生日おめでとう>あゆあゆ
(´Д⊂ヽ・゚。 ウワァァァァアァァン あゆあゆ〜
???
>>426 そういや1月7日はあゆちゃんの誕生日だったっけ。
おめでと〜。
関係ないけど、
このスレでの「月宮あゆ」は共有コテにして、トリップだけ別々にすればいいと思うが。
俺は「C言語CGI」スレの住民だけど、あゆのレスが面白くてこっちにもいてみたり。
>>429 つぅかnobodyさん−>月宮あゆ
を提唱しようではないか。と。
取りあえず次スレはWebProg総合スレにして欲しいっす。
初心者スレとかも良いかもね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (3) (ニE(#つo⊂#) じゃあ、掲示板に書きこんだ人のホストを記録するよ。 簡単に言うと、ログファイルに記録すればいいんだけど、 ログファイルにそのまま記録しちゃうと、読む人にホストが見えちゃうんだよね。 たぶんここにいる人たちはホスト開示、っていうのは嫌だと思うんだ。 コメントにする、っていうのも、ソースを見られたらばれちゃうよね。 じゃあ、こんなことをしてみよう。 書きこむときに <a href='mailto:メール'>名前</a>>メッセージ っていう書き方をやめるんだ。こうじゃないとホストが筒抜けになっちゃうからね。 じゃあ、ホストを記録できるようにするには、 <a href='mailto:メール'>名前</a>>メッセージ(ホスト) みたいにして、表示するときに消してやるといいよ。 表示する欄をいじってみるね。 foreach (@log){ $_ =~ s/\([\w\.-]\)\n$//; print "$_<hr>\n"; } でも、このままだと穴があるよ。 行数が入らないから次回にまわすね。
>>431 なぁ、データフォーマットの時点でなんか痛くない?
>>432 うーん・・・
できればsplitあたりを使って今回やりたかったんだけど
行数が入らないからフォーマットは次回まわしかな
俺は
>>429 っす。
重要な語句が抜けてますた(*´Д`)
質問に「答える人達が」共有であゆコテを使おうってことを言いたかったんだ。
「◆XalkKQX1is」あゆ一人だけだと、負担がかかるんじゃないかと思ったから。
気の回しすぎだったらごめん。
軽い気持ちで吊ってくるっす。
ィ`
>>435 それなら、AYUAYUっていうトリップ探して付けてみたら?
そっちの方が雰囲気出るかも
ただ、◆Xalk..も◆AYUAYU..も掲示板でpassを晒したら、
関係ない奴が偽物として入ってくると言う痛い罠
passの配布方法はどうするの?
パスワード パスと呼ぶ奴 厨房さ
password path
そのためわざわざ英字で書いたんだけど.... 自分ダメダメっすね(^.^;
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
共通トリップ付けるのに偽物がどうこうとか言うなら いっそトリップ付けなきゃ(ry もしくはID表示させれば(ry
とりあえず、あゆが来るまで保守
444 :
山崎渉 :03/01/15 13:35 ID:???
(^^)
445 :
西野つかさ :03/01/15 18:27 ID:NGnYg/Kg
あゆあゆ.com.うぐぅ・・・。(^−^)
446 :
nobodyさん :03/01/15 20:08 ID:BpytE0q0
あゆage
447 :
ひろゆき :03/01/15 20:58 ID:XI5HMpQj
COBOLってどうなんすか、、、 いまどき(仕事以外で)使ってる人いるんすかねえ、、、
全部読んだが全く知識のない自分には当然全く分からない 電2>基礎から丁寧に説明してくれるので非常に分かりやすい
このスレも電2に載るほど有名になったのかage
450 :
nobodyさん :03/01/16 00:04 ID:juXMvCeg
電2に載るのはうれしいけど、肝心のあゆあゆが降臨してくれないからなぁ 降臨きぼーん
ヲタドモが騒いでるな 電2ってなによ
454 :
210.159.255.255 :03/01/16 16:35 ID:iMxUcVql
(´Д`)
1は食い逃げの常習犯なので逮捕します
456 :
nobodyさん :03/01/16 19:04 ID:xD66X4/7
感胴上げ
通りすがりのたい焼き屋さんが住むスレはここですか?
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < ログファイル (1)
(ニE(#つo⊂#)
前回はホストの記録をやってみたわけだけど、実は拡張子が、
.cgi とかじゃないファイルは、外部から参照されちゃうことがあるんだ
(でも、基本的にサーバーの設定に依存するよ)
log.cgi か何かにリネーム(名前を変更)して、スクリプトも少し
書き直したらこの問題は解決されるね。
じゃあ今回は、少し重い掲示板を作る、っていう想定でやってみるね。
ここでは表示欄にテーブルを組ませたりするよ。
ちょっとここで考えてみると、前回までと同じように、ログファイルに
書き込んでると、容量がどんどん大きくなっちゃうよね。
それは困る、っていうことで、一般的な掲示板では、【区切り文字】を
使って、名前、とかの要素を区切って保存してるよ。
2ちゃんねるでもこれは同じだよ。
http://pc.2ch.net/php/dat/1014096840.dat 名前<>E-mail<>投稿日<>本文<>(サブジェクト)
っていう感じに <> で区切られて保存されてるのがわかると思うよ。
区切り文字は、 <> が一番メジャーで、次に , とか : とか | を見るね。
別に何でもいいんだけどね。でも、本文にその区切り文字があると、
そこで区切られちゃうから、それを避けるようにすればいいね。
じゃあ、今回は
名前<>E-mail<>投稿日<>本文<>ホスト
っていう形式でやってみることにするね。
>>435 うーん・・
ボクは別にそれでもいいけど
結構大変な仕事を継続してやってくれる人はいるかな…?
いるならボクは大歓迎だよ
>>437 >>442 トリップのキーはすぐに割れそうな気がするキーなんだけど…
えっと、他のスレでもこのトリップ使ってるから、
公開するつもりはあまりないよ、ごめんね
>>447 COBOL…?
ごめん、聞いたことないよ。。
>>448-449 えっ?!
今みてみたけどホントに掲載されてるね
うれしいよ、今度からも頑張るから応援してね
>>448 そんな難しいこと書いてるかなぁ…
どのへんから分からないのか教えてほしいな
>>451 遅くなってごめんね
>>457 スレ違いだよっ!
>>458-459 あゆあゆ降臨
キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
俺はスローペースでもOK
てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
月宮あゆの中の人も大変だな。
_ _
〃┏━━
( ) ( )
(.〆⌒ヽ )
(∴゚ρ゚∴) < いないよ
>>461 ( £ £ )
( £ゑ££ )
(££ゑ£)
|. ノノソハ)))
(\リリ ´ー`)リ
(ニE(#つo⊂#)
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´ _,,. ‐''" / ハ\ / /
464 :
nobodyさん :03/01/18 06:38 ID:q6+JV5fJ
月宮あゆ ◆XalkKQX1is つまらんぞ。 シロウトがでたらめばかり書くな。
465 :
nobodyさん :03/01/18 06:40 ID:q6+JV5fJ
ったく、ちょっとスレを読んでみたけど、いいかげんなことばっかじゃねぇか。 月宮あゆ ◆XalkKQX1is ドシロート うせろ。
( ´_ゝ`)…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ログファイル (2) (ニE(#つo⊂#) ログファイルをどんなフォーマットにするか考えたら、 違う形式で保存されてるんだから、 読みこむときにも工夫しないと読みこんでも変なデータになっちゃうよ。 それで、特定の文字で区切る split っていうのが用意されてるんだ。 ● = split ◆, ★ スカラー変数 ★ を正規表現で指定した文字列 ◆ で区切って 配列の要素にして配列 ● に代入するよ。 ★ を省略すると、 $_ に対して処理をするよ。 @data = split /<>/, $_; と、 @data = split /<>/; は、同じ意味だよ。 あと、こんな指定の仕方もできるんだ。 ($name, $email, $date, $message, $host) = split /<>/; これは 0 番目の要素が名前、ってわかってるなら、 スクリプトは $data[0] って書くより書きやすくなりそうだね。 じゃあ次回は、このへんをまとめて、掲示板に反映させてみるよ。
>>460 それもそうだね。
ボクもそれがいいと思うよ。
>>461 結構大変かもしれない。。
>>463 よくできたアスキーアートだね
AIRの観鈴さん、ってわかるよ
こんなの作れる人すごいなあ。。
469 :
劉邦 :03/01/19 12:55 ID:iJfTCNLl
正規表記って難しいんですけど・・・
>>469 そうでもないよ。
いきなり全部覚えるのは無理だし使うものは限られているので
自分の使うものだけを取りあえず書きながら覚えていけばいいよ。
後は処理する文字列の特徴をよく把握することだね。
>>464-467 冬厨様はお帰りください。
>>469 正規表現で一冊の本になったりするから、奥は深いけど、
>>470 さんの言うとおり、最初は使うのだけ覚えて、
あとは少しづつできる範囲を広げていけばいいじゃないかな。
臭いヲタドモ必死w
>>470 >初期の頃胴の長いあゆ書いてた奴
あの趣向良かったよー
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| | ∞,| 復活 | ∞,| | ∞,| 胴長あゆ | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
476 :
nobodyさん :03/01/21 19:34 ID:eVlnRoM0
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 了解です。 ((ニE/⌒ヾ∞"ヽ \____________  ̄し'し'  ̄
>477 それでも長すぎだろ。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| く__∞,ノ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ノ ノ ノ ノ し' し'
>>480 使えるって思っちまったよ (((\リリ ´ー` リ < うぐぅ♪
482 :
nobodyさん :03/01/22 02:01 ID:nskHLtl4
1行レスには必要十分かと
483 :
f :03/01/22 02:14 ID:ZsLNgUOG
★あなたのお悩み解決致します!!
◎浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
◎盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
◎行方調査
行方不明になっている家族の消息を調査致します!!
◎電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
◎ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) (((\リリ ´ー` リ ←こいつが毒カレー女に見えてしかたがない ((ニE/⌒ヾ∞"ヽ  ̄し'し'  ̄
・ムッシュかまやつ ・ウド鈴木 ・毒カレー女 ・もののけ姫歌ってた人 ほがにいねーがー?
定期上げ
490 :
nobodyさん :03/01/24 01:59 ID:o0DPXSNm
>>489 上げるなよ。冬厨来るだろうが。ヒキコモリモナ
491 :
490 :03/01/24 02:09 ID:???
って言いながら上げてしまった。鬱… 吊ってきます。スマソ
わかりやすくていいなぁ PHPでもこういうスレがあったらな…
>>492 最近はPHPマンセーだからご要望があれば答えるよ。うぐぅ。
ご要望というか、最初から…教えて欲しいな…とか…
「月宮あゆのPHP教室」とか「月宮あゆのCでCGI教室」とか「月宮あゆの2chScript教室」とか 「月宮あゆの.htaccess教室」とか「月宮あゆのRuby教室」とか「月宮あゆの万引講座」とか 乱立したらそれはそれで楽しそうなんだが月宮あゆの中の人も大変になりそうだな。
>>496 >まいたけから来ますた。
・・・どこ?
>>496 なぁ、C使ってるくせに「ブロック」って用語知らないわけもあるまい。
_
'´ ヽ.
,' ノノノ)))〉
く((レ゚ ‐゚ノァ
>>500 く/jつつ
>>496 の上2行読みましたか?
/__il〉
>>37 が言いたいことについてはその通りだと思いますが、内容が間違ってます。
し'ノ
ま、ここはム技板じゃないし、
「なんか難しい理由があってelsifを使うらしい、 理由は忘れたけどタイプ数も少なくて楽だしラッキー」
でもいいと思います。(でも嘘を言って回るのはやめましょう)
>>469 最初は難しく思うかもしれないね。
でも少しずつ複雑なパターンに慣れていくといいんじゃないかな
>>495 ボクができそうなのは .htaccess くらいかな・・
あとは誰か他の人がやってくれるならいいかもしれないね
それはそうと、最後のやつ、どういう意味だよっ!
504 :
nobodyさん :03/01/26 01:54 ID:NkO4LfXa
>それはそうと、最後のやつ、どういう意味だよっ! いや、君の本業というか・・・
あげちゃまずいのか・・ごめん
>>495 お約束をば……
「中の人などいない!」
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < age ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < length (ニE(#つo⊂#) じゃあ、今度は新しい関数、 length について勉強するよ。 掲示板にものすっごく長い書き込みをされちゃったら、 とっても重くなっちゃったり大変だよね。。 じゃあ、今回は一定以上長い書き込みは禁止するような 方法を説明していくことにするね。 ● = length ★ 変数 ★ の長さ(バイト数)を返して ● に代入するよ。 たとえば、 1KB 以上の書き込みを禁止したいなら、 if ((length $in{message}) >= 1024) { &error("本文が長すぎだよ。。"); } こんなふうに書けばいいね。 1KB=1000バイトだと思ってる人がいるかもだけど、1KB=1024バイトだよ。 if の条件部分が ((length $in{message}) >= 1024) っていう風に 2重カッコになってるけど、「ここは先に処理してね」っていう意味で使ってるよ。 >= 演算子は優先度が低いから、カッコを外しても正常に動作するよ。 このへんがよくわからないなら、カッコをつけててもまったく問題ないから、 あまり気にしなくてもいいよ。 次回は、ファイルテスト演算子について説明するね。
>>504 ボクは食い逃げなんてしないよっ
ひどいこと言わないで
>>506 「口が滑った」っていうのは、本音ってこと?
ひどいよっ!
漏れは if (length($in{message}) >= 1024) { &error("本文が長すぎだよ。。"); } って書いちゃうけど、駄目?
ぜんぜん駄目 うぐぅに逆らうな
CGI&Perlポケットリファレンス使ってるのか?あゆ。 ★を省略すると$_が適用されるな。 それとmessageが裸の王様だ。
>>511 2バイト文字ではちゃんと文字数が認識されませんから注意。
ぐらい書けよ。
if (1024 <= length $in{message}) { &error("短い記法かな。。"); } キロが1000だろーが1024だろーが何が違うんだ? 掲示板ごときでそんなこと気にしても役に立たんよ。 どっちも「約500文字以内」と注意書きを書くだけのことだし。 真面目に言ってるんじゃなく、あゆあゆの楽しい雑学教室♪などのつもりなら、 1KB=1024バイト、1kB=1000バイト、ネットワーク速度表記などで使われる 1Kbps=1024ビット/秒 くらいまで書いたら?
まずは初歩から、だからねえ。 順次追加して覚えていけばいいんじゃない? モレモ length() 派ダガナー
520 :
519 :03/02/01 08:46 ID:???
(´・ω・`)たまたま近い時間の書き込みだった。
521 :
nobodyさん :03/02/01 17:46 ID:I7T2CIzo
522 :
nobodyさん :03/02/01 18:33 ID:U5MszDvj
use bytes (); if (1024 <= bytes::length($in{message}) { &error("1024bytesを越えています。");
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイルテスト演算子 (ニ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バイト"; 他にもいろいろあるんだけど、また必要になりそうだったら説明するね。 ややこしい説明はなるべく避けたいからね。。 じゃあ次回は、他の文字列処理関係の関数を勉強するよ
>>514 そう言われてみればそっちのほうが綺麗に見えるね…
意味的には同じだよ
>>516 うん、ボクのポケットリファレンスは使いすぎでもうボロボロ…
>>517 全角文字が2バイトってことは一般常識なんじゃないかな…?
>>518 いや、それは行が少しあまったから足しただけなんだよね
別にそんなに深い意味はないよ
>>519 うんうん、そうだよね
>>521 なぜかJaneで既読になっちゃってるよ…
>>522 そんなモジュールがあるんだ…
知らなかったよ
ちょっと調べてみるね
勉強になったよ、ありがとうね
括弧なし関数を理解せずに使ってるとはまる例: $a = '100'; $b = '200'; $sum = length $a + length $b; $sumは6になるでしょうか?
>>524 全角文字だけが2バイト、ではないよね。
528 :
nobodyさん :03/02/02 10:23 ID:EcuvSD39
半角かなで2バイトとか、 全角漢字で3バイトとかあるよね。
529 :
nobodyさん :03/02/02 10:23 ID:EcuvSD39
$sum = length ($a + (length ($b))); こう書くと判りやすいかも。@Ans. $sum = 3
531 :
nobodyさん :03/02/02 10:44 ID:XEuBL7+y
>>530 それ、2回自動型変換が働いてるから、型のある言語だと書けない、と思う。。
明示的な型変換をすれば出来るけど。。 知らずにはまることは無いと思う。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 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 まあ、柔軟に使えるようにしておいてね。
>>525 うん、優先度を取り違えると間違えそうな例だね
>>526-528 今ちょっと調べてみたけど…
その通りみたいだね
初めて知ったよ
勉強になった、ありがとうね
あゆはprintに括弧使う派か。 俺は使わない派だな。
539 :
保守 :03/02/23 22:30 ID:???
あゆは何処?戻ってこないのか…(鬱
入試?
COBOL知らないって言ってたから何か変だとは思ってたよ。
546 :
初心者 :03/03/02 17:25 ID:EYbp7ypM
WindowsでEXEファイルを実行したいのですが exec関数は使えるのですか>
> リア厨 マジ!?(;´Д`)
548 :
nobodyさん :03/03/04 04:36 ID:OXFQovKc
そろそろ高校入試って終わってない?
>>547 マジなのかなぁ。
>>549 は見る必要なしです。広告のバナー集です>ALL
551 :
nobodyさん :03/03/05 00:41 ID:5JBlRiko
わざわざコピペ宣伝クリックしてみんなにアドバイスしてる
>>550 晒しage
552 :
山崎渉 :03/03/13 17:08 ID:???
(^^)
552 :山崎渉 :03/03/13 17:08 ID:??? (^^)
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < 文字コードのおはなし
(ニE(#つo⊂#)
なんか順番が前後しちゃうような気もするけど、文字コードについて説明するね。
文字コードには、 Shift_JIS と JIS と EUC が主にあるよ。
Windows では、メモ帳で入力すると、Shift_JISとして保存されるよ。
Windows のデフォルトは Shift_JIS なんだ。
じゃあ、掲示板に投稿されたとき、 Windows じゃい OS から書きこまれたら、
別の文字コードになって、それを Shift_JIS として扱うから、
【文字化け】しちゃうことがあるんだ。
じゃあ、どうしてやるのがいいのか。
書きこまれたときに、「文字コードを変換」してやるといいね。
jcode.pl っていうライブラリをここで紹介しておくね。
ttp://srekcah.org/jcode/ 他にもいろいろ方法があるけど、とりあえず一番楽かな…
require "jcode.pl";
&jcode::convert(\$xyz, 'sjis');
こうすると、 $xyz を Shift_JIS に変換することができるよ。
次回は実例をあげてみるね。
他にも機能があるよ。
ttp://www.mikeneko.ne.jp/~lab/kcode/jcode.html
長い間保守ありがとうね。
>>538 えっと、ボクも普段は使わないんだけど、
他の関数を組み合わせるときは、つけるようにしてるよ。
>>539 ごめんね
これまですごく忙しくて
>>542-544 うん、そうだよ。だから忙しくて…
>>546 ボク、CGIぐらいしかいじったことないから、
そういうことはちょっとわからない、ごめんね
>>547 嫌だった?
>>548 14日だったんだよ
兵庫県は他より遅くて…
おお、ついに復活ですか。 あゆちゃんの中の人、なんか知らんけどお疲れさま〜。
で、合格発表ゎ?(・∀・)ニヤニヤ
あああ
> 削除人 乙〜
>>546 system関数使うといいんでない
$ex = "c:\nantoka\nantoka.exe";
system ($ex);
openを使うときもあるけどたいていはnkf+sendmailを使ってメールを
飛ばすぐらいかなぁ
>>556 【「中の人」終了のお知らせ】 利用者各位
平素は「中の人」をご利用頂きありがとうございます。
長らく皆様に御愛用頂きました「中の人」ですがその役目を
終えたと判断し、このたびサービス終了の運びとなりました。
現在新規サービスを計画中ですので今後とも宜しくお願い致します。
tes
> 削除人 乙〜
おー!3げと。
早く教えてほしいぽ ♥
ワラタ メール公開してるし
4なのかよ!!Part.4だし。なにいってんだ。
まず自己紹介きぼん
こっちはどうしたよ?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
アフォ
なんかそういう人形が大阪の食い物屋の店頭にあるよな。
良スレの悪寒!!
CGIってなんですか?なんかあちこちでCGIといえばperlとかCだとか言われてますけど 何の事かさっぱりわかりません。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < COMMON GATEWAY INTERFACE ((ニE/⌒ヾ∞"ヽ Httpサーバとプログラムを繋ぐためのインターフェース規格(?) (こ) ∞ |こ) CGIの条件とは | ∞,| ・そのサーバで実行できる形式である。 | ∞,| ・標準入力/出力を扱える。 | ∞,| ・環境変数を取得できる。 | ∞,| なんだよ。 | ∞,| | ∞,| これさえ満たしていれば言語は問われないんだ。 | ∞,| テキスト処理が得意なPerl君と高速で使える人が多いC君が | ∞,| 主に使われてるよ。 | ∞,| | ∞,| もちろん、PascalやLISP(?)、RUBYなどもOK。 | ∞,| WIndowsNTがサーバならVBもつかえるんだよ。うぐぅ。 | ∞,| \____________ | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
で、できる
上手な食い逃げの方法教えてください。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 逃げる直前まで、「お金を払うよオーラ」を出すんだよ。 ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| | ∞,| く__∞,ノ し' し'
一行レスの時は胴体短くして下さい。 容量の無駄ですし。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 了解です。 ((ニE/⌒ヾ∞"ヽ \____________  ̄し'し'  ̄
あんた、極端だな(笑)
す、すげぇ・・・ マトモ過ぎるレスが返ってきた・・
うぐぅ。もう学校の時間だよう。 どこに通ってるかって?秘密だよ♪ あゆがわかる簡単な質問なら答えるよ。
うぐぅ。一人称は「ボク」だね。失敗失敗。
あゆ萌えJAPUさんはキモいですか?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 何でも聞くべし。 ((ニE/⌒ヾ∞"ヽ \____________  ̄し'し'  ̄
{print;shift;{}{}shift;shift;map @hoge;white(-1){shift;shift;}}
無限ループ。
うぐぅ。
whiteってどんな関数だよ。
ぐは、whileじゃなかった・・・。無限ループ発言撤回。
うぐぅ。
サーバーサイドのエロゲやりたい
Cをとっても意識したつくりと思われるperlですが、 どうしてelsif,last,redoなんですか
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < パクったんじゃなくて意識しただけだからだよ。 ((ニE/⌒ヾ∞"ヽ 自分がこっちの方がいいと思ったら変更すればいい。 (こ) ∞ |こ) Perlは効率を優先した言語だからね。 く__∞,ノ else ifとするより2文字稼げる? し' し' 多分コンパイルの時点で最適化されるのかな? \____________
Perlで記述したCGIの、状況に応じた各種テスト方法の オススメを一通り教えてホスイ マヂで (逆でもOK、 :このテスト方法はこういうときに便利) モジュールいろいろ豊富なのはイイんですが、 オレみたいなヘボーンPGはどれを選んで良いのか、 上手い答えがなかなか出せませんので、参考にさせてください
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 基本だけどテストケースをしっかり作ってホワイトボックステスト。 ((ニE/⌒ヾ∞"ヽ 職業プログラマじゃないからあんまり詳しくないよ。うぐぅ。 (こ) ∞ |こ) く__∞,ノ し' し' \____________
CでCGI組みたいんだけど、なんか参考になる本かページないですか? 主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?
うぐぅ、名前とアドレス欄間違えた‥‥アフォだw
ありがとうございます。 たしかにelsifもlastもredoも文字数は少ないですね
_ _ 〃┏━━ 、 >− ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 変なこと言うけどPerl/CGIの入門書。 ((ニE/⌒ヾ∞"ヽ 上にも書いたけどCGIはある条件さえ満たせば言語は問われないんだ。 (こ) ∞ |こ) 無理してCでの入門書を探すより腐るほど出てる詳しいPerlでの本の方が参考になるよ。 く__∞,ノ 上にも書いたけどPerlはCとかなり似ているから結構読めるよ。 し' し' 暇だから簡単にまとめておくね。 POSTの場合、データは標準入力に入る。 GETの場合、データは環境変数QUERY_STRINGに入る。 リモートホストなどのステータスは環境変数に入る。 出力は標準出力に対して行う。 出力の前にprintf("CONTENT-TYPE: text/html\r\nr\r\n");を忘れないでね。 うぐぅ。あんまり祐一の役にたてなかった気がするよぉ。
>主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ? (1) CでCGIを組めるサーバは一般人用にはあまりなく、従って売れ行きが期待できない (2) CGIは結局引数というか、動作条件を環境変数から得てテキスト(HTML)を吐く ある意味ごく普通のプログラムが基本である あたりかな。
タイミング良いね。
追加 _ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < Perl >>>>>>>>>>>>>>>>>>> Cだからだよ。 ((ニE/⌒ヾ∞"ヽ 可変長のデータ扱うことが多かったり文字列を分割することもしばしば。 (こ) ∞ |こ) 言語仕様は妙だけどテキスト処理に強いPerlの方が簡単にかけるんだ。 く__∞,ノ けど、その代償は大きくて処理速度とシステム負荷は大きい。 し' し' それで、高速かつふざけた量のデータを処理する場合にはやむなくCを使うんだ。多分。 それと、Cがコンパイル言語だと言うことも問題だよ。 CでCGIを組んだ場合、サーバで動くコードにコンパイルしなくちゃいけないんだ。 (たまに.cを.cgiに変えたのに動きません。ってかわいい初心者がいるね。) でも、無料または一般用プロバイダが提供するサーバでGCC(CC Cコンパイラ)を 提供しているところはtok2しかないよ。うぐぅ。 そもそもtelnetが使えるところも少ないんだよ。 ローカルでサーバと同じOSを使えばいいんだけどスマートじゃないよね。 (クロスコンパイルという手もある。) その点Perlはインタプリタ(正確には違う。)。ソース互換は大抵の場合保証されているからお手軽なんだ。 C/CGIの教科書を書こうとすると、 「サーバ上でgccを使うってどうやるんですか?」 って質問が殺到するから書きにくいのかもね。
色々と回答ありがとうございました。 標準入力/出力と環境変数の取得方法(のページにしっかりあった)さえ知ってれば 普通に組めそうれすね(当方、Perlはそこそこ書けるのでした) 本がないのは結局、CのCGIが一般向けじゃないってことですかね。
Perlが正確にはインタプリタじゃないってのはどいうこと?
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < ソースは忘れたけど、スクリプト実行時にコンパイルしてその後に実行してるんだって。 ((ニE/⌒ヾ∞"ヽ 怖い人たちにたたかれたらやだから思わせぶりな書き方にしちゃったよぉ。 (こ) ∞ |こ) ごめんなさい。 く__∞,ノ し' し' 案外あるんだね。gcc OKのところ。
たしかにかまやつに似ているなぁ(笑)
正規表現の最後のoってあるじゃん。 m/foo/bar/o <-これ これとか、コンパイルする部分とその場で実行する部分があることを感じさせてくれるよね。
なるほど、一つ賢くなったよ!
____ /∵∴∵∴\ /∵∴∵∴∵∴\ /∵∴<・>∴∴.<・>| |∵∵∵/ ○\∵| |∵∵ /三 | 三| | / ̄ ̄ ̄ ̄ |∵∵ | __|__ | |< うるせー馬鹿! \∵ | === .|/ \____ \|___/ ______.ノ (⌒) //::::::::|-、 ,-/::::::ノ ~.レ-r┐ / /:::::::::::| /:::::ノ__ | .| ト、 | /:::::::::::::::| 〈 ̄ `-Lλ_レ′ レ::::::::::::::::::|/:
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ TーT リ < うぐぅ。 ((ニE/⌒ヾ∞"ヽ (こ) ∞ |こ) く__∞,ノ し' し'
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < ((ニE/⌒ヾ∞"ヽ \却下。うぐぅ。 (こ) ∞ |こ) く__∞,ノ し' し'
それは「変数展開は最初に実行したときのみ」って意味で、 コンパイル時に評価されるわけじゃないでしょ。 コンパイル時に実行/評価されるのはBEGINブロックね。 for (0 .. 9){ BEGIN{ print "begin\n" } print "loop: $_\n"; }
FORTRANやCOBOLでもCGIって組めますか?
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 却下されちゃったから引き続きボクだよぉ。 ((ニE/⌒ヾ∞"ヽ はっきり言ってFORTRANもCOBOLも使ったこと無いよ〜。 (こ) ∞ |こ) 上の方で書いたけど、 く__∞,ノ し' し' ・サーバで動く形式(ファイルを叩くだけで実行出来ること。 RUNの必要なBASICなどは不可。) ・標準入出力が扱える。 ・環境変数が扱える この3点が可能ならCGIとして使えるよ。 でも、標準入出力や環境変数って言う概念のないOSではこの限りじゃないよ。 FORTRANなら何となく出来そうだよね。
期待age
packageってどういう時に使えばいいんですか? いまいちよくわからない・・・
#!/usr/local/bin/manko /*このスクリプトは画期的な新言語「MANKO」を使用しています*/ %doutei = @; @ key ->> .* whitebase(%doutei){printrash "%doutei";} /*最後の処理*/ lastescape; sub manko{ $kekeke = 1; hyperif($kekeke){print "ギコハハハ";} } __DEAD__
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 基本的にはネームスペースの分離だと思うよ。 ((ニE/⌒ヾ∞"ヽ ネームスペースってわかるかな?名前空間とも書いてあるね。C++とかは。 (こ) ∞ |こ) 例えばtest.plをrequireするnamespace.plがあるとするよ。 く__∞,ノ test.plにはayuayu()っていうサブルーチンがあるとすると、 し' し' namespace.plではayuayu()と言うサブルーチンは定義出来ないんだ。 プログラムはプログラマがどっちのayuayu()を呼び出したいかわからないからね。 と、言うことは、人が作ったライブラリを使うときには細心の注意が必要。面倒だよぉ。 そこで登場するのがパッケージ。これはある名前群をグループ化出来るんだ。 例えば、ayuayu()がtsukimiyaと言うパッケージ内で宣言されたとすると、それはtsukimiya::ayuayu() となって、何もないayuayu()とは区別されるんだ(何もないはMain::に属していることになるよ。たしか。)。 こうすれば、他のライブラリのことは全く気にせず名前を付けられるようになるよね。 もちろん、パッケージ名は他とだぶらないようにする必要があるけどね。 ところで、変数とサブルーチンをグループ化する機能ってどこかで見たことない? そう、C++などのクラスだよ。 Perlのクラスはパッケージを使って実現されてるんだ。 でも、そのおかげでPerlのクラスはわかりにくい・・・って言うのがボクの私論だよ。
デフォルトパッケージはMainじゃなくmainな。 ついでにmainは省略できるので$::fooとか ::bar('arg')とかできる。 つーか知らないんなら調べてから書け。もしかして猫と同一人物か?
大文字小文字で怒るなよ・・・重箱?
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! | うるせー馬鹿!うるせー馬鹿!うるせー馬鹿!うるせー馬鹿! ∧ ∧ |/\_________ (,,゚Д゚)____. (つ/~ ※ ※ \ /※ ※ ※ ※ \
Perlの話ですので非Perl使いは黙ってててください。
なるほど・・・。 勉強になりました。 ありがとー。
突っかかりたい年頃なんだよ 相手にするな
顔がののたんです
良質スレあげ ちと質問なんだけど、SSIでPerlスクリプトを叩くとき、 スクリプト自体の絶対アドレスってわからんのかな? 環境変数にはHTMLのがはいってるし
$0 とかでわからなかったっけ?
一緒にすんな!!ボケ
$0 だとファイル名になってしまう・・・ やはりTelnetでPWDして調べるしかないのかの
$pwd=`/bin/pwd`;
もしコマンドが許されてなくて が駄目なら Cwd.pm なんかが ディレクトリを一個一個上がっていって調べてくれるらしいですが・・・ 詳細は知らぬ。それと SSI は知らぬ。スマソ
こんなんでいいかな? my $path = ($ENV{SCRIPT_NAME} =~ /(.+\/)[^\/]+/)[0] . $ENV{_}; $path =~ s!/\./!/!g; print $path;
サンクスコ。うまくいったよ。というか標準ライブラリ覚えてなさ過ぎだな。 ,80 環境変数もコマンドも変な値返してくるサーバーだったのね。 どうでもいいけどあゆあゆどこいったのかな? 変な厨房が追い出したとか書いてあったけど
オールラウンドプログラミングvol.3 C/C++300の技 技術評論社 ISBM4-7741-1312-3 1980+税 青緑っぽい本。 わかりやすい本だとは言わないけど、CでCGIをやる場合の サンプルコードとかが載ってるから、参考にする程度ならいいかも。
read.c だけ見たけど、 初期とずいぶん変わったねー
はあゆにジェラシー(藁
うぐぅ・・・祐一くんおどかさないでよ・・・
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < うーーーーーーーーーーぐぅぅぅぅぅ ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ;゚∀゚ リ < うぐぅ、ネタだけどありがとう し' し'
japu逝ってヨシ
なんか最近顔が変わった?
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < うーーーーーーーーーーぐぅぅぅぅぅ ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ゚∀゚ リ < ウグゥ━━━━━━(゚∀゚)━━━━━━ !!!!! ((ニE/⌒ヾ∞"ヽ \ (こ) ∞ |こ) く__∞,ノ し' し'
_ _ 〃┏━━ 、 | ) パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ;゚∀゚ リ < うぐぅ、ボクは別人だよぅ し' し'
月宮先生は、Perl歴何年ですか? 何冊Perlの本を持っていますか? Perl使えるようになるポイントは何ですか?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < ケント・パイプカットとつくろう!PerlでCGI。これ一冊で十分。 ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
背中にヘリコプターのハネ付けてるのですか?
Perlを習うための心構えとは? どうぞ。
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < あくまでこれは方言だと心得るべし。 ((ニE/⌒ヾ∞"ヽ 気がついたら「ハッシュと正規表現無いと死ぬ」みたいなプログラマはダメだよ〜 (こ) ∞ |こ) \____________ く__∞,ノ し' し'
でも便利なんだよな・・・。
ハッシュと正規表現無いと死ぬ〜
★が目に付くなー ★が チカチカイライラ・・・
俺もキャップ欲しい
てへ
うるせーバカ
白星なのに怒られたよあうあうあ〜
Perlを習得するには何が必要ですか?
Kentサマへの崇拝
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < OSとPerl処理系とエディタ(うぐぅ、あたりまえだよ〜)。 ((ニE/⌒ヾ∞"ヽ 後、参考書は一冊買っておいた方がいいよ〜。 (こ) ∞ |こ) すぐわかるPerlがおすすめ。 く__∞,ノ でも、オブジェクト指向とかパッケージには触れてないから注意。 し' し' CGIは書けてもここの話には付いていけないよ〜うぐぅ。 \____________
いよぅ!かまやつ! むっしゅむらむら
Perl神の降臨を待つのみです。 さあ、祈るのです。
ヘリコプターをなぜつけているのですか?
for($i=0;$i<50000;$i++){ &openfile($file); # openfile は $file を開いて @in に代入する関数 foreach(@in){ s/a//g; } } これでね、$file を10KB と 100KB のものにした場合、なぜか10KB のものの ほうが処理時間がかかっちゃうんだけどこの理由わかりる?
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 今回は自分の発想を大切にしようと思い、掲示板とかの作り方に関する本は読んでないよ。ボク。 ((ニE/⌒ヾ∞"ヽ 唯一読んだのが「すぐわかる」。 (こ) ∞ |こ) 他の言語本と比べてもかなりいい本なので大推薦したの。 く__∞,ノ し' し' 正解。PerlでCGIというインターフェースに則ったプログラムを書くんだよ。 後、あゆ、ヘリコプターじゃないもん。 \____________
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ <後、ムッシュかまやつでもウド君でもないもん! ((ニE/⌒ヾ∞"ヽ (こ) ∞ |こ) く__∞,ノ し' し' \____________
|| || _|| 〃┏━━ 、 | ┃ メ | | ┃ | | | ┃ テ | | ┃ ル | | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´_ゝ` リ < ウグググググゥゥゥ.... ((ニE/⌒ヾ∞"ヽ \____________ (こ) † |こ) 《《く__∞,ノ |O| |O| |O| |O| |O| |O| |O| |O| |O| |O| し' し'
ワラタ
age
10kbのファイルは1万行で100kbのファイルは1行とか?
目障りだな。規制以来出すか。
今朝の13話、話がよく分からなかったのですが。。
_ _ 〃┏━━ 、 | ノノソハ)))_ /リリ ´ー`)リ/\ うぐぅ /| ̄ ̄ ̄ ̄ ̄|\/ |愛媛みかん|/
採用
ほれ、テンプレ \____ ______/ ∨ _______ _ ボコッ。 ____ 〃┏━━ 、 _γ⌒⌒ヽ、 ____. | ノノソハ)))ヾ \ノハ)ヽ)) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ___(\リリ;´Д`)リ#]つ)○);´Д`) < 痛いですぅ〜。 ___(ニE( #]つo"/ ⊂[||L[X⊂[||) \________ ___∠__∞__/ く7ココココヘゝ ___ し' (_f) (゚_(゚_)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
__ //´ ̄ ヽ / ̄ ̄ ̄ ̄ ̄ i ノリノ)))〉 | , '^ ーノl(l!゚ ヮ゚ノリ‐' ヽ < 嫌っ ノ , リノjjノ'(.II 中.II)jルjソi | ('"´ "^く 中| ノ \_____ ` じ'フ
奇跡でみずほタンを何とかしてください
_ _ 〃┏━━ 、 | ノノソハ)))_ Perlじゃむりだよぉ /リリ ´ー`)リ/\ うぐぅ /| ̄ ̄ ̄ ̄ ̄|\/ |愛媛みかん|/
age
ペーペーなんですが、サルでもわかる参考書教えてください。
うぐぅ。過去ログ読んで酔う。
ありがとござました
うぐぅさん、厨な質問をきいていただけますか?
あげ
ほぜん
<html><head><title>KANONの魅力</title></head> <body>すべての始まりは秋子さん<br> <img src=Akiko.jpg><br>そして伝説が始まる… </body></html>
チェックの結果は以下のとおりです。 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
あゆがいねえー
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ ´ー` リ < 帰ってきた ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
(=゚ω゚)ノぃょぅ
久しぶりに来てみた。
ネットの好きな人私たちと、ビジネスを!!!!
一般の会社の流通コストの部分を参加者に還元をすることにより成り立つ
ネットワークビジネスは、何人かの識者が本などで発言しているのを読ん
でみると、人間的かつ将来有効なシステムだと感じます。
実際、有名な大会社でも参入しています。
コンサルタント、マーケティングのプロの中のプロである船井幸雄氏も、
ネットワークビジネスとそれに携わる個人にすばらしい可能性を見出して
います。 興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html [email protected]
perlのCGIにhttpさせるやり方教えてください。
use LWP::Simple; or use LWP::UserAgent;
さん ありがとうございます。まだ意味がわかりませんが その言葉で検索かけてみます。
httpって何だろうと思ったが、httpを使った通信ですか。
懐かしいスレがあがってますな。うぐぅ。
月宮さーん がんばってね。
うにゅ
age
perlについての質問です。実行するとたとえばユーザー名、パスワードを送信してくれる プログラムを作りたいのですが、どのようなライブラリ、関数を使えばよいのでしょうか? キーワードだけでも教えてください、お願いします。
ネタスレに書くなよおめー。 それと質問が意味不明だ。
s
asdkasp
さいならっきょ
もう終わりですか?
相手次第。ネットワーク越しかい?
メールなら sendmail で検索して調べる パスワードをランダムで生成する @letters = ("0" .. "9", "a" .. "z", "A" .. "Z"); srand; $password = ""; until(length $password == 8){ $password .= $letters[rand ($#letters + 1)]; }
$password .= $letters[int(rand ($#letters + 1))];
psdfps
test
testestestestest
testing....
sexing
homosexual
SEX
sex-siyo-yo
なんだこの厨房は。
こいつは一体何がしたいんだ。
-‐- 、 ,' /二二 ヽ/⌒l ___________ i イノノノ))))〉=ヲ < の答えがわかりません。 ! (l| i] i] || / | (\ ノノノlゝ"フノ!! / (∃/ヽ ^||iii》, / ( ゝ 》⌒)中 | [ ̄「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| || ̄||fZZZ7⌒)⌒ヾゝ,. ̄`|| || ||ニ:Iニ/_7ニヒコ || || ||| ||/:::::/ ||\:::ヽ || || ||| |に~⌒).|| (⌒”) ||
ボクが乗っ取っちゃおうかな
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ
(ニE(#つo⊂#)
乗っ取ることにしちゃったよ。
本当にゆっくりのペースでボクといっしょに勉強していこうね。
実はボクもまだまだ初心者なんだけどね。。
「こういうのはどうやるの?」っていうのは他のスレで聞いてね。
ボクがここで言ったことに対しての質問はここで聞いてくれていいよ。
WebProg板、だから、PerlでCGIを作るってことを前提に進めていこうね
質問があったら、このスレに書き込んでくれたら、
ボクに分かる範囲なら答えられるかもね
あ、最低限HTMLの知識は必要だからそのへんよろしくね。
あと、フリーのCGIでもいいから設置経験があったらいいね。
少しでも中をいじってみたことがあるっていうならなおいいね。
あと、わかりやすくするためなら、かなり強引な解釈で説明してる
ところもあるけど、とりあえずはあまり気にしないでね。
自分でCGIを作る、っていうのは、とても危険なことなんだ。
例えば、お金も持ってないのにたい焼きを買うくらい。
下手をすると、サーバーをダウンさせたりすることもできるから、
自分で作ったものはちゃんとテストして設置しないとダメだよ。
ttp://www.kent-web.com/www/ ここのページで、CGIをローカル(自分のパソコン)で動かす方法を
紹介してるから、参考にしてやってみてね。
じゃあ、今日の話はこのへんで終わるね。
おわ。久々に昔の感じだな。
のAAのがいいね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <ヘッダとボディ (ニ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 っていうのは、「表示する」ってことだと、とりあえずは 思っててくれて大丈夫だよ。 またあとの方で、詳しく説明するからね。
漏れはContent-type: text/html\r\n\r\nって感じでセミコロン書いてないが、別に問題無いかな?
できることなら Content-Type: text/html; charset=EUC-JP のように charset も出してあげませう。
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ <何か表示してみよう(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 細かい解説は次にしていくね。
ちょっとよく意味がわからないけど… ちゃんと動くならそれでいいとおもうよ 文字コードの話はもうちょっと後で お話ししようと思ってたんだけど…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <何か表示してみよう(2:解説) (ニE(#つo⊂#) □ 文 1行を「文」って呼ぶよ。最後には、必ず ; をつけてね。 これは、英語の文の最後にピリオド . がついているような感じ。 文の最後にはつけるようにしないと動かないよ。 ボクもたまに書くの忘れてエラー起こしちゃうんだ。 □ #… # よりあとは、コメントになって、あってもなくても同じだよ。 HTMLの、 <!-- --> みたいな感じだね。 □ \n \n は改行を表すよ。PerlでCGIを作るときには、 出力する【HTMLソースが改行されるだけ】だから気をつけてね。 表示上、改行したいときは、 <br> を使わないといけないよ。 □ print "●" ● の部分に、表示したい文字を入れるよ。 ファイルハンドルっていうものに関係があるんだけど、もっと後でね。 □ exit 【スクリプト】を終了させるときに使うんだよ。 これがなくても最後までいったら自動で終了するけど、 構造が複雑になってきたら見にくいから書く習慣があった方がいいね。 これで君もPerlプログラマーになれたんだよ。 でもこんな文字を出すだけなんてこと、HTMLでやればいいよね。 次はあんまり面白くないけど、Perlだからできることを勉強するよ。
楽しいですが、何か?
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <変数、配列、連想配列(1:説明) (ニE(#つo⊂#) じゃあ今回は、変数、配列、連想配列のみっつを覚えようね。 今回は簡単だから説明だけ聞いてね。 次回は使い方を説明するよ。 変数…例えれば、メモ帳1枚に名前をつけたもの。 自由に書いたり、消したり、書き換えたりできるよ。 「スカラー」「スカラー変数」とかいうこともあるよ 「abcの紙」みたいに指定できるよ。 「abcの紙」って指定したいときは、 $abc って書けばいいよ。 配列…例えれば、名前をつけたメモ帳1冊。 0ページから始まって、何ページでも増やせるよ。 「リスト」とかいうこともあるよ。 「abcメモ帳の2ページめ」みたいな感じで指定するよ。 こんなふうに指定したいなら、 $abc[2] って書くといいよ。 連想配列…例えれば、名前がついたメモ帳1冊の紙1枚ずつに、 それぞれ名前違うがついたもの。 「ハッシュ」っていうこともあるよ。 「abcメモ帳のxyzのページ」みたいに指定するよ。 こんな感じなら、 $abc{xyz} って書くことができるよ。 次は簡単な例を見てみようね。
200だね
何気に続いてるんですね。気にしてなかった…
ハイレベルな話題も希望
まだ、このスレあったのか
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <変数、配列、連想配列(2:実行例) (ニE(#つo⊂#) □ 変数への書き込み方 $abc = "うぐぅ"; こんな感じにすると、【変数】 $abc には、 「うぐぅ」という 【文字列】が書き込まれたことになるよ。 同じように、 $abc[0] = "月宮あゆ"; # 配列 $abc{def} = "水瀬名雪"; # ハッシュ みたいなこともできるよ。 □ 変数からの読み込み方 たとえば、 $abc の内容を表示したいっていうときは、 print "$abc"; ってかくとできるよ。 他にも方法はあるけど、とりあえずこれだけ覚えてるといいかな。 ここまでの説明なら、「こんなものが何の役に立つかわからない」と 思う人が多いと思うけど、【変数】がなかったら、何もできないよ。 じゃあ次からは実際に使用例を見ていこうね。
うぐぅ ハイレベルな話題は、たぶんボクにはできないかな… うぐぅ
これくらいの初歩からやってくれた方が漏れにとってはいいよ。
ストーブはどう作るの?冬にかけて
漏れも同じ sage進行でマターリとおながいします。>ALL
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ <時計を表示してみよう(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 詳しい解説は次にまとめてするね。
うん、ボクと一緒に勉強しようね そういう会社に入ってみればいいんじゃないのかな マターリやっていこうね、よろしく
こんなきもい時計やだよ
同感。まあ、糞言語らしいといえばそうかな。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <時計を表示してみよう(2:解説) (ニE(#つo⊂#) 算術演算子(1:加法演算子) Line 5:カッコの中は、秒,分,時,日,月(※1),年(※2)でできてるよ。 localtime で、時間を変数に書き込むんだけど、 これは丸覚えでいいよ。また今度詳しく説明するね。 この例では、6個の変数にそれぞれ書き込んでるよ。 Line11:print の中には【変数】を書くこともできるよ。 その【変数に書き込まれてる文字や数値】を表示するよ。 ※注意 月は、実際の月より、1少なくなってるよ。 実際、表示に使うなら、1足して使ってね。 同じように、年は、西暦より1900少なくなってるよ。 【変数】を計算(この例なら月に1を、年に1900を足す)するには、 次のように書くだけで簡単にできるよ。 $mon ++; $year += 1900; ● ++ っていうのは、変数●に1を足すっていうことだね。 $mon += 1; と書いてもできるよ。 ● += ◆ で、変数●に、数値◆を足すっていうことだよ。 ぜひ年と月も表示できるように改造してみてね、答えは次回書くよ。
質問です。 foreach(split(/<>/,$line)){} は必要な部分を順に取り出しているのか、 それとも一度無名配列に入れるようなことをしているのか教えてください。
後者じゃ
しくしく。ありがとうございます。変数が大きいのですが、 substrは毎回先頭から数えているような感じがするのですが、 変数使用を少なくする場合これしかないのでしょうか。
index で'<>'をサーチ位置指定でやって、substr で部分取り出し
どうもありがとうございました。
#!/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; こうかね。
あゆあゆ以外が質問に答えるなよばか!
スレッド・ストッパーキタ━━━━(゚∀゚)━━━━!!!! ↓
↑ごめん 222ゲトー
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <時計を表示してみよう(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; ---------------------------------------------------------------- 今回はもう行数がなくなっちゃったから終わりだけど、 次は曜日を表示してみようね。
うん、そうだね。 ボクもわからないことが多いからね… ストップされちゃうの…?このスレ…
↑トリップ間違えました
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <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 = "土";} == っていうのは、左辺と右辺が等しい、っていう意味だよ。 このへんを使って、曜日を出してみてね。答えは次回載せるよ。
#!/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;
$year/$mon/$day($you) - $hour:$min:$sec の方が綺麗だな。
#!/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;
#!/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;
確かにそりゃ正解だけど配列とかその辺になってからだよそれは・・・・・
#!/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;
perlのパスは俺の場合/usr/bin/perlなんだよ・・・。 エスケープ忘れてたし・・・。 でも""の中で()は一応エスケープされてると思うんだけど。 ちゃんと実行して検証しているし。 やっぱエスケープは礼儀ということか・・・。
だからまだ習ってない配列とか先に進むなっての(;´Д`)
_ _ 〃┏━━ 、 | ノノソハ))) / ̄ ̄ ̄ ̄ Λ_リリ ;´∀`)リ < うぐぅあげ♪ ( ⊂#~ ∞~~#⊃ \____ ( つ/_∞__|~ |(__)_) (__)_)
他で習ったよ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <曜日を表示 (ニE(#つo⊂#) が答えだね。。 配列とか使ってやるのは、もっと先に応用例としてあげたいから、 勝手に応用を使わないでほしいな… 今日の夜くらいに続きをあげようと思うけど、次考えてないんだよね… ちょっと考えとくね
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <配列の扱い方 (ニ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] 曜日"; ってこんな感じで曜日が出るね。 行数がなくなったから簡潔でごめんね。 次回は、ひととおり計算ができる、算術演算子をやるよ。
補足しておくと、配列の全部は、 @ をつけて表すよ。 配列の中のひとつだけ、は、 @ じゃなくて $ をつけて、 [0] みたいな【添え字】をつけるよ ってことだね
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <算術演算子(2) (ニE(#つo⊂#) これぐらいはひととおり、全部覚えてね。 数学でおなじみの、計算ができる演算子だよ。 ● = ◆ + ★ 数値、◆と★を加算(足し算)した値を●に代入するよ。 ● = ◆ - ★ 数値、◆から★を減算(引き算)してその値を●に代入するよ。 ● = ◆ * ★ 数値、◆に★を乗算(掛け算)してその値を●に代入するよ。 ● = ◆ / ★ 数値、◆から★を除算(割り算)してその値を●に代入するよ。 ● = ◆ % ★ 数値、◆を★で割った、余りを●に代入するよ。 ◆と★は小数なら、小数点以下は切り捨てられて計算されるよ。 ● = ◆ ** ★ 数値、◆の★乗の値を●に代入するよ。 優先順位についてちょっと説明するね。 実際の数学と同じように、加算、減算は、後回しにして計算されるよ。 先に計算したいなら、 ( ) でくくってみてね。 じゃあ次回は、 for でのループ(繰り返し処理)について説明するね。
あゆた〜〜ん
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ <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 は等しい ) ● != ◆ … ●と◆が数値として等しくない ● < ◆ … ●が◆より小さい ● > ◆ … ●が◆より大きい ● <= ◆ … ●が◆以下 ● >= ◆ … ●が◆以上
ど、どうしたの…?
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < while / until / next / last (ニE(#つo⊂#) while / until っていうのは、どっちもループだよ。 じゃあまず、文法の説明をするね。 while ( ● ) { ◆ } until ( ● ) { ◆ } ● … 式 ( 後述参照 ) ◆ … 繰り返す処理 どちらの場合でも、● は、比較演算子を使った条件を指定するよ。 数値比較演算子じゃなくって、文字列比較演算子っていうのも あるんだけど、それは次くらいに詳しくみてみるよ。 while は、英語で、【〜の間】だね。 Perl でも、条件●が成立する間、◆を繰り返すことになるよ。 until は、英語で、【〜まで】だね。 ●が成立するまで(=●が成立しない間)、◆を繰り返すよ。 next / last は、ループを途中でやめたりするのに使うよ。 next は、現在のループを終了して、次のループに入る、っていうこと、 last は、全てのループからただちに抜け出す、っていうことだよ。 じゃあ次回は実例を見てみようね。
ここまでは普通についていけるな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ループと文字列比較演算子 (ニE(#つo⊂#) こんなことをすることは少ないと思うけど、例を挙げるね。 $hoge = "aaa"; until($hoge eq "aaaaaaaaaa"){ $hoge = "a$hoge"; } この例では、変数 $hoge の前に、次々に "a" を追加していってるね。 "a" が10個並んだところでループ終了だね。 どんな時に、条件に一致するか (真偽) については、次回説明するね。 これも条件で使われるよ。数値として比較する数値比較演算子とは違って、 文字列として比較する、文字列比較演算子っていう名前があるよ。 ● eq ◆ … ●と◆が完全に一致 ● ne ◆ … ●と◆が一致しない ● =~ /◆/ … ●に◆が含まれる …(※) 他にもあるんだけど、これだけ覚えてれば十分だよ。 ※本当は、【正規表現】っていう新しいことなんだけど、 よく使いそうだからここで一緒に覚えようね。 正規表現は、近いうちに勉強するよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 真と偽 (ニ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 を勉強しようね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 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 "その他";} このへんはとっても重要だから、しっかり覚えておいてね。
おもったより続いてますねぇ 頑張ってください^^;
ついでですが…保存予定ですので宜しくお願いします。m(_ _)m
ごめんなさい…ageてしまった…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (1) (ニE(#つo⊂#) 正規表現っていうのを勉強するよ。 ちょっと難しい、ってよく言われるけど、そう思わずに しっかり読むと必ず分かるから、とりあえず読んでみてね。 正規表現は、柔軟なパターンマッチをすることができるよ。 例えば、特定の文字が含まれるかどうか調べたり、 文字の置き換えをしたり、またあとで勉強するけど、 split っていう関数のパターンに使ったりできるよ。 ここはよくわからなくてもいいよ。 わかりやすく説明すると、 ● =~ /◆/★ これで、【変数●がパターン◆にマッチ】っていうことだよ。 【マッチ】っていうのは、簡単に言うと、【●が◆の状態である】 っていうことなんだ。じゃあ、【◆の状態】っていうのを説明するね。 ★については、2回後くらいに説明するね。今はなにも書かいでね。 まず、例は、3回前に勉強した含まれるパターンだね。 ◆には【普通の文字】と、特別な意味のある、【メタ文字】のふたつが使えるよ。 3回前に勉強したのは、普通の文字だけだね。 じゃあ、メタ文字について説明するね。 続く…
…続き . … なにか1文字 * … 直前の文字やパターンの0回以上の繰り返し (いくつあってもよい) + … 直前の文字やパターンの1回以上の繰り返し (必ず1つ以上ある) ? … 直前の文字やパターンが1つだけあってもなくてもよい [abc] … [ ] で囲んだ文字の中のどれか1文字 ^ … 【…で始まる】という意味。パターンの最初に使う。 $ … 【…で終わる】という意味。パターンの最後に使う。 {5} … 直前の文字やパターンの5回繰り返し {3,8} … 直前の文字やパターンの3回以上8回以下の繰り返し 例だよ。 if ( $abc =~ /^def$/ ) { print "マッチ"; } これは、 if ( $abc eq "def" ) { print "マッチ"; } と、同じ意味になるよ。 とりあえず、何の役に立つかわからなくてもいいから、 使い方は覚えておいてね。
うん、ありがとう 頑張るよ ずっと読んでくれてるの? なんだか嬉しいな 別に気にしなくていいよ …みんなはこのへんちゃんと理解してくれてるのかな? わかりにくいところがあったら言ってね。 説明しなおすからね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (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 "アルファベット大文字以外の文字が含まれている"; } 次回は、 ( ) と後方参照について説明するね。 #間違いがあったら指摘してね…
まだなんとかわかるよ。
今のペースでいくとオブジェクトな話になるのは何年後だろう^^;
まあ後は自分で勉強すれば良いだけの話だし、いいのでは? 途中で挫折した香具師多いと思われるから、マターリ進行で…
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (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"; } 次回は、 [ ] を簡略化できる感じの、メタ文字と、 スペースがあまったら正規表現演算子をみてみようね。 今回はちょっと短いけどこれで終わりだよ。
うん、それならよかった 結構かかりそうだよね… そんなに難しい話になるまで続くのかな…? うん、そうだね まあ実用的なスクリプト作れるぐらいになったら終了、かな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 正規表現 (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 とかもあるけど、それはそのとき説明するね。
一行抜けちゃった… 「これでとりあえず、正規表現は終わりだよ、次回は配列操作をやるね。」
>>あゆ ほぼ、一日に1レクチャか、まめだね。尊敬するよ。 下手な日記書いてる奴よっかスゲーなおまい
|こたつから出られなくなる季節です ∧ ∧ |/\_________ (,,゚Д゚)____. (つ/~ ※ ※ \ /※ ※ ※ ※ \
片付けないと炬燵出せません(T-T)
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 配列操作 (ニ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 次回は、ファイル入出力とファイルハンドルについて説明するね。
うん、ありがとう 途中でいきなり終わり、なんてことにならないようにがんばるよ うん、そうだね これからどんどん寒くなっていくからね ボクもこの前こたつ出したよ 香里さんの家ってそんなに散らかってるの… 片づけてあとで温かいこたつに入るときもちいいよ
冬でもアイス美味しいですよ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (1) (ニE(#つo⊂#) 今回はファイルの読み書きとファイルハンドルについて説明するね。 ・ファイルハンドル ファイルハンドル、っていうのは、ファイルを開くときに、ファイルハンドル、 っていうものに結びつけて開くんだ。ファイルに書くときも同じだよ。 これにファイルを結びつけてを作るには、 open っていう関数が一番一般的だね。 ファイルハンドルは、半角大文字でつけるのが原則だよ。 ファイルハンドルを使い終わったら、 close 関数で閉じるようにしようね。 open ★, ◆ close ★ ★ … ファイルハンドル (半角大文字ならなんでもいいよ) ◆ … ファイル名 ファイル◆をファイルハンドル★に結びつけて開くよ。 じゃあ、 "test.txt" の内容を $test にいれて、表示するサンプルを書いてみるね。 open IN, "test.txt"; $test = <IN>; # こうやってファイルハンドルを変数に代入する close IN; print "$test"; Perl の勉強熱心な人は、実際試してみるてね。 今回のプログラムは、いろいろやっていると何か気付くことがあるはずだから、 必ず試しに動かしてみてね。 test.txt の中を書きかえながら。
ボ、ボクはいいよ、遠慮しとく
ヲタとヲタの交流場はここですか?
タイヤキアイス食え。 ここに書き込んだ時点であなたも(以下略 ここの会話がヲタ会話とわかる時点であなたも(以下略
あゆたん、がんがれ。(うぐぅ
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (2) (ニE(#つo⊂#) 前回のスクリプトはみんな動かしてみてくれたかな? いろいろやってみると、最初の1行しか表示されないことに気付いてくれたと思うんだ。 詳しくはそれはもう少しあとでやるね。 今回はファイルに書き込む方法を説明するよ。 open ★, "> test.txt"; こんなふうに、 > をつけてファイルを開くと、書き込みモードになるんだよ。 このファイルに書き込むには、 print ★ "test"; みたいな感じにするよ。 じゃあ、簡単なカウンターを書いてみるね。 行数が入らないから続くよ
-[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; ---------------------------------------------------------------- ちゃんと動かしてみてね。 今回はここで終わりだよ。
たい焼きアイス… あるなら食べてみたいかも うん、ありがとうね
たい焼きアイスはマジであるよ。 数年前CMやってたの覚えてるし、多分うちの近所のスーパーに行けばまだ売ってると思う。 たい焼きの形をした最中の中にあずきとバニラアイスが入ってまつ。 あずきのバニラアイスのハーモーニーがたまりませんです。 余談 自分暇つぶしに2chのTripFinderスレを読んで自分なりのプログラムを組んでみたです。 CPU負荷かかりまくり、でも任意のTrip探す手間を考えれば楽なもんかな?とか思いながら使ってます。 今度taiyakiって入ったIDを探したいです!
あ、ちょっとミスをみつけたから書くね。 恥ずかしい… -[perl0004.cgi]------------------------------------------------- #!/usr/local/bin/perl print "Content-type: text/html;\n\n"; open IN, "log.txt"; $count = <IN>; close IN; $count ++; open OUT, "> log.txt"; # , が抜けてたね、ごめんね print OUT "$count"; close OUT; print "<body>$count</body>"; exit; ---------------------------------------------------------------- そうなんだ、じゃあボクも近くのスーパーに行って探してみるよ ありがとうね
この教室は解り易いよ〜。 楽しみに見てますです。 それとトリップ付けてみました、別に意味はないので・・・ただunyuなだけです。 コンビニでたいやきアイスは発見できませんでした・・・残念です。
今日も頑張ってね。
昨日の教室はなかったのか?
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 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 "$_";} # ● を省略したら、省略の原則、 $_ に入るよ。 この話を応用して次回にもっていくから、絶対に使えるようにしておいてね。
わかりやすい…? そう、かな…? ありがとね うん、頑張るよ 1日1つ頑張りたいけど、無理な日もあってごめんね
.txtで今までの授業全部保存してるよ! すっごく楽しみに見てるよ、これからも頑張ってね。
私も楽しみにしているので、無理せず続けて下さいね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < ファイル入出力 (3) (ニE(#つo⊂#) 今回は複数行のファイルを読み込む方法を説明するね。 open IN, "test.txt"; # 1行だけ読み込む $test = <IN>; # 全行読み込む @test = <IN>; close IN; こんな感じにすると、1行ずつが配列のひとつの要素になるよ。 じゃあ、このファイルの中身を表示するには、 foreach (@test){ print "$_<br>"; } ってやると表示されるよ。 じゃあ次回は、ファイルの読み書きもわかったし、 ユーザーが何か入力したのを受け取って結果を表示する、 ってことを勉強してみようね。
ただの趣味の延長だから、変なところがあるかもしれないけど… 気に入ってくれてうれしいよ、ありがとうね。
※注意 最初にも言ったけど、ここの教室でやっていることは、 【わかりやすくするために多少強引な説明をしている】ところがあるよ。 基本なんだけど、【わかりにくいし使われもしないから省いている】ところも たくさんあるよ。他のサイトとか見てると、戸惑うことも多いとおもうけど、 混同させないように注意してね。
そ〜なんだ、解りました!
すごいね メルマガとか出してみたら?
うぐぅage
うぐぅ、あゆが帰ってきてる。まだ、このスレあったんだ。
まだやってんの?ヲタドモ
カエレ
妄想族
∬ (´・ω・)っ旦 <マターリ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< このスレきもい♪ ( つ \______ (_○___)
煽りは放置の方向でマターリと
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < フォームデーターの受けとり
(ニ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の世界はとっても広がるよ。
次回は、簡易掲示板を書いてみるね。
#投稿が遅れてごめんね
うんうん、よろしくね それもいいかもね わかりやすく書き直して、カリキュラムもしっかり組めたら出してみるかも うん、乗っ取らせてもらったよ WebProg板のスレはなかなか落ちないからね… うんうん、マターリしようね
メールアドレス作ってみたよ 内容についての質問とか要望があったらメールしてくれてもいいよ なるべく返信はしたいけど、忙しくて手が回らなかったりしたらごめんね。
いつもここ見ながら新しいアイディアを模索してるよ。 もう来ないのかと思ったけど、待ってて良かったよ。 メルマガいいね!
…よかった。荒らしを気にしてもう来てくれなくなるかと思った。 気に入らなければ放置してくれれば良いだけなのに…。
なるほど こんな輩がいるからいつまでたってもcgi-lib.plを使う香具師が絶えないんだな
cgi-lib.plって何? マジで使ったこと無いけど、何するもんなの? てか必要なの?
jcode.plやらcgi-lib.plを使うスクリプトが国際網から絶えないので、 わざわざ鯖に入れている鬱、、、
あゆたん、サイトがあったんだね。 今まで知らなかったよ。(うぐぅ
-[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; ----------------------------------------------------------------
↑注意 簡易掲示板のソースだよ。 同じフォルダに、 cgi-lib.pl をいれてね。 ボクは途中で放棄はあまりしたくないんだよね 来なくなることはないと思うよ まあ最初の方はこうやって簡単にやってもいいんじゃないかな? もうちょっと勉強してきたら、自分のスクリプトの中に書いていこうと思うよ。 フォームからデーターを送られてきたのを、CGI側で取得する機能があるよ。 他にもいくつか機能があるけど、代表的なのはこれだね。
今日うぐぅタンのページ見たよ、メアドの時に気づけなかった自分が寒いです・・・。 cgi-lib.plって便利そうだね。 もうちっと詳しく知りたいのでぐぐってきます。
ごめん、レスぬけてたね。。 うん。 ボクの名前でドメインとっちゃった。。 わぁ、ありがとう! まあ、 cgi-lib.pl は便利なことは便利なんだけど、 ちょっと実行したときの効率があまりよくないんだよね。 また今度、 cgi-lib.pl なしで取得する方法を勉強するね。
うぐぅ。 今日タイヤキアイス食った、うまかった。
うは、レスが早い! なんか嬉しい(うぐっ 自分はcgi-lib使わないで取得、エンコードずっとしてきたから・・・必要性は感じないんだけど知識としてね。 またページには遊びに行くよ! なんか雰囲気とかもよかったし、勉強できそうなこととかもありそうな予感。 次回の授業を楽しみにしてます!
具体的にどう効率があまりよくない?
汎用的って事でしょう。
cgi-lib.plではなくCGI.pmを使え、という意味だったのだが。
CGI.pmって207k、、、。 そんなもん、コンパイルしてメモリにロードされるかとおもうと とうてい、使う気にはなれんな。
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < 掲示板 (2)
(ニE(#つo⊂#)
すっごく簡単に掲示板を書いてみたけど、どうだったかな?
やっぱり、機能が少なすぎるよね。
これからはしばらくの間、毎回少しずつ機能を足していく予定だよ。
今回の追加してみる機能は…
・名前欄を作るよ
・メール欄も作るよ
・名無しさんの名前が出るようにするよ
名前、メールは、入力欄を増やして、ログファイルに書き込むように
すれば、簡単にできちゃうよ。
名無しさんも簡単だね。
if(!$in{name}){
$in{name} = "名無しさん";
}
名前欄がなかったら「名無しさん」を代入してるね。
長くて入りきらなくなっちゃったね…
ここには重要な部分だけ書いて、全文はリンクからたどれるようにするね。
ソースはここだよ。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8274/perl/perl0006.txt 読めない、っていうときは、対象をファイルに保存、かソースを表示してみてね。
次回は、新しく置換演算子を勉強して、いろいろなことをやってみるね。
レスが早いのは運だよ cgi-lib.pl は最初だから簡単に取得するために説明してるから、 慣れてきたら自分でやったほうがいいと思うよ うん、ボクのホームページにも遊びに来てね。 ありがとう 317もあるけど、余計な処理をしすぎっていうか、 もっと簡単に短く単純に書けるよね まあ自力でやる方法は今度説明するね。 cgi-lib.pl を使うのも CGI.pm もメリットがあればデメリットもあるよね Perlを考えたアメリカの人は(名前忘れちゃったけど) 「Perlは好きなように書けばよい」っていう言葉を残してるんだから、 人それぞれやり方が違ってもいいと思うな
↑アメリカだったっけ…? 違ってたら恥ずかしいから、とりあえず発言撤回させて…
そっか〜、ありがと 鮎タンのページの掲示板でおみくじやったら「大凶」と「最大凶」ひいちゃったよ・・・。 これも運・・・。
TMTOWTDIはまさにその通り、それはいい。 だが今人に勧めるのなら既に保守更新されていないcgi-lib.plよりも 標準モジュールとして使えるCGI.pmの方が導入は容易だと思うのだが? まあそれでもcgi-lib.pmが良いというのなら、ポリシーは人それぞれだからかまわないが。 滑稽だな。そう思うのならそもそもCGI/Perlを選択するのが間違い。
授業まだ〜?
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < 置換演算子
(ニ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 のなかに " を使いたいときも \" とするといいよ。
このへんのことは、これから先ずっと使うことになるから、必ず覚えるようにしようね。
うん そういうこともあるよ 遅れちゃってごめんね
やっと正規表現まで来たね。 個人的にtrがすごく知りたいよ、まだいまいち理解してないんだよね。(恥 でも正規表現そのものが便利で難しいみたいだし、まだまだ勉強だね。 次回楽しみにしてます。返答ありがと。
でも「/」がたくさんあるといちいち「\/」に書き換えないとだから大変だよね。 ということで、じつは・・・ ● =~ s#◆#★#g; なんてのも使えるんだよ。 これなら「/」が多い日も安心ですね。 ・・・っていうのは次回でつか? 「1文字ずつ対応させて置換する」って表現ではどうでしょう?>tr|y $test = '01234-02468-13579-56789'; $test =~ tr/[0-9]/[A-J]/; print $test; # ABCDE-ACEGI-BDFHJ-FGHIJ と表示
$test =~ tr/[0-9]/[A-J]/; []に意味はあるのかい?
$testに[]が含まれると、戻り値の置換文字数が変わってくる。
tr[0-9][A-B]; と書き変えておこうとして忘れてました。 スマ
これから先ずっと使う前に q, qq, qw を覚えよーょ。 クォートのエスケープは他の言語でもよく使われるから、 覚えておいて損はないけど。
>pearさん こんど♪のスクリプトも改良してほしいですぅ
ここにも出たか、粘着リア厨が! さっさと糞してねれ!! 削除依頼出しとけよ!
=粘着
>>335=尾瀬原必死だな まああんな穴だらけのクリプト晒されりゃいい恥さらしだから無理もないか(藁
正規表現のコンストラクタ、qr//も忘れずにな
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 展開とクオート風演算子 (ニE(#つo⊂#) リクエストがあったから勉強するね。 $text = "うぐぅ"; print "うぐぅ<br>\n"; print "$text<br>\n"; print 'うぐぅ<br>\n'; print '$text<br>\n'; 例えば、後々の説明を楽にするために、これを実行させてみてね。 '…' で囲むと、変数名がそのまま出ちゃったり、 ちゃんと改行されなかったりすることがわかると思うんだ。 '…' では、変数やメタ文字は【展開】されないよ。 つまり、囲った文字がそのまま出る、っていうことなんだ。 "…" では、【展開】されるよ。 さっきの例のソースを、全部、 "…" で囲んであるものは、 qq{…} に書き替えができるよ。(展開されるよ) " が、ダブルクオーテーションっていう記号だから q がふたつあるのかな。 '…' で囲んであったら、 q{…} に書き換えができるよ。(展開されないよ) こういうのを、クオート風演算子、っていうよ。 ボクは個人的な話だけど、 print は全部 qq{…} で書いてるよ。 続くよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < クオート風演算子 (ニE(#つo⊂#) qw についても説明するね。 ● = qw{★}; ★で、半角スペースで区切った文字列を順番に配列●に代入するよ。 これは知らなくてもそんなに影響はないと思うんだけどね… qr は、取り扱うとしたらもう少し先になるかな…? あといくつか、クオート風演算子はあるんだけど、代表的なものとしてこのへんで終わりにするね。 { } って書いたけれど、一定の制約を守っていれば、 { } じゃなくてもできるよ。 一定の制約 ・英数字以外の半角文字だったら何でもいいよ。 ・ # を使うときは、直前にスペースがあると、コメントと間違うから注意だね ・カッコを使うときは、左右でペアにして使うよ。 { } ( ) [ ] < > これは、正規表現の時にも使えるんだ。 たとえば、置換演算子の時では… $test =~ s/xxx/yyy/g; $test =~ s#xxx#xxx#g; $test =~ s{xxx}{yyy}g; これらは全部同じことを表しているよ。 それにしても、ボクはこの授業の内容は全部テキストファイルにしてるんだけど、 → この行でちょうど1000行に達してしまうんだよね…。 ボク、よくこんなに書いたなあ…
さんが上手く説明してくれてるね。 ボクにはこれ以上うまく説明はできないかな おんぷちゃんねるのスクリプト…? 改造すべきところなんてあるかな? どう改造してほしいか言ってくれたら、 もしかしたら1%ぐらいの確立で改造してみるかも あと、ここでは「あゆ」って呼んでくれた方がうれしいな
>342 ごめんなさいです。。。 用なし逝って話しますですぅ
さん ありがと、そっか〜つまり抜けてる部分とか余ったりするとよくないっぽいんだね。 一つずつってのがポイントみたい。 これでtrは解ったよ、ホントありがと。 うぐぅタン だんだん難しくなってきたよ・・・。 まだ何とか付いていけてるから、次もよろしく〜
334トリップ忘れた・・・(汗
このすれ く さ い
おまえが近づかないようにするためだよ。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (1) (ニE(#つo⊂#) Perlで一番重要な、サブルーチンについての説明だよ。 自分で処理を決める関数のようなものがつくれるから、ユーザー関数とかも呼ばれるよ。 サブルーチンは、「宣言」しておくと「実行」できるようになるよ。 じゃあ、宣言の方法を説明するね。 個人的な話だけど、ボクは、 { } の中に改行がくるときは、 インデントすることにしてるよ。インデントっていうのは、 行の始めにタブやスペースをいれて、始まりを右にずらすことだよ。 アンインデント、はこの逆だね。 これを使うと、スクリプトが複雑になってくると見やすくていいよ。 sub abc{ $x ++; } これは、変数 $x に 1 を足す、サブルーチンだね。 呼び出すには、 &abc; って書いて呼び出すよ。 サンプル。「2」って表示されるよ。 $x = 1; &abc; print "$x"; sub abc{ $x ++; } サブルーチンはとっても重要で便利だから、必ずマスターしてね。
うん、そうしてね。 わかってくれてうれしいよ だんだん難しくなっていくね わからないことがあったら気軽に聞いてね。
ありがと、 とりあえず今のところ大丈夫だよ。 次は何が出てくるのか楽しみです。
cgi-lib.plを使わないの簡易掲示板の作り方を教えて欲しいでつ。
待て、一番重要なサブルーチンの説明がよりによって引数無し、グローバル変数操作かよ。 常識的なサンプルを提示できないなら、頼むから何もしないでくれ。はっきりいって迷惑。
(1)って書いてるじゃねーか(2)があるんだろ おとなしく待てよ行数規制があるんだから
(2)はどこじゃヴぉけぇ!!!!!
sub hogehoge { my %param = @_; #何か return ...; }
>これは、変数 $x に 1 を足す、サブルーチンだね。 ( ´,_ゝ`) プッ $x= 'A'でも1足すのかよ $x= 'A'; $x++; print $x; # これはB $x= '?'; $x++; print $x; # これは1 よく頭に叩き込んでおけ
ゼロ文字幅 ^ =>最初 $ =>最後 文字 . =文字 [..] =>文字クラス。括弧の中の、任意の1文字 [^..] =>中身以外の文字を1つ 繰り返し * =以上 + =以上 {n} =>n回 {n,m} =>n以上m未満 {n,}、{,m} も可能 (?:...) =>まとめるだけでいいとき (...) =>後から$1とかで使うとき \1 \2 \3 =>パターンマッチの中で使える。 $1 $2 $3 =>外で使う
サブルーチン(1) 確かに、これだけじゃちょっと・・・ 変数のスコープとか、GC, サブルーチン内でグローバル変数を変更する事のリスクとか。 後できちんとフォローすれば大丈夫。多分。。。
漏れは普段平気でグローバル変数操作してるが。 use strictなんてきらいだよー。
分かったから屑は死ね。
月宮あゆのPHP教室もキボン!。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (2) 返り値 (ニE(#つo⊂#) サブルーチンでは、返り値 (かえりち) っていうものが作れるよ。 「返り血」とか変なこと言ったら嫌だよ。 $x = &xxx; # $x には abc が代入されるよ。 sub xxx{ return "abc"; } return ● …●を返り値として、呼び出し元に戻る。 ちょっとここで注意だけど、この関数は、絶対にサブルーチンの外で 使っちゃだめなんだ。戻る場所がないからね。 ふたつ以上の返り値を送りたいなら、 return ( $a, $b, $c ); みたいに配列にして送るといいよ。 受け取るときは、 ( $a, $b, $c ) = &xxx; こうやって受け取ることができるよ。 それか、配列をあらかじめ作っておいて、 return @xxx; @xxx = &xxx; みたいなこともできるよ。
もうすこし先で勉強するからもうちょっとまってね。 サブルーチン、はとりあえず (4) か (5) まで続くと思うよ。 今は (4) の途中まで書いてるからね。。 確かに、オートインクリメント演算子は、「1足す」じゃなくて、 「値を1増加させる」っていう機能なのはその通りなんだけど、 そんな扱ってないようなことを勝手に進めないで。 先に「省略してるところもある」ってちゃんと言ってるんだから。 そんなことはあまり知る必要ないんじゃない? 必要最小限のことは付け足すからね。 ボクはPHPはほとんどできないんだよね。。 勉強するにもPHPの入門書が数ないからねえ。。
返り値と戻り値って、どう違うの?ダレカオシエテ
重箱の隅をつつくようだけど、実はサブルーチンの外でもreturnを使えるケースがあるんだよね。 標準ライブラリの中にもその使い方をしているものもあるよ。 ところで、-wスイッチとuse strictの説明の予定はあるの? コーディングを楽にするためにも、まずその説明をした方が良いと思うね。 同じ意味だと思うよ。
ありがと。戻り値でも通じるんだよね? よかった、前から気になっていたんだ。
use strict;無しで書くほうが、後から面倒なことになる。げぼ。
くさい
すいません、教えて下さい foreach これってフォーイーチ? フォーリーチですか? 気になって仕方ないです… お願いします。
for eachだから、そのように。
f or each
それはあんまりです(笑
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (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"; }
うん、同じだね eval の中かな? eval はまだ取り扱ってないから、出てきたときに説明しようと思って、 こんなところで「eval」って出したら混乱する人もいそうだから、 あえて説明しなかったんだよね。。 -w とか strict は、知っておいた方がいいことだろうね。。 -w は未定だけど、 strict はそのうち勉強する予定だよ。 ふぉーいーち、だと思うよ
このあゆ、息臭いなあ このあゆ、汗っかきだなあ このあゆ、ワキガ??
_ _ 〃┏━━ 、 パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (((\リリ *´ー゚*リ < うぐぅ♪ ((ニE/⌒ヾ∞"ヽ \____________ (こ) ∞ |こ) く__∞,ノ し' し'
/ ̄ ̄\ | う う | | ぐ う / ̄ ̄ ̄ ̄ ̄ ̄ | ウ | < うげぇ \__/ \______ . r‐-i^i´`||iii》ヽ (_| | i/二フ.〉 (__|_ゝ、__[]_ア / l| | /fヨI 中| く l| | ` ‐r-十! ノ ! ! /ゝ,/ー| / /l | / f《 |fヨ | . \_)_ノ
ヴ?
そういえばevalもそうだっけ。でもそれ以外にもあるよ。 実はrequireされるライブラリファイルの中だとreturn出来るんだよ。 例えばAnyDBM_Fileがそうしてる。 ま、普通は使わない機能だけどね。
perldoc -f return subroutine, eval, do FILE ... みたいですね。 ライブラリの中って言うのは、よくモジュール等の最後に 1; ってやるけど あれって、return が省略されていたんだ? そういえば、sub 内でも定数とかを返すだけのサブルーチンでは return省略してるの良く見かけるよなぁ
> あれって、return が省略されていたんだ? ちょっと違う。 returnがない場合、最後に評価された式の結果が返される。 1; というのは式1;の値は1だから1が返る。 …って動作のはず。
日本語のページからうぐぅを検索しました。 約56,500件中1 - 50件目 ・検索にかかった時間0.09秒
Perlのクラスは何であんなにヘンテコですか?
あんなにってどんなに?
↑ 睾丸無知
は睾丸ですか?
あゆタンはやく続きおせーて
しぼーん
(´・ω・`)ショボーン
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < サブルーチン (4) 引数 (ニE(#つo⊂#) 引数、っていうのは、「ひきすう」って読むらしいよ。 ボクはこのあいだまで、「いんすう」だって思ってたんだけど。。 サブルーチンから値を持って戻る、っていうことをやったね。 じゃあ次は、値を持ってサブルーチンを実行するっていうことをやるね。 &xxx("abc", "123", "あいう"); こんな風に呼び出すと、特殊配列 @_ に頭から代入されて呼び出されるよ。 当然、 @list = ("abc", "123", "あいう"); &xxx(@list); と同義だよ。 この辺の話を覚えて、次回は、名無しさんならエラー、っていう ソースに改造してみるよ。 #投稿が遅れてごめんね。 #遅れてもdat落ちや削除されない限り途中で放棄することはないからね。。
そうなんだ‥ 知らなかった ちょっと恥ずかしいな えっ そんなにあるのっ?! なんだかすごいね Perl、ってクラスって言うのかな…? 呼び方とかよく知らないや。。 遅れてごめんね。
キタキタキター
月宮あゆのPHP教室きぼんぬ
このスレほんと勉強になりました。 で、PHPの勉強にすることにしたので、 おれもPHP教室を希望します。 ちょっとづつでいいのでお願いしたいです。
いまさらPerl勉強しても需要も無い仕事無い
確かに今さらPerlっつってもね。 でも、月宮あゆ君はよくがんばってると思うよ。 今後もがんばってもらいたいね。Perlで移行!!。
perl今勉強中なんだが需要無いのか・・・ いや、なにか役立つでしょ。うん。 それとも先にcかphpを勉強した方が良いのか・・・?
レスどもです。 Perlは勉強していきます。役には立ちますよね。 次にPHP、そしてCという順にやっていきます。がんがります。
Perlは今後、使用者は減るけど使えないわけじゃないから勉強してもいいと思うよ。 でも、最終的にCするんだったら、ぼくはPHPを強く勧めるよ。 Perlから始めちゃうとPerl独自の癖がつくのでPerlしかできなくなる危険性があるので、 PHP勉強した後、Perlを勉強したほうかいいかもしれないね♪ がんがれ!
うん、遅くなってごめんね ボクも今、PHPは勉強してるところなんだよね ちょっとボクにはできそうにないよ ごめんね 確かにこれからはPHPの時代に変わっていくかもしれないね。 elsif 、とかPerl以外にみたことないよ。。
俺の鯖、CGI使えんのだが…お奨めはあるかね。
Python だと elif PHP では、 elseif, else if Perl で、無理に独自のスタイルに馴染まなくても C ライクなプログラミングも出来るよ。
ソースのHTMLが解釈されて見にくいぽ。。。
メリークリスマス あゆタン
ヘッダのContent-Typeを無視して勝手に中身を判断する IEを恨みましょう。
>Perl で、無理に独自のスタイルに馴染まなくても >C ライクなプログラミングも出来るよ。 独自スタイルを使わずしてPerlは動くのか? C知らずしてCライクは無理だろ。もうちと考えてかけよ。
(´・ω・`)
年末年始は来てくれないのかなぁ。サイトも更新中みたいだし。
ヒキコモリヲタのくせに生意気だな。
オマエモナー
elsifじゃなかったっけか?
Pythonが?
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (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} : そのページへのリンク元アドレスが入ってるよ。 こんな感じかな。 次回は他の環境変数と、スペースがあまったら実用例を書いてみるね。
あけましておめでとう、今年もよろしくね 無料サーバかな? 規約違反するなら infoseek かトクトク 規約違反しないなら XREA がいいと思うな Python なんて言語聞いたことない… 他は聞いたことあるけど。。 ボクもよくわからなかったんだけど410さんが言うにはIEの仕様みたいだね・・・ これはしかたないね 今は、あけましておめでとう、っていう時期になっちゃったね ごめんね 見てくれてたのかな、ありがとうね これからできるだけ顔を出したいと思ってるんだけどね 最近いそがしくて・・
あけおめ、ことよろ、ガンガレ
あゆタン
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ (ニE(#つo⊂#)
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (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 関数も使えないサーバーもあるらしいよ。。 こんなサーバーは(たぶん)どうやってもホスト名は取得できないよ。 わからないことがあったら、サーバーの管理人さんに聞いてね。
おめでとう、今年もよろしくね。 ん?なに? Janeで読んだら「ここ壊れてます」、って言われる なんでだろう
取得するときになんか障害が起きたから。
誕生日おめでとう>あゆあゆ
(´Д⊂ヽ・゚。 ウワァァァァアァァン あゆあゆ〜
???
そういや1月7日はあゆちゃんの誕生日だったっけ。 おめでと〜。 関係ないけど、 このスレでの「月宮あゆ」は共有コテにして、トリップだけ別々にすればいいと思うが。 俺は「C言語CGI」スレの住民だけど、あゆのレスが面白くてこっちにもいてみたり。
つぅかnobodyさん−>月宮あゆ を提唱しようではないか。と。 取りあえず次スレはWebProg総合スレにして欲しいっす。 初心者スレとかも良いかもね。
〃┏━━ |. ノノソハ))) (\リリ ´ー`)リ < 環境変数 (3) (ニE(#つo⊂#) じゃあ、掲示板に書きこんだ人のホストを記録するよ。 簡単に言うと、ログファイルに記録すればいいんだけど、 ログファイルにそのまま記録しちゃうと、読む人にホストが見えちゃうんだよね。 たぶんここにいる人たちはホスト開示、っていうのは嫌だと思うんだ。 コメントにする、っていうのも、ソースを見られたらばれちゃうよね。 じゃあ、こんなことをしてみよう。 書きこむときに <a href='mailto:メール'>名前</a>>メッセージ っていう書き方をやめるんだ。こうじゃないとホストが筒抜けになっちゃうからね。 じゃあ、ホストを記録できるようにするには、 <a href='mailto:メール'>名前</a>>メッセージ(ホスト) みたいにして、表示するときに消してやるといいよ。 表示する欄をいじってみるね。 foreach (@log){ $_ =~ s/\([\w\.-]\)\n$//; print "$_<hr>\n"; } でも、このままだと穴があるよ。 行数が入らないから次回にまわすね。
なぁ、データフォーマットの時点でなんか痛くない?
うーん・・・ できればsplitあたりを使って今回やりたかったんだけど 行数が入らないからフォーマットは次回まわしかな
俺はっす。 重要な語句が抜けてますた(*´Д`) 質問に「答える人達が」共有であゆコテを使おうってことを言いたかったんだ。 「◆XalkKQX1is」あゆ一人だけだと、負担がかかるんじゃないかと思ったから。 気の回しすぎだったらごめん。 軽い気持ちで吊ってくるっす。
ィ`
それなら、AYUAYUっていうトリップ探して付けてみたら? そっちの方が雰囲気出るかも ただ、◆Xalk..も◆AYUAYU..も掲示板でpassを晒したら、 関係ない奴が偽物として入ってくると言う痛い罠 passの配布方法はどうするの?
パスワード パスと呼ぶ奴 厨房さ
password path
そのためわざわざ英字で書いたんだけど.... 自分ダメダメっすね(^.^;
共通トリップ付けるのに偽物がどうこうとか言うなら いっそトリップ付けなきゃ(ry もしくはID表示させれば(ry
とりあえず、あゆが来るまで保守
(^^)
あゆあゆ.com.うぐぅ・・・。(^−^)
あゆage
COBOLってどうなんすか、、、 いまどき(仕事以外で)使ってる人いるんすかねえ、、、
全部読んだが全く知識のない自分には当然全く分からない 電2>基礎から丁寧に説明してくれるので非常に分かりやすい
電2に載るのはうれしいけど、肝心のあゆあゆが降臨してくれないからなぁ 降臨きぼーん
ヲタドモが騒いでるな 電2ってなによ
電波2ちゃんねる
1は食い逃げの常習犯なので逮捕します
通りすがりのたい焼き屋さんが住むスレはここですか?
〃┏━━
|. ノノソハ)))
(\リリ ´ー`)リ < ログファイル (1)
(ニE(#つo⊂#)
前回はホストの記録をやってみたわけだけど、実は拡張子が、
.cgi とかじゃないファイルは、外部から参照されちゃうことがあるんだ
(でも、基本的にサーバーの設定に依存するよ)
log.cgi か何かにリネーム(名前を変更)して、スクリプトも少し
書き直したらこの問題は解決されるね。
じゃあ今回は、少し重い掲示板を作る、っていう想定でやってみるね。
ここでは表示欄にテーブルを組ませたりするよ。
ちょっとここで考えてみると、前回までと同じように、ログファイルに
書き込んでると、容量がどんどん大きくなっちゃうよね。
それは困る、っていうことで、一般的な掲示板では、【区切り文字】を
使って、名前、とかの要素を区切って保存してるよ。
2ちゃんねるでもこれは同じだよ。
http://pc.2ch.net/php/dat/1014096840.dat 名前<>E-mail<>投稿日<>本文<>(サブジェクト)
っていう感じに <> で区切られて保存されてるのがわかると思うよ。
区切り文字は、 <> が一番メジャーで、次に , とか : とか | を見るね。
別に何でもいいんだけどね。でも、本文にその区切り文字があると、
そこで区切られちゃうから、それを避けるようにすればいいね。
じゃあ、今回は
名前<>E-mail<>投稿日<>本文<>ホスト
っていう形式でやってみることにするね。
うーん・・ ボクは別にそれでもいいけど 結構大変な仕事を継続してやってくれる人はいるかな…? いるならボクは大歓迎だよ トリップのキーはすぐに割れそうな気がするキーなんだけど… えっと、他のスレでもこのトリップ使ってるから、 公開するつもりはあまりないよ、ごめんね COBOL…? ごめん、聞いたことないよ。。 えっ?! 今みてみたけどホントに掲載されてるね うれしいよ、今度からも頑張るから応援してね そんな難しいこと書いてるかなぁ… どのへんから分からないのか教えてほしいな 遅くなってごめんね スレ違いだよっ!
あゆあゆ降臨 キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!! 俺はスローペースでもOK てか、あゆあゆは一人であとは普通に教えあえばいいと思うよ。
月宮あゆの中の人も大変だな。
_ _ 〃┏━━ ( ) ( ) (.〆⌒ヽ ) (∴゚ρ゚∴) < いないよ ( £ £ ) ( £ゑ££ ) (££ゑ£) |. ノノソハ))) (\リリ ´ー`)リ (ニE(#つo⊂#)
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´ _,,. ‐''" / ハ\ / /
月宮あゆ ◆XalkKQX1is つまらんぞ。 シロウトがでたらめばかり書くな。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。