月宮あゆのPerl教室 Part.4
■ このスレッドは過去ログ倉庫に格納されています
0001月宮あゆ
02/02/19 14:34ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < うぐぅ♪
((ニE/⌒ヾ∞"ヽ \____________
(こ) ∞ |こ)
く__∞,ノ
し' し'
0512月宮あゆ ◆XalkKQX1is
03/01/29 20:48ID:???ボクは食い逃げなんてしないよっ
ひどいこと言わないで
>>506
「口が滑った」っていうのは、本音ってこと?
ひどいよっ!
0514nobodyさん
03/01/30 00:50ID:???if (length($in{message}) >= 1024) { &error("本文が長すぎだよ。。"); }
って書いちゃうけど、駄目?
0515nobodyさん
03/01/30 09:22ID:???うぐぅに逆らうな
0516ゆーいち
03/01/31 04:26ID:???★を省略すると$_が適用されるな。
それとmessageが裸の王様だ。
0518nobodyさん
03/02/01 08:44ID:???キロが1000だろーが1024だろーが何が違うんだ?
掲示板ごときでそんなこと気にしても役に立たんよ。
どっちも「約500文字以内」と注意書きを書くだけのことだし。
真面目に言ってるんじゃなく、あゆあゆの楽しい雑学教室♪などのつもりなら、
1KB=1024バイト、1kB=1000バイト、ネットワーク速度表記などで使われる
1Kbps=1024ビット/秒 くらいまで書いたら?
0519nobodyさん
03/02/01 08:45ID:???順次追加して覚えていけばいいんじゃない?
モレモ length() 派ダガナー
0520519
03/02/01 08:46ID:???0521nobodyさん
03/02/01 17:46ID:I7T2CIzoから来ますた。あゆがんがってね。
0522nobodyさん
03/02/01 18:33ID:U5MszDvjif (1024 <= bytes::length($in{message}) { &error("1024bytesを越えています。");
0523月宮あゆ ◆XalkKQX1is
03/02/01 23:06ID:???|. ノノソハ)))
(\リリ ´ー`)リ < ファイルテスト演算子
(ニE(#つo⊂#)
ファイルテスト演算子は、こんなことができる演算子だよ。
・このファイルがあるかどうかチェック (-e)
・ファイル(ディレクトリ)が読めるかどうかチェック (-r)
・ファイル(ディレクトリ)に書けるかどうかチェック (-w)
・ファイルかどうかチェックする (-f)
・ディレクトリかどうかチェックする (-d)
・ファイルのバイト数をチェックする (-s)
これくらい知ってるといいね。
実例だよ。
if ( -e "test.txt" ) { print "ファイルがあるよ"; }
else { print "ファイルないよ"; }
if ( -r "test.txt" ) { print "ファイルから読めるよ"; }
else { print "ファイルから読めないよ"; }
if ( -f "test.txt" ) { print "通常ファイルだよ"; }
else { print "通常ファイルじゃないよ"; }
$size = -s "test.txt";
print "$sizeバイト";
他にもいろいろあるんだけど、また必要になりそうだったら説明するね。
ややこしい説明はなるべく避けたいからね。。
じゃあ次回は、他の文字列処理関係の関数を勉強するよ
0524月宮あゆ ◆XalkKQX1is
03/02/01 23:11ID:???そう言われてみればそっちのほうが綺麗に見えるね…
意味的には同じだよ
>>516
うん、ボクのポケットリファレンスは使いすぎでもうボロボロ…
>>517
全角文字が2バイトってことは一般常識なんじゃないかな…?
>>518
いや、それは行が少しあまったから足しただけなんだよね
別にそんなに深い意味はないよ
>>519
うんうん、そうだよね
>>521
なぜかJaneで既読になっちゃってるよ…
>>522
そんなモジュールがあるんだ…
知らなかったよ
ちょっと調べてみるね
勉強になったよ、ありがとうね
0525nobodyさん
03/02/01 23:11ID:???$a = '100';
$b = '200';
$sum = length $a + length $b;
$sumは6になるでしょうか?
0528nobodyさん
03/02/02 10:23ID:EcuvSD39全角漢字で3バイトとかあるよね。
0529nobodyさん
03/02/02 10:23ID:EcuvSD393になる
と思うんだけどあってるか?
0530nobodyさん
03/02/02 10:40ID:???こう書くと判りやすいかも。@Ans. $sum = 3
0531nobodyさん
03/02/02 10:44ID:XEuBL7+y大仁田さんは。ときにはその半分の500万円を持って行ってしまします。
大仁田さんはどこの興行に出ても。「客が入ったのは俺のおかげじゃ!」と言い。
毎回20〜30万のギャラを持ってゆくのです。
前項でポーゴさんのギャラが破格だったと書きましたが。それでも1試合8万円です。
私たち程度の団体ではまったく考えられない金額でした。★故荒井氏著「倒産FMW」より抜粋
□自殺についての詳細はこちら
http://www.yomiuri.co.jp/hochi/battle/may/o20020516_40.htm
http://www.nikkansports.com/jinji/2002/seikyo020517_2.html
http://www.zakzak.co.jp/top/t-2002_05/2t2002051704.html
荒井元FMWプロレス団体社長を自殺に追い込んだ
大仁田議員に清き一票おながいします!
http://kenji03.hp.infoseek.co.jp/cgi-bin/kage/votec.cgi
0535nobodyさん
03/02/02 13:27ID:???知らずにはまることは無いと思う。
0536月宮あゆ ◆XalkKQX1is
03/02/10 16:39ID:???|. ノノソハ)))
(\リリ ´ー`)リ < substr
(ニE(#つo⊂#)
今日は、文字列の指定部分だけを取り出す、 substr っていう関数について勉強するよ。
● = substr ◆, ★, ■
◆ を対象に、 ★ バイト目から ■ バイト取り出した文字列を ● に代入するよ。
★ がマイナスなら、逆から数えるよ。
■ がマイナスなら、うしろから abs(■) バイト削ったところまで代入されるよ。 … ※
■ が省略されていたら、 ★ で指定した位置以降を全部代入するよ。
※ ● = abs ◆
数値 ◆ の絶対値を ● に返すよ
実例だよ。
$test = "abcdefghijklmnopqrstuvwxyz";
print(substr($test, 0)); # abcdefghijklmnopqrstuvwxyz
print(substr($test, 0, 10)); # abcdefghij
print(substr($test, 10, 10)); # klmnopqrst
print(substr($test, -10)); # qrstuvwxyz
print(substr($test, -20, -10)); # ghijklmnop
print(substr($test, 10, -10)); # klmnop
まあ、柔軟に使えるようにしておいてね。
0537月宮あゆ ◆XalkKQX1is
03/02/10 16:42ID:???うん、優先度を取り違えると間違えそうな例だね
>>526-528
今ちょっと調べてみたけど…
その通りみたいだね
初めて知ったよ
勉強になった、ありがとうね
0538ゆーいち
03/02/13 01:00ID:???俺は使わない派だな。
0539保守
03/02/23 22:30ID:???0542nobodyさん
03/02/25 12:07ID:???0543nobodyさん
03/02/25 18:40ID:???>高校入試が迫ってきてるんで更新頻度が下がるかもしれんです。。
リア厨やったんか
0544nobodyさん
03/02/25 19:38ID:???0545ほっしゅ
03/03/01 15:48ID:???0546初心者
03/03/02 17:25ID:EYbp7ypMexec関数は使えるのですか>
0547nobodyさん
03/03/02 20:12ID:???マジ!?(;´Д`)
0548nobodyさん
03/03/04 04:36ID:OXFQovKc>>547
マジなのかなぁ。
0549nobodyさん
03/03/04 04:40ID:???/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/kaorin/
0551nobodyさん
03/03/05 00:41ID:5JBlRiko0552山崎渉
03/03/13 17:08ID:???0553nobodyさん
03/03/14 15:38ID:???(^^)
0554月宮あゆ ◆XalkKQX1is
03/03/16 05:27ID:???|. ノノソハ)))
(\リリ ´ー`)リ < 文字コードのおはなし
(ニE(#つo⊂#)
なんか順番が前後しちゃうような気もするけど、文字コードについて説明するね。
文字コードには、 Shift_JIS と JIS と EUC が主にあるよ。
Windows では、メモ帳で入力すると、Shift_JISとして保存されるよ。
Windows のデフォルトは Shift_JIS なんだ。
じゃあ、掲示板に投稿されたとき、 Windows じゃい OS から書きこまれたら、
別の文字コードになって、それを Shift_JIS として扱うから、
【文字化け】しちゃうことがあるんだ。
じゃあ、どうしてやるのがいいのか。
書きこまれたときに、「文字コードを変換」してやるといいね。
jcode.pl っていうライブラリをここで紹介しておくね。
ttp://srekcah.org/jcode/
他にもいろいろ方法があるけど、とりあえず一番楽かな…
require "jcode.pl";
&jcode::convert(\$xyz, 'sjis');
こうすると、 $xyz を Shift_JIS に変換することができるよ。
次回は実例をあげてみるね。
他にも機能があるよ。
ttp://www.mikeneko.ne.jp/~lab/kcode/jcode.html
0555月宮あゆ ◆XalkKQX1is
03/03/16 05:32ID:???>>538
えっと、ボクも普段は使わないんだけど、
他の関数を組み合わせるときは、つけるようにしてるよ。
>>539
ごめんね
これまですごく忙しくて
>>542-544
うん、そうだよ。だから忙しくて…
>>546
ボク、CGIぐらいしかいじったことないから、
そういうことはちょっとわからない、ごめんね
>>547
嫌だった?
>>548
14日だったんだよ
兵庫県は他より遅くて…
0556nobodyさん
03/03/16 07:22ID:???あゆちゃんの中の人、なんか知らんけどお疲れさま〜。
0557nobodyさん
03/03/16 09:43ID:???0558nobodyさん
03/03/17 05:24ID:???0559nobodyさん
03/03/17 18:08ID:???乙〜
0560nobodyさん
03/03/17 23:39ID:???system関数使うといいんでない
$ex = "c:\nantoka\nantoka.exe";
system ($ex);
openを使うときもあるけどたいていはnkf+sendmailを使ってメールを
飛ばすぐらいかなぁ
0561nobodyさん
03/03/18 08:58ID:???【「中の人」終了のお知らせ】 利用者各位
平素は「中の人」をご利用頂きありがとうございます。
長らく皆様に御愛用頂きました「中の人」ですがその役目を
終えたと判断し、このたびサービス終了の運びとなりました。
現在新規サービスを計画中ですので今後とも宜しくお願い致します。
0562nobodyさん
03/03/19 02:55ID:???0563nobodyさん
03/03/19 09:46ID:???乙〜
0564nobodyさん
03/03/19 14:26ID:???0565nobodyさん
03/03/19 14:26ID:???0566nobodyさん
03/03/19 14:28ID:???0567nobodyさん
03/03/19 14:28ID:???0568nobodyさん
03/03/19 14:28ID:???0569nobodyさん
03/03/19 14:29ID:???0570nobodyさん
03/03/19 14:29ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < うぐぅ♪
((ニE/⌒ヾ∞"ヽ \____________
(こ) ∞ |こ)
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
く__∞,ノ
し' し'
0571nobodyさん
03/03/19 14:29ID:???0572nobodyさん
03/03/19 14:29ID:???0573nobodyさん
03/03/19 14:30ID:???0574nobodyさん
03/03/19 14:30ID:???何の事かさっぱりわかりません。
0575nobodyさん
03/03/19 14:30ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < COMMON GATEWAY INTERFACE
((ニE/⌒ヾ∞"ヽ Httpサーバとプログラムを繋ぐためのインターフェース規格(?)
(こ) ∞ |こ) CGIの条件とは
| ∞,| ・そのサーバで実行できる形式である。
| ∞,| ・標準入力/出力を扱える。
| ∞,| ・環境変数を取得できる。
| ∞,| なんだよ。
| ∞,|
| ∞,| これさえ満たしていれば言語は問われないんだ。
| ∞,| テキスト処理が得意なPerl君と高速で使える人が多いC君が
| ∞,| 主に使われてるよ。
| ∞,|
| ∞,| もちろん、PascalやLISP(?)、RUBYなどもOK。
| ∞,| WIndowsNTがサーバならVBもつかえるんだよ。うぐぅ。
| ∞,| \____________
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
く__∞,ノ
し' し'
0576nobodyさん
03/03/19 14:30ID:???0577nobodyさん
03/03/19 14:30ID:???0578nobodyさん
03/03/19 14:30ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 逃げる直前まで、「お金を払うよオーラ」を出すんだよ。
((ニE/⌒ヾ∞"ヽ \____________
(こ) ∞ |こ)
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
| ∞,|
く__∞,ノ
し' し'
0579nobodyさん
03/03/19 14:31ID:???容量の無駄ですし。
0580nobodyさん
03/03/19 14:31ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 了解です。
((ニE/⌒ヾ∞"ヽ \____________
 ̄し'し'  ̄
0581nobodyさん
03/03/19 14:31ID:???0582nobodyさん
03/03/19 14:32ID:???マトモ過ぎるレスが返ってきた・・
0583nobodyさん
03/03/19 14:32ID:???どこに通ってるかって?秘密だよ♪
あゆがわかる簡単な質問なら答えるよ。
0584nobodyさん
03/03/19 14:32ID:???0585nobodyさん
03/03/19 14:32ID:???0586nobodyさん
03/03/19 14:32ID:???0587nobodyさん
03/03/19 14:32ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 何でも聞くべし。
((ニE/⌒ヾ∞"ヽ \____________
 ̄し'し'  ̄
0588nobodyさん
03/03/19 14:33ID:???0589nobodyさん
03/03/19 14:33ID:???0590nobodyさん
03/03/19 14:33ID:???0591nobodyさん
03/03/19 14:33ID:???0592nobodyさん
03/03/19 14:34ID:???0593nobodyさん
03/03/19 14:34ID:???0594nobodyさん
03/03/19 14:34ID:???0595nobodyさん
03/03/19 14:34ID:???どうしてelsif,last,redoなんですか
0596nobodyさん
03/03/19 14:34ID:???〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < パクったんじゃなくて意識しただけだからだよ。
((ニE/⌒ヾ∞"ヽ 自分がこっちの方がいいと思ったら変更すればいい。
(こ) ∞ |こ) Perlは効率を優先した言語だからね。
く__∞,ノ else ifとするより2文字稼げる?
し' し' 多分コンパイルの時点で最適化されるのかな?
\____________
0597nobodyさん
03/03/19 14:35ID:???ttp://www.webk.co.jp/singer/image.jpg
0598nobodyさん
03/03/19 14:35ID:???オススメを一通り教えてホスイ マヂで
(逆でもOK、 :このテスト方法はこういうときに便利)
モジュールいろいろ豊富なのはイイんですが、
オレみたいなヘボーンPGはどれを選んで良いのか、
上手い答えがなかなか出せませんので、参考にさせてください
0599nobodyさん
03/03/19 14:35ID:???〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 基本だけどテストケースをしっかり作ってホワイトボックステスト。
((ニE/⌒ヾ∞"ヽ 職業プログラマじゃないからあんまり詳しくないよ。うぐぅ。
(こ) ∞ |こ)
く__∞,ノ
し' し'
\____________
0600nobodyさん
03/03/19 14:35ID:???主に使われてるっつー割にPerlと違って(CGIの)専門書見かけないのはなんででしょ?
0601nobodyさん
03/03/19 14:35ID:???0602nobodyさん
03/03/19 14:36ID:???〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < この辺なんてどうでしょ? 他にもあったと思うから探してみます。うぐぅ。
((ニE/⌒ヾ∞"ヽ \http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
(こ) ∞ |こ) \____________
く__∞,ノ
し' し'
0603nobodyさん
03/03/19 14:36ID:???たしかにelsifもlastもredoも文字数は少ないですね
0604nobodyさん
03/03/19 14:36ID:???〃┏━━ 、
>− )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < 変なこと言うけどPerl/CGIの入門書。
((ニE/⌒ヾ∞"ヽ 上にも書いたけどCGIはある条件さえ満たせば言語は問われないんだ。
(こ) ∞ |こ) 無理してCでの入門書を探すより腐るほど出てる詳しいPerlでの本の方が参考になるよ。
く__∞,ノ 上にも書いたけどPerlはCとかなり似ているから結構読めるよ。
し' し'
暇だから簡単にまとめておくね。
POSTの場合、データは標準入力に入る。
GETの場合、データは環境変数QUERY_STRINGに入る。
リモートホストなどのステータスは環境変数に入る。
出力は標準出力に対して行う。
出力の前にprintf("CONTENT-TYPE: text/html\r\nr\r\n");を忘れないでね。
うぐぅ。あんまり祐一の役にたてなかった気がするよぉ。
0605nobodyさん
03/03/19 14:36ID:???(1) CでCGIを組めるサーバは一般人用にはあまりなく、従って売れ行きが期待できない
(2) CGIは結局引数というか、動作条件を環境変数から得てテキスト(HTML)を吐く
ある意味ごく普通のプログラムが基本である
あたりかな。
0606nobodyさん
03/03/19 14:36ID:???0607nobodyさん
03/03/19 14:36ID:???_ _
〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < Perl >>>>>>>>>>>>>>>>>>> Cだからだよ。
((ニE/⌒ヾ∞"ヽ 可変長のデータ扱うことが多かったり文字列を分割することもしばしば。
(こ) ∞ |こ) 言語仕様は妙だけどテキスト処理に強いPerlの方が簡単にかけるんだ。
く__∞,ノ けど、その代償は大きくて処理速度とシステム負荷は大きい。
し' し' それで、高速かつふざけた量のデータを処理する場合にはやむなくCを使うんだ。多分。
それと、Cがコンパイル言語だと言うことも問題だよ。
CでCGIを組んだ場合、サーバで動くコードにコンパイルしなくちゃいけないんだ。
(たまに.cを.cgiに変えたのに動きません。ってかわいい初心者がいるね。)
でも、無料または一般用プロバイダが提供するサーバでGCC(CC Cコンパイラ)を
提供しているところはtok2しかないよ。うぐぅ。
そもそもtelnetが使えるところも少ないんだよ。
ローカルでサーバと同じOSを使えばいいんだけどスマートじゃないよね。
(クロスコンパイルという手もある。)
その点Perlはインタプリタ(正確には違う。)。ソース互換は大抵の場合保証されているからお手軽なんだ。
C/CGIの教科書を書こうとすると、
「サーバ上でgccを使うってどうやるんですか?」
って質問が殺到するから書きにくいのかもね。
0608nobodyさん
03/03/19 14:37ID:???標準入力/出力と環境変数の取得方法(のページにしっかりあった)さえ知ってれば
普通に組めそうれすね(当方、Perlはそこそこ書けるのでした)
本がないのは結局、CのCGIが一般向けじゃないってことですかね。
0609nobodyさん
03/03/19 14:37ID:???0610nobodyさん
03/03/19 14:37ID:???ttp://www.aifis.ne.jp/heat/assistant/perl-intro.html
とか。
perldoc perlrunとかやるといきなり「Perlインタプリタ」って文字が出てきて鬱。
0611nobodyさん
03/03/19 14:37ID:???0612nobodyさん
03/03/19 14:37ID:???〃┏━━ 、
| )
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < ソースは忘れたけど、スクリプト実行時にコンパイルしてその後に実行してるんだって。
((ニE/⌒ヾ∞"ヽ 怖い人たちにたたかれたらやだから思わせぶりな書き方にしちゃったよぉ。
(こ) ∞ |こ) ごめんなさい。
く__∞,ノ し' し' 案外あるんだね。gcc OKのところ。
■ このスレッドは過去ログ倉庫に格納されています