弐ch編集のPerl講座 (231レス)
上下前次1-新
2(2): 2 02/02/15 07:27 ID:oL67ZYlw(1) AAS
氏ね >>1
3: 弐ch編集 02/02/15 07:32 ID:??? AAS
#! /usr/local/bin/perl
print "Content-type: text/plain\n";
print "\n";
print "MegabbsXP!\n";
基本だな。
まずはヘッダを出力。とりあえずプレーンテキストだからtext/plain。
ヘッダと本文の間は一行空けるために改行を入れる。
じゃないとどこまでがヘッダか分からんから。
もちろんこれは"Content-type: text/plain\n\n"ってまとめてOK。
で次は本文を出力してるわけだ。画面にきちんとでれば成功。
4: 弐ch編集 02/02/15 07:44 ID:??? AAS
#! /usr/local/bin/perl
$text = 'MegabbsXP!';
print "Content-type: text/html\n\n"
print qq|<html><body text="#FF0000">$text</body></html>|;
exit;
次は$textに代入してHTML表示だ。HTMLだからtext/html。
printの次がqq||で囲まれてて変だろ。これはとりあえずqqという関数だと思ってくれ。
意味は「値を""で囲まれてるものとして扱う」かな。
なんでこんなめんどくさいことをするかっていうと、""のなかで"を使いたいから。
普通に"text="#FF0000""ってやったらどこが区切りだかわけ分からんからな。
省5
5: 名無しさん@お腹いっぱい。 02/02/15 07:50 ID:??? AAS
俺はお前の精神構造が理解出来ない
かまって欲しいのか、奉仕の快感を得たいのか
前に自分の板でやってたのと同じ主旨だろう?
正直、初めはお前の企画に期待してたんだが
最近ではウンザリだ
MEGABBS-XP、MEGABBSバグ無し版(現金徴収済)、二編perl講座
他にも企画倒れが有ったら教えてくれ
6: 弐ch編集 02/02/15 08:05 ID:??? AAS
open(IN, './log.dat') or &error;
@lines = <IN>;
close(IN);
これでファイルが読める。どうだ?Perlは俺と同じくらいすごいだろ?
openでファイルハンドルINとファイルを結びつける。
openは失敗すると偽を返す。そうするとorが反応して&errorが呼ばれる。
&errorはてきとうなエラー表示関数な。or dieとしてdie関数を呼んでもいいが、
掲示板なら「ファイルが開けませんでした」とか表示したいだろ?
だからわざわざエラー表示関数を呼ぶ。
で@lines。ファイルの改行までをひとつのデータとみて
省9
7: 弐ch編集 02/02/15 08:19 ID:??? AAS
open(IN, './log.dat') or die;
while($line = <IN>) {
print $line;
}
close(IN);
$line=<IN>で$lineに改行まで一行だけ読み込まれるから
whileでぐるぐる回して好きな処理をするわけだ。
つまり<IN>が全部返すが一行返すか
自分の相手をみて勝手にやってくれてるようなもんだ。
この「相手が変数か配列か」っていうのはPerlでは結構重要な部分だと
省7
8: 弐ch編集 02/02/15 08:22 ID:??? AAS
ゴメン、やっぱり飽きたからやめるよ (=´Д`=) じゃっ
9: 弐ch編集 02/02/15 08:36 ID:??? AAS
open(OUT, "> ./log.dat") or die;
print OUT "MegabbsXP!\n";
close(OUT);
書き込み。>は上書きの記号だ。覚えろ。
print OUTもなんとなく分かるだろ?OUTに書き込むって意味。
で、クローズ。終わり。
注意すべきは>は上書きだということ。openは最初にファイルを
空にして、それからファイルハンドルとくっつけるイメージだ。
だからor dieの時、つまりopenが失敗した時には
ファイルは空、しかも書き込みもできずっていう最悪パターンだ。
省11
10: 弐ch編集 02/02/15 09:27 ID:??? AAS
($name1, $name2, $god) = ('mike', 'mary', 'nihen');
@names = ('mike', 'mary', 'nihen');
@names = qw(mike mary nihen);
%data = (name1 => 'mike', name2 => 'mary', god => 'nihen');
%data = qw(name1 mike name2 mary god nihen);
分かるよな?分かるようになれ。代入の話だ。
qwはqqと同じようなもので「配列として扱う」ものだ。空白や改行が区切りとみなされる。
qw[]やqw~~でもOK。
$line = <IN>;
($no, $name, $comment) = split(/<>/, $line);
省18
11: 名無しさん@お腹いっぱい。 02/02/15 09:42 ID:??? AAS
これ以上Perlスレ増やして何する気だ?
12(1): 賛成の反対の反対ナノだ! 02/02/15 09:53 ID:??? AAS
> 9
> だからor dieの時、つまりopenが失敗した時には
> ファイルは空、しかも書き込みもできずっていう最悪パターンだ。
>
openが失敗したのにファイルが空になるのか?
ファイルが空になるということは空文字を書きこめたということでは?
詳しく説明しろYO!
13: 弐ch編集 02/02/15 10:13 ID:??? AAS
print OUT join('<>', @log{@format}),"\n";
書き込みは当然こうなるはずだ。分かるな?次はrequire。
#! /usr/local/bin/perl
require './mytext.pl';
print qq|Content-type: text/html\n\n|;
print qq|<html><body text="#FF0000">$text</body></html>|;
exit;
mytext.plを読み込んでる。イメージとしてはスクリプトのその場所に
指定したファイルが展開されてる感じだ。つまりmytext.plが
$text = 'MegabbsXP!';
省22
14: 弐ch編集 02/02/15 10:55 ID:??? AAS
>>12
ああ、書き方がおかしかったな。flockとrenameを抜いてしまっていてはな。
print中にスクリプトが停止された場合というべきだった。
そうするとログが破壊される。途中までしか書けてないから。
15: 弐ch編集 02/02/15 11:01 ID:??? AAS
#! /usr/local/bin/perl
use strict;
$text = 'MegabbsXP!';
print qq|Content-type: text/html\n\n|;
print qq|<html><body text="#FF0000">$text</body></html>|;
exit;
use strictとは文字通りstrictというものを使うという意味だ。
てきとうにいうとstrictとは未知の値が出てくるとスクリプトエラーになる能力を
持っているライブラリってとこかな。この状態でスクリプトを組んでいけば
エラーが分かりやすくなって開発効率もあがる。
省22
16: 賛成の反対の反対ナノだ! 02/02/15 11:31 ID:??? AAS
> 15
> MyTextの$textは正式名称「$MyText::text」だ。どこの誰か、だ。
>
my $text と局所化されているのでパッケージもヘッタクリもないダロウ?
17: 弐ch編集 02/02/15 11:37 ID:??? AAS
my %tmp = ();
@tmp{qw(no name com)} = split(/<>/);
my $log = \%tmp
これで$tmp{'no'}は$log->{'no'}とも表せるようになった。リファレンスだ。
\%tmpで%tmpのアドレスが取得でき、それが$logに代入されているわけだが…
簡単には「○○のところの」が$logに入ったわけだ。$logの指すところのno。つまり$tmp{'no'}。
だから$log->{'no'}を変更すると$tmp{'no'}も変わる。
my %log = %tmp;
の場合、これは単純なコピーなので$log{'no'}を変更しても$tmp{'no'}は変わらない。別物だから当然だ。
%tmpはマイドキュメントにあるフォルダで$logはデスクトップに置いた%tmpへの
省17
18: 賛成の反対の反対ナノだ! 02/02/15 12:01 ID:??? AAS
ゴメン、やっぱり飽きたからやめるよ (=´Д`=) じゃっ
19: 賛成の反対の反対ナノだ! 02/02/15 12:17 ID:??? AAS
> 1
> なんか俺の偽者がいるから俺の本命Perlでたててみた。
>
18に漏れの偽者もいるんだけど スレはたてないでおこう。
20: 名無しさん@お腹いっぱい。 02/02/15 12:28 ID:??? AAS
このスレは一体何がしたいんですか?
間違った知識をひけらかして。
21: あぼーん [あぼーん] AAS
あぼーん
22: 名無しさん@お腹いっぱい。 02/02/16 17:51 ID:??? AAS
まじめな話、無茶苦茶な話をするのは勘弁してくれ。
23(1): 名無しさん@お腹いっぱい。 02/02/16 21:03 ID:??? AAS
わかんね。
24: 名無しさん@お腹いっぱい。 02/02/16 21:13 ID:7dTs20wP(1) AAS
>>1さん、勉強になります!
25: 名無しさん@お腹いっぱい。 02/02/16 21:13 ID:??? AAS
>>23
理解する必要なし。バカにされるっす。
26: あぼーん [あぼーん] AAS
あぼーん
27: ” [!] 02/02/17 12:11 ID:??? AAS
姫ハケーン!!!ハァハァw
28: 名無しさん@お腹いっぱい。 02/02/17 15:41 ID:??? AAS
>>1
偽物の方が役に立っていたのだが。
29(1): 名無しさん@お腹いっぱい。 [0d] 02/02/17 17:38 ID:??? AAS
>>1
とりあえずホンモノの姫の方は、
姫萌え野郎どものために
スカートをめくってパンチラを見せてあげることだ。
30: 名無しさん@お腹いっぱい。 02/02/17 17:39 ID:??? AAS
>>29
胸だけはだけての方がいいなぁ・・・はぁはぁ。
31: あぼーん [あぼーん] AAS
あぼーん
32: あぼーん [あぼーん] AAS
あぼーん
33(1): 名無しさん@お腹いっぱい。 [11] 02/02/17 18:21 ID:??? AAS
open(OUT, "> ./log.dat") or die;
print OUT "姫の尻穴チェーック!!\n";
close(OUT);
34: 名無しさん@お腹いっぱい。 02/02/17 18:25 ID:??? AAS
>>33
まさにディスクのゴミだなw。
35(1): 名無しさん@お腹いっぱい。 [11] 02/02/17 18:57 ID:??? AAS
open(OUT, "> ./log.dat") or die;
print OUT "「ふしぎの海のナディア」って感じでやってみるかな。
現在決定したキャストは、
ナディア=弐編姫
ネモ=ひろゆき
ガーゴイル=切込み
かな。
いや、
ネモ=切込み
ガーゴイル=ひろゆき
省6
36(1): 名無しさん@お腹いっぱい。 02/02/17 18:59 ID:??? AAS
>>35
文字列に改行入れるなよ・・・レベルがばれるぞ。
37: 名無しさん@お腹いっぱい。 02/02/17 19:04 ID:??? AAS
/∵∴∴,(・)(・)∴| うるせー馬鹿!
38(1): 名無しさん@お腹いっぱい。 [11] 02/02/17 19:30 ID:??? AAS
>>36
本当なら\nっていちいち書くよ、無論w
39(1): 名無しさん@お腹いっぱい。 02/02/17 19:38 ID:??? AAS
>>38
はあ、何逝ってんのオマエ?? 白痴は消えろや
40: 名無しさん@お腹いっぱい。 02/02/17 19:49 ID:??? AAS
いや、ヒアドキュメントで良いじゃん。
41: 名無しさん@お腹いっぱい。 [〜] 02/02/17 20:01 ID:??? AAS
>>39
姫、生理か?w
42: あぼーん [あぼーん] AAS
あぼーん
43: くりはらせんせ 02/02/17 21:53 ID:??? AAS
よろしく
44: あぼーん [あぼーん] AAS
あぼーん
45: あぼーん [あぼーん] AAS
あぼーん
46: 名無しさん@お腹いっぱい。 02/02/18 09:52 ID:??? AAS
どんな理由があるにせよ、スレ立て荒らしよりコピペ荒らしの方が規制されやすいの法則。
47: 名無しさん@お腹いっぱい。 02/02/18 09:53 ID:??? AAS
そろそろ、うるせー馬鹿を貼りまくってる奴に関して、
削除依頼で対応してみようか?
スレ立て荒らしもカスだが、コピペ荒らしもカス。
48: あぼーん [あぼーん] AAS
あぼーん
49: 名無しさん@お腹いっぱい。 02/02/18 11:41 ID:??? AAS
. ∧ ∧
( ´ ・∀・`) うるせー馬鹿!
50: 弐ch編者 ◆ZAdjmi0s 02/02/18 23:54 ID:hYF5tvk1(1/3) AAS
>>1
漏れだったら
open FILE,$file
ていうふうに括弧つかわないし;
splitだって
split /<>/, $line;
こうするです。。。
51(1): 弐ch編者 ◆ZAdjmi0s 02/02/18 23:55 ID:hYF5tvk1(2/3) AAS
というわけでなんとなーく引き継いでperl講座でも。
多分大体の人はwindows環境でしょうからそれを前提に進めていきます。
52: 名無しさん@お腹いっぱい。 02/02/18 23:55 ID:??? AAS
ワラタ
53: あぼーん [あぼーん] AAS
あぼーん
54(1): 名無しさん@お腹いっぱい。 02/02/18 23:57 ID:??? AAS
>>51
自分の板でやれよ、カマ
55(1): 弐ch編者 ◆ZAdjmi0s 02/02/18 23:59 ID:hYF5tvk1(3/3) AAS
とりあえず前提知識、環境整備はこれをよんでください
外部リンク[txt]:www.megabbs.com
去年の4月に漏れが書いてたものです。
いまとなってはちと不備が見つかるのですが、まぁ修正するのはめんどし
たいしたことではないのでそのままで。
56: 名無しさん@お腹いっぱい。 [=] 02/02/19 00:02 ID:??? AAS
>>54
姫の悪口言うんなら死んでもらうぜ低脳w
57: 名無しさん@お腹いっぱい。 02/02/19 00:09 ID:??? AAS
>55
不備の修正を面倒がるのにperl講座するの?
58(1): 弐ch編者 ◆ZAdjmi0s 02/02/19 00:11 ID:NO37p/Zc(1/7) AAS
じゃーまずはお決まりのHello World!でも
##ここから
print "Hello World!\n";
##ここまで
簡単ですね。
printは
print FILEHANDLE list;
という書式で、listをFILEHANDLEに書き出すという機能を持っています。
FILEHANDLEは省略すると'STDOUT'
listは省略すると$_になります。
省9
59(1): 名無しさん@お腹いっぱい。 02/02/19 00:13 ID:??? AAS
はーい!じゃあSTDINは何を指すんですか〜!
と、>>58の実力を探るべく生徒役に徹するテスト。
60(1): 弐ch編者 ◆ZAdjmi0s 02/02/19 00:17 ID:NO37p/Zc(2/7) AAS
えーちなみに
文字列を""で囲むと「変数」や「エスケープシーケンス」の解釈がおこなわれて、展開されます。
よって\nを改行として出力したい場合は""で囲むことになります。
単に\nとして表示したい場合は''を使います。
こちらは「変数」、「エスケープシーケンス」の展開が行われません。
>>59
STDINとは標準入力で、
CGIでいうところのPOSTやGETリクエストにおける
httpヘッダーの後の空行の後の部分で
コマンドプロンプト上でいうところのキーボード入力になります。
61: 弐ch編者 ◆ZAdjmi0s 02/02/19 00:20 ID:NO37p/Zc(3/7) AAS
とりあえず今日はここまで。。。
ではでは
62: 名無しさん@お腹いっぱい。 [`] 02/02/19 00:21 ID:??? AAS
STDOUT=Standard Out
STDIN=Standard In
63: 名無しさん@お腹いっぱい。 [”] 02/02/19 00:22 ID:??? AAS
print STDOUT "姫一発ヤラセロハァハァw\n"
64(1): 名無しさん@お腹いっぱい。 02/02/19 00:22 ID:??? AAS
>>60
>GETリクエストにおけるhttpヘッダーの後の空行の後の部分で
例えばCONTENT-TYPE: text/html\n\n以下の通常HTMLソースと呼ばれる部分のことで良いんだよね。先生。
%a.pl < a.txt > b.txt
おいおい、STDOUTは画面でSTDINはキーボード入力だけじゃないのかよ。と不良学生に豹変するテスト。
65(1): 弐ch編者 ◆ZAdjmi0s 02/02/19 00:27 ID:NO37p/Zc(4/7) AAS
>>64
>例えばCONTENT-TYPE: text/html\n\n以下の通常HTMLソースと呼ばれる部分のことで良いんだよね。先生。
んーとそれはレスポンス部分だよね?
リクエストのボディの部分がSTDINになるんだよ。
%a.pl < a.txt > b.txt
えと、まぁ確かに画面ではないんだけど
本来画面に出力されるものを他のファイル(など)にリダイレクトしてる、、、
んだとおもう。
いや詳しいところは知らないや((≡´Д`≡))
スマソ
66: あぼーん [あぼーん] AAS
あぼーん
67(2): 弐ch編者 ◆ZAdjmi0s 02/02/19 00:28 ID:NO37p/Zc(5/7) AAS
ま、とりあえず今日のところはでかけまーす。
明日の今ぐらいの時間にまた質問(いじめ質問含)にでも答えながらすすめていきまーす。
68: あぼーん [あぼーん] AAS
あぼーん
69: 名無しさん@お腹いっぱい。 [~] 02/02/19 00:30 ID:??? AAS
>>67
でかけまーす。
ホンダのストリームでかね?w
70(1): 名無しさん@お腹いっぱい。 02/02/19 00:30 ID:??? AAS
>>67
とっとと帰れ! ケツ掘ったろか
71: 名無しさん@お腹いっぱい。 [=] 02/02/19 00:31 ID:??? AAS
>>70
すまんな低脳、それは俺の仕事だw
72(1): 名無しさん@お腹いっぱい。 02/02/19 00:36 ID:??? AAS
>>65
HTTPリクエストって\n\nが終端記号で後には何も続かないと思ってたよ。アタシの宿題にしようっと。
標準出力とは「データを渡されることができる何か」です。
実体はそのときの状態によって異なります。
例えば、STDOUTが画面に割り当てられている場合(デフォルトのことが多い)は文字列を表示。
プリンタなら文字列を印刷。
ファイルならそのファイルに出力内容を保存。
ロボットの手を割り当てればprintfでロボットの手を制御できたりも。
STDINも同じ概念。
入力元はキーボードだったりファイルだったり温度センサーだったりします。
73: 名無しさん@お腹いっぱい。 02/02/19 00:38 ID:??? AAS
おおー、マトモにやってくれそうな予感ー。
期待してるよー
74(2): 名無しさん@お腹いっぱい。 02/02/19 00:52 ID:??? AAS
> 60
> 単に\nとして表示したい場合は''を使います。
> こちらは「変数」、「エスケープシーケンス」の展開が行われません。
>
シングルクウォート内にある ¥¥ および ¥’はどうなんだYO!
75(1): 名無しさん@お腹いっぱい。 02/02/19 01:01 ID:??? AAS
>>74
¥'はともかく\\ってエスケープされるの?
けどそれ、屁理屈レベルだぞ・・・。
76(1): 名無しさん@お腹いっぱい。 02/02/19 01:14 ID:??? AAS
> 75
そんなの次を実行してみればわかるだRO! これを屁理屈レベルといってうやむやに
する人には所詮プログラミングなんて無理無理!
$a= '\\';
$b= '\\\\';
print "\$a=$a: \$b=$b\n";
77(1): 弐ch編者 ◆ZAdjmi0s 02/02/19 01:42 ID:NO37p/Zc(6/7) AAS
>>72
STDIN、STDOUTの件は了解。
漏れの認識不足でした。
HTTPリクエストの件は
googleで見つけたここらへんを参照
外部リンク[htm]:docs.iplanet.com
RFCとかを見たほうが確実なんだろうけど
日本語みつかんなかったんで断念。。。もちっとさがせばあるかも。
>>74-76
ここらへんは明日あたりに持ち越しー。
省2
78: 名無しさん@お腹いっぱい。 02/02/19 01:47 ID:??? AAS
もっと底辺でもわかる講座きぼんぬヽ(´ー`)ノ
79(1): 名無しさん@お腹いっぱい。 [~~] 02/02/19 01:59 ID:??? AAS
>>77
姫、phpなんて勉強するヒマがあったら
英語勉強しな。
RFC読め
80(3): 弐ch編者 ◆ZAdjmi0s 02/02/19 02:11 ID:NO37p/Zc(7/7) AAS
''とエスケープシーケンスの話、明日にもちこそーかとおもったけど
安らかに眠れそうになさそうなんでちと調べました。
えー、シングルクォーテーションの中で唯一解釈されるエスケープシーケンスとして
「\\」と「\'」
があるようです。
後者はクォーテーション自身をあらわすためにあり
前者はエスケープに使われる\記号をあらわすためです。
てかんじですかねー。
>>79
phpやってないし(笑
省3
81: あぼーん [あぼーん] AAS
あぼーん
82: 名無しさん@お腹いっぱい。 [・] 02/02/19 20:03 ID:??? AAS
>>80
なぁに、まずは勉強さ。
Give me your anal virginity.
83: 名無しさん@お腹いっぱい。 [\] 02/02/19 20:08 ID:??? AAS
外部リンク[txt]:isweb37.infoseek.co.jp
姫、
ネタと断っているとはいえ、
元服の野郎がこんなことを書いていたぜ。
懲罰しようか?w
84: あぼーん [あぼーん] AAS
あぼーん
85(1): けんすう ◆al2rSalQ 02/02/19 23:20 ID:??? AAS
がんばれ(´ー`)y-~~
86: 名無しさん@お腹いっぱい。 [mage] 02/02/20 00:35 ID:??? AAS
>>85
かねてから弐編へのラブコールをくりかえし、
ホモ疑惑があがっていたミルクカフェの管理人けんすうに、
ホモ確定判決が下った。
同被告人は、これ以外にも弐編姫萌えレスを2chやmegabbsで繰り返しており、
当然の判決だ、との声が高い。
外部リンク[cgi]:lemmingdead.mine.nu
YIPPIEE!! 2001/12/04(Tue) 01:06
つーか、けんすうの分際で
ユメボタンの会合で女子高校生と茶をシバいてるぢゃねーかw
省14
87: 名無しさん@お腹いっぱい。 [ ] 02/02/20 00:46 ID:??? AAS
AA省
88(1): あぼーん [あぼーん] AAS
あぼーん
89: >>88 02/02/20 01:53 ID:??? AAS
なんか笑える
90: 名無しさん@お腹いっぱい。 [::] 02/02/20 02:24 ID:??? AAS
電網海の弐編姫
予告編
第壱話 うそっ、君、オトコなのか??
時は2002年。
俺は渋谷で3人の男女に追われていた
とある美少女とぶつかり、
ある青い宝石を手に入れる。
それが全ての物語の始まりだったのだ。
91(1): 名無しさん@お腹いっぱい。 02/02/20 12:43 ID:??? AAS
気持ちはわかるが、ちゃんとやろうとしてる人を邪魔するのは
単なる荒らしだぞ。
とか書くと今まで弐編が〜」とか言い出すやつが出てきそうだけど。
92(1): 名無しさん@お腹いっぱい。 02/02/20 14:22 ID:G1Z6CIrZ(1) AAS
AA省
93: 名無しさん@お腹いっぱい。 [ ] 02/02/20 14:48 ID:??? AAS
AA省
94: 名無しさん@お腹いっぱい。 02/02/20 15:22 ID:??? AAS
AA省
95: 名無しさん@お腹いっぱい。 [::] 02/02/20 23:18 ID:??? AAS
姫ゴメン、
愛してるぜw
ハァハァw
96: age ◆/ykUbYQ2 [age] 02/02/22 10:04 ID:??? AAS
age
97: あぼーん [あぼーん] AAS
あぼーん
98(1): 名無しさん@お腹いっぱい。 02/02/22 16:43 ID:w46UEt9c(1) AAS
姫って秋田の大館出身なんだろ?
秋田美人だね、ハァハァw
99(1): 名無しさん@お腹いっぱい。 [rr] 02/02/22 17:04 ID:??? AAS
画像リンク[jpg]:www24.big.or.jp
秋田美人弐編姫w
100(1): 100 02/02/23 02:13 ID:HmclvMIX(1) AAS
>>98
違うZO
101: 名無しさん@お腹いっぱい。 02/02/23 07:04 ID:ukhfZM5J(1) AAS
姫だ。ハアハア。。。
上下前次1-新書関写板覧索設栞歴
あと 130 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s