[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/08 16:18 / Filesize : 307 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPerl(超初心者用)



1 名前:nobodyさん mailto:sage [2006/09/10(日) 13:33:48 ID:???]
このスレッドは、他のスレッドでは書き込めない超低レベル、  
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。  
Perl使いが優しくコメントを返しますが、  
お礼はPerlの布教と初心者の救済をお願いします。  


290 名前:nobodyさん mailto:sage [2007/07/25(水) 17:42:59 ID:???]
jcode.plはutf-8には対応してないから。
さすが「くだすれ」ww
ものすごいレベルの低さだwww

291 名前:nobodyさん mailto:sage [2007/07/25(水) 18:32:34 ID:???]
まずは、jcode.plをjcode.pmに変更だ。
少しの変更で移行できる。
その後UTF-8に対応だ。

292 名前: ◆lVJAPUTeX. mailto:sage [2007/07/25(水) 23:03:36 ID:???]
(we are) proud to... は英語の決まり文句なので、訳する場合は "proud" は無視しちゃってもいいくらいのものです。


293 名前:nobodyさん [2007/07/27(金) 17:51:08 ID:lN7iMdmd]
/の逆の斜線はどこを押すと出てきますか、
超初心者以前の問題ですみません

294 名前:nobodyさん mailto:sage [2007/07/27(金) 18:03:04 ID:???]
\

295 名前:nobodyさん mailto:sage [2007/07/27(金) 18:03:54 ID:???]
>>294
それでよかったんですか。ありがとうございます。。

296 名前:nobodyさん mailto:sage [2007/07/27(金) 18:26:21 ID:???]
書いたものの、どこで実行すればよいのでしょう?
web上にアップロードして実行するんですか?

297 名前:nobodyさん mailto:sage [2007/07/27(金) 18:33:25 ID:???]
on your desk

298 名前:nobodyさん mailto:sage [2007/07/27(金) 18:40:42 ID:???]
どこで実行するかも決めずにいきなり書いたのか・・・
この板的には、とりあえずhttpサーバ入れて設定するのがいいのでは



299 名前:nobodyさん mailto:sage [2007/07/27(金) 21:08:35 ID:???]
いろいろググってみたのですが、わからないので教えてください。
現状を言うと、ActivePerlはインストール完了、
  #!/usr/bin/perl
  print "Hello, world!\n;
をActivePerlでできたフォルダにhello.plで保存。
再起動済み、次にどうすればいいのでしょうか・・・
ちなみにOSはvistaです。

300 名前:nobodyさん mailto:sage [2007/07/27(金) 21:41:25 ID:???]
コーヒーを淹れる

301 名前:nobodyさん mailto:sage [2007/07/27(金) 22:07:58 ID:???]
>>299
関連付けが正常に行われていれば
(plのファイルのアイコンがトカゲになっていれば)
ダブルクリックで実行。
ただし、
print "Hello, world!\n";
とすること。
1行目は不要。

302 名前:nobodyさん [2007/07/27(金) 23:38:19 ID:lN7iMdmd]
>>301
アイコンはトカゲになってます。
ダブルクリックすると開いた瞬間閉じてしまうのは仕様なんでしょうか?
print "Hello, world!\n"; で実行しましたが、結果はどうなってるのやら・・・・orz

303 名前:nobodyさん mailto:sage [2007/07/28(土) 00:46:08 ID:???]
>>302
先に開いてあるプロンプトから実行しないと、すぐに閉じてみえなくなります。

sleep 5;と入れれば幸せになれますか?

304 名前:nobodyさん mailto:sage [2007/07/28(土) 07:29:47 ID:???]
cgi-lib.plを使って受け取ったフォームから受け取った値を
for文で繰り返し処理しようと思ったのですがうまくいきません

my %input;
&ReadParse(\%input);

for (1..20) {
$MORAU[&_] = $input{'&_'};
}

やっぱり根本的に間違えてるんでしょうか

305 名前:nobodyさん mailto:sage [2007/07/28(土) 08:02:50 ID:???]
うん。根本的に間違えておる。
詳しくは超初心者の心理を鋭く妄想できる>>245大先生が教えてくれるだろう。

306 名前:nobodyさん [2007/07/28(土) 11:42:32 ID:YzZLztvi]
>>303
先に開いてあるプロンプトから実行・・・・・・・といいますと?
すみません orz

307 名前:nobodyさん mailto:sage [2007/07/28(土) 14:46:24 ID:???]
その言葉のどこが、何がわからないのかね。
まさか日本語が判らないのかね。
謝る前にもう少し質問を明瞭にするべきじゃないかね。

とりあえずprint文の次に>>303のコマンドを入れてみてはどうかね。

308 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 04:34:03 ID:???]
おまいら意地悪しないでANHTTPDとか入れるように言ってやれよw



309 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 08:43:45 ID:???]
あんなものいれるな

310 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 11:16:38 ID:???]
じゃあ、いじわるしないで、コレな。
つ[ www.vmware.com/ja/products/player/ ]
つ[ blog.yasaka.com/archives/2005/10/vmware_playervi.html ]


311 名前:nobodyさん [2007/07/31(火) 00:29:12 ID:pMcNAP1A]
Perlをはじめてもいない初心者です。
そんな自分も歓迎してくれるらしいと聞いてやってきました。

ActivePerlがインストールできません。
サイトから5.8.8のMSIじゃない方ダウソしたのですが
インストール用のバッチファイル実行中に次のエラーが出て終了。
「Can't spawn "command.com":Not such file or directory at (どう見ても
実行中のバッチファイル自身のアドレス) line 272,<STDIN> line 7.」

なに探してるんだよ。orz

解決法ピンとくる方がいたらば教えてください。
スレチなら誘導たのんます…

312 名前:nobodyさん mailto:sage [2007/07/31(火) 01:10:27 ID:???]
こういうときは環境ぐらい書くもんだ

313 名前:311 mailto:sage [2007/07/31(火) 01:25:27 ID:???]
すません。OSはMeです。
おとつい他スレで笑われたけど…orz

314 名前:nobodyさん mailto:sage [2007/07/31(火) 01:36:13 ID:???]
msiの使えばいいじゃない。

315 名前:nobodyさん mailto:sage [2007/07/31(火) 01:41:39 ID:???]
だめだった。
今チャレンジしてるやつが一応一番進んでるっぽいです。
インストールしてます→エラーです とな。

316 名前:nobodyさん mailto:sage [2007/07/31(火) 01:44:51 ID:???]
>>311
どこから来たかを先に書こうよ。同じ問答しなくてよくなるんだから。
かぶってる住人も…いや、くだすれにはあまりいないのか?

Perlについての質問箱 31箱目
pc11.2ch.net/test/read.cgi/tech/1181500187/685-694

向こうはこのあと謎の流れになったんだよなあ…。

317 名前:311 mailto:sage [2007/07/31(火) 02:03:23 ID:???]
それです!お世話になりました。
初心者むけスレあったんかいと思って移動。

318 名前:nobodyさん mailto:sage [2007/07/31(火) 03:35:48 ID:???]
>>311

> 「Can't spawn "command.com":Not such file or directory at (どう見ても 
> 実行中のバッチファイル自身のアドレス) line 272,<STDIN> line 7.」 

これって
my $cmd = "xcopy /q /r /i /e /k Perl\\* \"$prefix\" ";
system($cmd) && die "$!\n";

↑この辺になるんだが、xcopy.exe がないとかいうことはないよな?
すまんが画面に出てくる途中経過のメッセージの、アボートするちょっと前から
アボートするまで貼り付けてくれ。




319 名前:311 mailto:sage [2007/07/31(火) 04:12:50 ID:???]
アボードの意味がわかんないけども
xcopy.exeもよくわかんないけども

...

Add the Perl\site\bin and directories to Path?[yes]

Proceed?[yes]
Ok.

Installong ActivePerl...

Copying files...
Can't spawn "command.com":Not such file or directory at (どう見ても以下略

...
って出てます

320 名前:nobodyさん mailto:sage [2007/07/31(火) 04:29:23 ID:???]
あ・そうですねなんかxcopyってのがないみたいだ…
探してみます って手に入るんだろうか。

321 名前:nobodyさん mailto:sage [2007/07/31(火) 10:07:43 ID:???]
xcopy.exeは標準で入ってるだろ。
PATH通ってないとか?ありえない気がする・・・

322 名前:nobodyさん mailto:sage [2007/07/31(火) 23:24:44 ID:???]
xcopyはありました、
でもDOSで打っても使えないんだよな。
いろいろいじってみます・・・

323 名前:nobodyさん mailto:sage [2007/08/01(水) 00:31:48 ID:???]
COMMANDの中身をまるごと
インストーラと同じディレクトリにつっこんでみたところ少し進みました。
だがつまった…

...
Proceed?[yes]
Ok.

Installong ActivePerl...

  Copying files...
  Finished copying files...
Relocating...Can't open C:\Perl\bin\c2ph.bat: No such file or directory at
C:\(略)\INSTAL~1.BAT line 307, <$reloc> line 1.

...
ってなって強制終了…ハァ…
ちなみにC:\Perlには何も入ってないです。
いったい何が不味いのでしょうか。

324 名前:nobodyさん mailto:sage [2007/08/01(水) 01:09:29 ID:???]
>>311
実は64bit版落としちゃったとかじゃないよな・・・。
前スレ694も書いてたけど、Windows9x/MeだとWindowsInstaller2.0+が
要るんだけど入ってる?

downloads.activestate.com/contrib/Microsoft/MSI2.0/9x/InstMsiA.exe

325 名前:nobodyさん mailto:sage [2007/08/01(水) 01:14:35 ID:???]
x86てあるから多分86bit
入ってる入ってる
場所はどこでもいいんですか?

326 名前:nobodyさん mailto:sage [2007/08/01(水) 01:58:42 ID:???]
どんがらがっしゃん

327 名前:nobodyさん mailto:sage [2007/08/01(水) 02:15:59 ID:???]
>>324
311が今試しているのはmsiじゃなくてASパッケージの方だから、
とりあえずMSインストーラーのバージョンは関係ない。

ってMSインストーラーのバージョンを上げてもう一回msiで
やればよかったりして。


328 名前:nobodyさん mailto:sage [2007/08/01(水) 02:25:56 ID:???]
>>322

> xcopyはありました、 
> でもDOSで打っても使えないんだよな。 

いったいまともなシステムなのかい、おまいさんの使っているのは。
Meかどうかってのはおいといても。だ。

> いったい何が不味いのでしょうか。 

わけもわからず闇雲に

> COMMANDの中身をまるごと 
> インストーラと同じディレクトリにつっこんでみたところ少し進みました。 

こんなことやってるからだ。
バッチファイルの中身は実質Perlスクリプトなんだから、適当にいじりなさんな。
... 






329 名前:nobodyさん mailto:sage [2007/08/01(水) 03:08:43 ID:???]
>>325
場所? 何の? 自動的に進むはずだけど。

つかそのMe壊れてるんじゃないかなぁ。

330 名前:nobodyさん mailto:sage [2007/08/01(水) 10:18:26 ID:???]
Meかよ!
AUTOEXEC.BATにPATH設定しとけ

331 名前:nobodyさん mailto:sage [2007/08/03(金) 16:12:48 ID:???]
XPで、最新版あくちぶぱーるのMSIのほういれようとすると、
警告がでてインスコできない。
古いバージョンなら問題なくはいりました。
ただ、最新版をいれようとナニカ変なことをやらかしたようで、
ノートン先生のゴーバックつかって、インストールしてない状態にもどしてから
古いバージョンをインストールしなおしました。

もしかして、その状態なのかな?

332 名前:nobodyさん mailto:sage [2007/08/04(土) 02:01:08 ID:???]
>>307
初めて使う人なわけだからさ。

333 名前:nobodyさん mailto:sage [2007/08/04(土) 16:47:07 ID:???]
だから?

334 名前:nobodyさん mailto:sage [2007/08/04(土) 18:30:38 ID:???]
アスペルガーの特徴。

自分が知っていることは
他人も当然知っていると思い込んでいる。

335 名前:nobodyさん mailto:sage [2007/08/04(土) 19:26:37 ID:???]
アスペルガー症候群は格好良い、天才故の悩みみたいで。
気違い認定されると嬉しいけど、アスペルガー認定も嬉しい。

336 名前:nobodyさん mailto:sage [2007/08/05(日) 12:35:06 ID:???]
MSIインストーラは、適当に置くんじゃなくて、
クリックしてインストールしないとね。

337 名前:nobodyさん mailto:sage [2007/08/05(日) 13:59:47 ID:???]
>>335
死ねキチガイ

338 名前:nobodyさん mailto:sage [2007/08/05(日) 14:23:50 ID:???]
アスペルガーはキチガイじゃないよ
ただ自分にしか関心がなくて
他人にまったく関心がないってだけ。



339 名前:nobodyさん mailto:sage [2007/08/07(火) 20:51:45 ID:???]
アスペルガーは、相手の言葉の裏を読めないだけ。
基地外でもないし他人に関心が無いわけでもない。

基地外をアスペルガーと呼ぶのはアスペルガーの人に対して失礼だ。


とマジレス。




340 名前:nobodyさん mailto:sage [2007/08/08(水) 01:27:49 ID:???]
でも教科書にはアスペルガーは他人に関心がなく
自分のことにしか関心がない、って書いてあるよ

そしてプログラマー板とか見ると、まさに
そのとおり、って感じ。

341 名前:nobodyさん mailto:sage [2007/08/08(水) 08:53:24 ID:???]
>>340
他人に関心を持ちつつも、うまく対処出来なくて悩んでるアスペルガーの人の特集やってるテレビ見た。
アスペルガーに対する偏見はすさまじいらしいから、教科書等でもそういう見方をしてしまうのかと。
実は他人とも仲良くなりたいが、自分が傷つきやすく(言葉の裏が読めない為)、相手の傷つくのも理解しにくい(言葉の裏を読めない為)から、本人達はかなり悩んでいる。
本当のアスペルガーってのは、脳が他のことに特化して、脳の中で他人の言葉を深く考える部分が成長していないんだと。

普通、基地外ってのは、相手がうざがったりへこんだりするのを見て喜んだりするような真性のアホを指すことが多いと思うが、
アスペルガーは(たとえ結果的に傷つけてしまう言葉を言うにしても)相手が嫌な思いをするのを目的で嫌な言葉を使っているのではない。
どこかの教科書に「アスペルガーは他人に関心が無く」ってのは、周りからの(偏見に満ちた)見方をしているだけだと思う。
アスペルガーは、アスペルガー本人にしてみれば他人にも関心があるが、アスペルガーじゃない人がアスペルガーを見ると関心が無い"ように見える"だけだと思う。

アスペルガーはただの発達障害の1つであり、何かの能力で他人より優れている部分があることが多いが、かわりに他の能力で他人より劣ってる部分があるだけ。
なんで、アスペルガー=基地外っていうのは偏見だと思うよ。

プログラマー板でアスペルガー名乗ってる人が居るのかどうかも知らないが、基地外に対してはアスペルガーではなく基地外と呼ぶほうが正しいと思うよ。
基地外の別称としてアスペルガーを使うのはそれこそ差別になりかねないから。

と2度に渡りマジレスすまそ

342 名前:nobodyさん mailto:sage [2007/08/08(水) 08:56:46 ID:???]
最初からそう言ってくれれば別にいいんだけどさ、
結局コミュニケーション取れないから仕事にしても何にしても
やりにくくて仕方が無い。

つかなんでこんな話題が続いてるんだw

343 名前:nobodyさん mailto:sage [2007/08/08(水) 15:35:52 ID:???]
空気が読めないからさ

344 名前:nobodyさん mailto:sage [2007/08/08(水) 21:37:41 ID:???]
話題が無いだけさ

345 名前:nobodyさん mailto:sage [2007/08/13(月) 23:51:38 ID:???]
parrotの話でもしよう

346 名前:nobodyさん [2007/08/28(火) 21:12:01 ID:S4BK4Wc3]
スレッドフロート型掲示板って中規模くらいにはなるの?

347 名前:nobodyさん mailto:sage [2007/08/28(火) 22:44:17 ID:???]
>>346
シンプルに作れば200行は超えない。小規模だろう。
もちろんいろいろ細かなことを気にしたり機能を増やしたりすれば
中規模になっても不思議ではない。

348 名前:nobodyさん [2007/08/28(火) 22:55:12 ID:S4BK4Wc3]
120行程度を8個程度連動して動かすのは?
アップローダーなんだが、スイッチ作るよりもそっちのが若干の負荷軽減になるし。
まぁ、漏れは基本的にそっち系なんだが。



349 名前:nobodyさん [2007/09/01(土) 11:35:54 ID:J92zlSvR]
perl初心者です
perlでrssを定期的に取得し、取得したrssからurlとタイトルを取得しhtmlに出力
するようなcgiを書きたいです。ムリですか?

350 名前:nobodyさん mailto:sage [2007/09/01(土) 11:50:45 ID:???]
>>349
頑張れ

351 名前:nobodyさん mailto:sage [2007/09/01(土) 12:21:56 ID:???]
>>349
定期的になんかやる CGI なんて面倒だよ。原則として CGI というのは
サーバがクライアントからリクエストがあったときに起動するものだから。

サーバ内で定期的 RSS を取得するプログラムを走らせるか
RSS を取得する CGI に定期的にアクセスするか、
定期的に取得することをあきらめるか、のどれかが自然だと思うよ。

352 名前:nobodyさん [2007/09/02(日) 05:21:02 ID:tMV8T4kQ]
>>349
結果をキャッシュして前回アクセスからn秒未満ならキャッシュを渡すようにすれば擬似的に可能

353 名前:nobodyさん [2007/09/02(日) 12:32:14 ID:VQ85YXho]
クライアントから定期的にリクエストだとか
つか、クライアント上で取得→生成→sleepをwhileでぶん回す方がいいと思う。
レン鯖ではアカウントヤヴァスだが。

354 名前:nobodyさん mailto:sage [2007/09/02(日) 12:44:47 ID:???]
while でぶん回すって・・・ cron なりなんなりを使おうよ

355 名前:353 mailto:sage [2007/09/03(月) 02:09:47 ID:???]
>>354
あくまでPerlだけでやるとすればの話。cron使えないと終りだし。
漏れも昔の話だがtempファイルがどうしても不必要に増えてしまうスクリプトを作ったので
同様の悩みを持ったことがあるが、結局は手動でまとめて消すのが手っ取り早いと気付いた。


つか、クライアントで生成してwhileぶん回す必要ないだろ>漏れ
何書いてんだか…

356 名前:nobodyさん mailto:sage [2007/09/03(月) 02:35:41 ID:???]
・cron使え→使えないレン鯖の場合はどうしろと(´・ω・`)
・sleep仕込んでwhileでぐるぐるするとか→セッション終わったらどうなるんですか(´・ω・`)
…になるんだよね。

サーバ側でもクライアント側でもcronやタスクマネヂャが使えない場合で
なおかつCGIでないプロセスを回しっぱなしにもできない場合は、
頻繁にアクセスがあるサイトにCGIのトリガーを仕込みましょうとか、
そういうヘンテコな実装をするはめになる。

357 名前:356 mailto:sage [2007/09/03(月) 02:36:30 ID:???]
s/タスクマネヂャ/タスクスケヂュラ/;

358 名前:nobodyさん [2007/09/03(月) 10:36:26 ID:5z4DsU1G]
デフォルトでエラー行数が表示されないってのきつい。。。
みなさんどうやってデバッグしてるんですか?



359 名前:nobodyさん mailto:sage [2007/09/03(月) 14:58:39 ID:???]
>>358
最悪の場合、debug.txt作って処理を全て書き込み。
基本的にはエラー表示を使って大雑把に問題を切り分け。

360 名前:nobodyさん mailto:sage [2007/09/03(月) 21:53:27 ID:???]
デバッガ使え

361 名前:nobodyさん mailto:sage [2007/09/04(火) 02:47:11 ID:???]
Perlのデバッガ使いづらい

362 名前:nobodyさん mailto:sage [2007/09/04(火) 22:45:32 ID:???]
>>349
cronかWebcronを使うってのはどうですか?

363 名前:nobodyさん mailto:sage [2007/09/04(火) 22:46:07 ID:???]
>>356
webcron

364 名前:nobodyさん [2007/09/05(水) 18:27:45 ID:y75V3THa]
PERLで画像のアップロードのCGIのことでわからないんですが

▼写メールで画像を送信できます。<HR>
 件名、本文には何も書かなくてOK!<BR>
(サイズ制限:容量制限$maximg\k以内)<BR>
<a href='mailto:$SV_MAIL'>写メール送信</a><BR>
<BR>
送信が成功したら<a href='$CGI_MAIL?ID=$id&PASS=$pass'>こちらへ</a>

と、なってるんですがメインのCGIの $SV_MAIL が、カラなんでメール送信できないし
携帯でアクセスしても画像貼れないし、管理のwebmaster@〜のメルアドいれても画像転送できないのですが
どうやって設定したら画像転送できるようになるでしょうか?
わかりにくくてすいません。わかる方いたら宜しくおながいします。

365 名前:nobodyさん mailto:sage [2007/09/05(水) 18:37:00 ID:???]
$SV_MAIL には自分のサイトのアドレス入れるんだべ?
そして、そのアドレスではプログラムが待ち受けていて
受け取った画像を登録するようになってるはず

ちゃんと説明読んでインストールしたのかね?

366 名前:364 [2007/09/05(水) 18:42:12 ID:y75V3THa]
365さん、ありがとう。
管理のwebmaster@〜のメルアドいれて携帯から送って受信したメール
見たら、英数字だけが大量に送られていて画像がなかったんです。
<そのアドレスではプログラムが待ち受けていて>のプログラムが
おかしくなってるんでしょうか?

367 名前:nobodyさん mailto:sage [2007/09/06(木) 10:07:23 ID:???]
>>366
それってContent-Type: multipart/mixed だったりしない?
メールってのは文字しか送れないから、画像のときは
英数字に変換して送られる。
受け取った側は自分で画像ファイルに変換しないと。

368 名前:364 [2007/09/06(木) 15:14:11 ID:CdaTSQs2]
Content-Type: multipart/mixed;
に、なっています。
どうやったら英数字に変換して送れるようになりますか?
CGIの中身は・・
# マルチパートの検出
if ($mHead =~ /Content-type:.*multipart\//i || $mHead =~ /Content\-Transfer\-Encoding:.*base64/i)
に、なっています。これじゃだめでしょうか?
これだけじゃわからないですか?



369 名前:364 [2007/09/06(木) 15:19:08 ID:CdaTSQs2]
CGIの中が・・

# マルチパートの検出
if ($mHead =~ /Content-type:.*multipart\//i || $mHead =~ /Content\-Transfer\-Encoding:.*base64/i) {
# 区切り文字列で分割
$bound = '';
if ($mHead =~ /boundary\=\"(.*)\"/i)

受信したメールのヘッダが
Content-Type: multipart/mixed; boundary="mimemk00_0_"
Content-Transfer-Encoding: 7bit
と、なってます。

370 名前:nobodyさん mailto:sage [2007/09/06(木) 15:24:09 ID:???]
メールは受け取ってるみたいだね。
おそらく本文には
Content-Type: image/jpeg;とかContent-Transfer-Encoding: base64 とかあるだろう

で、何ができてないの?画像の保存?
画像を保存する場所のパーミッションとかじゃないの?
エラーログには何か出てないのか

371 名前:364 [2007/09/06(木) 15:47:39 ID:CdaTSQs2]
本文は

/9j/4QIGRXhpZgAASUkqAAgAAAALAA4BAgAlAAAAkgAAAA8BAgAHAAAAuAAAABA
BAgAGAAAAwAAA ABIBAwABAAAAAQAAABoBBQABAAAAygAAABsBBQABAAAA0gAAA
CgBAwABAAAAAgAAADIBAgAUAAAA 2gAAABMCAwABAAAAAQAAAJiCAgABAAAAAAA
AAGmHBAABAAAA7gAAAAAAAAAyMDA3MDkwNjE0MDkw MDAAAAAAAAAAAAAAAAAAA

エラーもでてないしこんなのがずらずらでてるだけだす。
携帯から掲示板に画像をアップしたいけどPCからはできるけど
携帯から送るとこうなってしまって解らなくて;;



372 名前:nobodyさん mailto:sage [2007/09/06(木) 16:03:13 ID:???]
>>371
base64のデータのようだからデコードしてバイナリデータに戻せばいいと思う

373 名前:nobodyさん mailto:sage [2007/09/06(木) 16:30:22 ID:???]
デコードしろよ

374 名前:364 [2007/09/06(木) 17:17:30 ID:CdaTSQs2]
すんません。
初心者なんでデコードしてバイナリデータに戻す方法が
わかりません・・・;;

375 名前:nobodyさん mailto:sage [2007/09/06(木) 17:28:13 ID:???]
だからよー
CGIの中身中身言ってるけど、それは何のCGIなんだよ
メール受信時にforwardとかでプログラム起動して画像データ抽出してんじゃないのか
CGIでメールを直接読んでるのなら、そこでデコードしてるはずだろ

どういう構造で、今どういう動作をしてて、本当はどういう動作をするべきなのか
全部書けよ

376 名前:364 [2007/09/06(木) 17:43:51 ID:CdaTSQs2]
メールをPOPサーバへ接続したりMIME解読したりするmail.cgiに
なってます
CGIの中身を貼りたいけど長すぎて貼れないや・・・


377 名前:nobodyさん mailto:sage [2007/09/06(木) 21:42:23 ID:???]
ここは超初心者用のスレなので低レベルな質問でもokだが、
それは、Perlに対してであり、日本語に対して超初心者用なのでは無い。
>>364の質問に的確に答えられる奴はいないだろう。

例えるなら、「和食を作ったのですが、出来た物が辛いです。
どうしたら良いでしょうか?」と言ってるようなもんだ。
こんな質問には超一流の料理人でも答えられないよ。

つまり、Perlを勉強する前に日本語と最低限の
コミュニケーション術を学んでから出直して来い。

378 名前:nobodyさん mailto:sage [2007/09/07(金) 01:22:28 ID:???]
質問能力が無いやつは
荒らしだから相手にしないほうがいいよ



379 名前:nobodyさん mailto:sage [2007/09/07(金) 01:46:41 ID:???]
mail.cgiは自作なのか?
そうでないならエンコードも入ってると思うがなあ
エンコードそのものはそんな手間でもないので
自分で書くつもりならbase64とmultipartの扱いだけ調べりゃすぐだ

380 名前:364 [2007/09/07(金) 15:23:45 ID:2t2s6ltN]
CGIは無料でダウンロードしたやつだしPERLの知識0だからね
スルーで終了してくれ

381 名前:nobodyさん mailto:sage [2007/09/07(金) 16:17:59 ID:???]
作者のサポートサイトで聞くのが
筋だと思ふ、そういうのは…
改造ならこの板に適切なスレがあるし

382 名前:364 [2007/09/07(金) 16:30:08 ID:2t2s6ltN]
381さん
ありがとう

383 名前:nobodyさん mailto:sage [2007/09/09(日) 12:02:21 ID:???]
複数のラジオボタンの結果の受け取り方がわかりません。
TMPL_LOOPでいくつかのラジオボタンを表示してます。
NAMEはすべて変えてます。
ただparamを配列で受けとればいいのですか?
ラジオボタンの個数とNAMEをhiddenで渡さないとだめでしょうか?

384 名前:nobodyさん mailto:sage [2007/09/10(月) 09:56:44 ID:???]
チェックされてないラジオボタンも欲しいの?
だったらそうなるね

385 名前:383 [2007/09/10(月) 11:57:32 ID:pVVOBct/]
>>384
なんというか、二択のラジオボタンが複数あるということです。
それぞれどちらがチェックされたかが知りたいのですが


386 名前:nobodyさん mailto:sage [2007/09/10(月) 12:17:53 ID:???]
本来なら、同じグループのラジオボタンは同じ名前にしてValueで確認するんだが
全部Name変えてるならその名前で全部チェックしては。
チェックされてなければValueが入ってこない

387 名前:nobodyさん mailto:sage [2007/09/10(月) 19:36:15 ID:???]
>>383
ラジオボタンのグループごとにidを決める。
ex.radio1,radio2...

次にデコード後に送信内容をハッシュに収めて↓みたく値を参照する。
$DATA{'radio1'},$DATA{radio2'}...

これで中身に其々の値が代入される。

388 名前:nobodyさん [2007/09/11(火) 23:05:59 ID:bdpoEocx]
textareaに入力された情報をCGIで受け取りたいのですけどうまく行きません。
どのようにすれば取得できますか?



389 名前:nobodyさん mailto:sage [2007/09/12(水) 00:28:37 ID:???]
つMETHODに合わせて送信情報をデコード

390 名前:nobodyさん [2007/09/12(水) 00:31:26 ID:m2heepaU]
すみませんけど、その情報のデコード方法が分からなくて;;
formなどの受け取りは普通に出来るのですが、
textareaだけは同じように受け取ろうとしても出来なくて、、


391 名前:nobodyさん mailto:sage [2007/09/12(水) 00:52:50 ID:???]
perlで掲示板のcgiつくってます。

terminalから
> /usr/local/bin/perl < hoge.cgi
とすると、
Content-type: text/html;\n\n
<html>
中略
</html>
みたいに目的のhtml書き出せるんですが、ブラウザからやると
500になってしまいます。。。
パーミッション/転送モードは大丈夫です。
何か考えられる原因ってありますか??

392 名前:nobodyさん mailto:sage [2007/09/12(水) 00:53:02 ID:???]
google先生「"perl デコード"に一致する日本語のページ 約 231,000 件」


393 名前:nobodyさん mailto:sage [2007/09/12(水) 00:58:46 ID:???]
>>391
エスパーレス、ブラウザに対する出力がなされていない。
次の文章をスクリプトの最終処理の後にくっつけてみれ。

print "Content-type: text/html; charset=Shift_JIS\n\n";
print "テスト";


これでテストが表示されれば、HTMLの出力なりlocation指定するなりすればよかろう。
それでもアウトなら上の二行を少しずつ処理の前方へとズラしていけ。

394 名前:nobodyさん mailto:sage [2007/09/12(水) 03:04:50 ID:???]
どうせエスパーレスつけるんだったら

> Content-type: text/html;\n\n
> <html>
> 中略
> </html>

print 'Content-type: text/html;\n\n'; と書いてるところを
print "Content-type: text/html;\n\n"; に書き換えろ
じゃないのか。出力がそうなってるらしいし。

395 名前:394 mailto:sage [2007/09/12(水) 03:06:38 ID:???]
ていせい。

誤: print "Content-type: text/html;\n\n"; に書き換えろ
正: print "Content-type: text/html\n\n"; に書き換えろ

396 名前:nobodyさん [2007/09/20(木) 19:00:31 ID:tH1/iNYn]
動的なトップページですが、HTMLに複数のSSI(例えば5つ以上、index.shtml)を使うのと、perlで全て一括で出力(index.cgi)させるのとではどちらがサーバにやさしいですか?

397 名前:nobodyさん mailto:sage [2007/09/20(木) 20:28:19 ID:???]
その程度じゃ変わらないから気にするな

398 名前:396 mailto:sage [2007/09/20(木) 21:20:19 ID:???]
>>397
了解です。
PHPを覚えるまではindex.cgiにしてみます。



399 名前:nobodyさん [2007/09/24(月) 16:40:32 ID:HMQ03/cj]
家庭的な事情で貧乏学生なのでお金稼ごうとWebアプリ作ろうと思っています。
将来的にIT系に就職を考えてるので、もし失敗しても良い経験になるかなと思ってます。

質問なのですが、WebアプリはGatewayの7万円台で買った安パソコンでも作れますか?
一応情報系なのでPerlやコンピュータの基礎知識はあるつもりですが、
制作実務経験が足りてないもので、ましてやWeb系は手を出したことがなく右も左も上もわからない状態です。
調べたところCatalystというフレームワークがよく使われるそうですね。
簡単に作れるというふうに書いてありました。
しかし、常識的に考えると、serverを増強していくのにかなり費用が必要だったりするので、
ちょっと学生が手を出して儲かる世界なのかなと思います。
学生で儲かっている人はいますか?
周りの友達などからは何もそういう類の情報がないので、わかりません。
ちょっと傲慢な申し出ですが、何か少しでもヒントやアドバイスを頂ければと思う次第であります。

400 名前:399 [2007/09/24(月) 16:52:16 ID:HMQ03/cj]
すみません。上のものです。書き忘れていました。
Webアプリは一人でも開発できますか?
もちろん、一人が作ったという話はちらほら聞きますが、
Perl暦一年の私でも大丈夫でしょうか?
PerlはLLだから簡単という話もありますが、一人だと出来ることはかなり小規模なものに限られてくるのでしょうか?
たとえば、はてなは少人数ですが、みんなすごいPerl使いなはずなので、はてなを見て「少人数でもあれだけのものが
作れるのだから、一人でもそれなりのものが作れるはずだ」などと思うのは早計でしょうね。
何が言い対価というと、一人だときついかもしれないということです。
個人的にはこのように(勝手に)判断していたのですが、最近どうしても学生のうちに作りたいと
思ってきたので、一人で作れないかと思い始めています。
ちなみに、協力者(同志)はいまのところいそうにないので、まずは一人で作る線で考えている次第です。
Web系のPerl熟練の皆様の判断をいただければと思います。

どうかよろしくお願いいたします。


401 名前:nobodyさん mailto:sage [2007/09/24(月) 17:15:49 ID:???]
一人でも中規模だろうが大規模だろうが作れる。
できなければリーナスは誕生していない。
CだろうがJAVAだろうがPerlだろうが計算機は所詮計算機でしかない。

402 名前:nobodyさん mailto:sage [2007/09/24(月) 17:40:21 ID:???]
ヤフーや日経の株価・為替レートを自サイトで表示したいです。
   2チャン工業[150円]+0.5%   ひろゆき証券[3,270円]+1.7%
みたいに表示させたいです。
parlでできる事は調べたら分りましたが、解説サイトが少なくて分りにくいです。
どこか初心者向けのないでしょうか?

www110.kir.jp/study/jissen/script2143.html
↑これをhtmlに変換したけど動かなかった。
d.hatena.ne.jp/hetappi/20070313/1173800678
↑これは動いたけど、もっと沢山数値が欲しい時どうするのか分らない。

403 名前:nobodyさん mailto:sage [2007/09/24(月) 18:26:44 ID:???]
一つだけアドバイス。
本で買える情報は本で買ったほうが早い。

時間が有り余っているなら別ですが。

404 名前:399 [2007/09/24(月) 18:28:06 ID:HMQ03/cj]
>>401
ありがとうございます。
作れるのはいいとして、
しかしサーバ増強などに費用がかかりませんか?


405 名前:nobodyさん mailto:sage [2007/09/24(月) 20:05:11 ID:???]
グーグルは
スタンフォード大学の
コンピューターセンターに
転がってるマシンを勝手に
無断で持ってきて自分達のものにしてた。

また、配送されてきて、
梱包を解かれないで
配送センターに放置されたままの
マシンは
「誰も必要としていない」
と勝手に判断して、それも
自分達のものにしてた。

406 名前:nobodyさん mailto:sage [2007/09/24(月) 20:42:24 ID:???]
>>404
いったいどの程度の規模のサイトを作るかによる。
(単位時間当たりのアクセス数、コンテンツの要領、動かすアプリのメモリ使用etc...)

まあはっきり言って、Dellやらのやすもんセットでも、ちょっと型落ちの中古機なんかでも
サイト立てるだけなら全然可能。(それこそ3〜5万位のマシンでも十分)

初めから処理能力とかハード的なこと気にするより、とりあえず自分でサイトなりなんなり立ててみて、
公開とか運用とかしてみる。

それでハード的にきつそうになってから、気にしましょう。


407 名前:399 [2007/09/24(月) 21:13:35 ID:HMQ03/cj]
>>405 nice hackですね。感動しました。Google信者なので、見習おうと思います。

>>406 やってみないと分からないですね。規模は。
目標は、10,000PV/day, 100MBのコンテンツ です。

サイト立てるためにapacheというやつを導入しました。
localhostを立てるまでは出来ました。
この調子でいくとlampかなと思ってます。
Windows依存できたので、1からunix勉強しなおすのは少し大変です。

ありがとうございます。


408 名前:nobodyさん mailto:sage [2007/09/24(月) 22:40:40 ID:???]
>>407
その3-5倍程度のサイトを椅子で運営してるがレンタルでもクレーム来たことない。
まぁ、共用ですらその程度なら大丈夫ってことだ。



409 名前:399 [2007/09/24(月) 22:50:31 ID:HMQ03/cj]
>>408
貴重なアドバイスありがとうございます。
すみませんが、椅子、レンタル、共用というのはどういう意味ですか?
検索にかけてみたんですが、わかりませんでした。
お手数かけてすみません。。

410 名前:nobodyさん mailto:sage [2007/09/24(月) 23:29:42 ID:???]
椅子はともかく
レンタル・共用が分からないってのは……

411 名前:nobodyさん [2007/09/24(月) 23:34:58 ID:HMQ03/cj]
>>410
質問の仕方が悪かったようです。
共用サーバサービスやレンタルサーバなら聞いたことあるんですが、
レンタルや共用が何の略かが分からなかったんです。

何か根本的に基礎知識がかけていると考えたほうが妥当でしょうか?
先達は、どのようにして知識を得たのでしょうか?

412 名前:nobodyさん mailto:sage [2007/09/24(月) 23:41:48 ID:???]
>>411

#/usr/bin/perl

#生きてる限り勉強
while(>>411){
 print "トライ&エラー";
}
__END__

413 名前:nobodyさん [2007/09/25(火) 00:10:08 ID:OOv8Weab]
>>412
なんだかそう言われると、これまで学習を継続してきたことを肯定されたようで
安心します。笑
とりあえず、これまでやってきたことは当たり前のことではありますが、少なくとも
間違ってはいなかったと思えました。




414 名前:nobodyさん mailto:sage [2007/09/25(火) 00:27:49 ID:???]
>>413
一年やってきたとは言っても、動くスクリプトはどれだけ書いたんだ?

415 名前:nobodyさん mailto:sage [2007/09/25(火) 00:50:17 ID:???]
成功するような奴はこんな所でグダグダ質問する前に行動してる奴だ

416 名前:nobodyさん [2007/09/25(火) 00:53:46 ID:OOv8Weab]
>>414
動くスクリプトというのはどういうことなんでしょう。

スクリプトは1日平均100行くらいですかね。
やっていた時期は、300行くらいでしたが、最近はネットワークやUNIXに関する勉強にも
追われていて。

417 名前:nobodyさん mailto:sage [2007/09/25(火) 01:14:03 ID:???]
>>415
ここで質問するよりも、本を読むよりも↓行って作って来い。
多分その方がいい勉強になる。作れないものは調べて作る。

ご希望のCGIを作成いたします
pc11.2ch.net/test/read.cgi/php/1145308869/

418 名前:nobodyさん [2007/09/25(火) 01:37:09 ID:OOv8Weab]
>>415
その行動としてどういったものが妥当かを入念に検討しているのです。
私は学生なので、行動範囲も限られはしますが、まずは手始めにWeb applicationを制作しようかと
考えております。
一年perlやってきましたが、これまではこれを生かそうという計画はなかったのですが、
それは行動力がなかったというよりも、
もとからそういう発想がなかったんです。
それがここ数週間に間に急にWeb applicationをやろうという欲望がふつふつとわきあがってきているので
自分でも驚いています。
この欲望を実現すべく、過去の先達たちはものすごい行動力を発揮してこられたのでしょうが、
私も負けてはいません。

>>417

CGIを作ってもらうんですか。
スレッド見ました。
オープンソースのperl scriptを見るのも良い勉強になりますよね。

あと、思うんですが、方法にグタグタこだわるよりも、何をやりたいかが
大事ですよね。
ところが、自分の場合は何をやりたいかが明確なのにそのための方法がまるで
分からないというか少しずつ分かっているのですが、
その分かっていくスピードがあまりに低速であきれているんです。
なんと進みにくいのだろうかと。
だから、少しでも速く進めるように先輩方のお力を頂きたくこのスレッドに
参上いたしました。



419 名前:nobodyさん mailto:sage [2007/09/25(火) 16:28:46 ID:???]
思うんだが行って参考にならないよな。
俺が苦労して書いた10行ぐらいの処理が
うまい人だと2〜3行で処理効率も上とか普通にあるし。

420 名前:nobodyさん mailto:sage [2007/09/25(火) 17:11:40 ID:???]
参考にならない。
「○○するスクリプトを××行で書きました」
ならまだしも。


421 名前:nobodyさん mailto:sage [2007/09/25(火) 18:43:18 ID:???]
経験に対して行数を申告する人って何か誤解してる人が多いと思う

422 名前:nobodyさん mailto:sage [2007/09/25(火) 20:20:09 ID:???]
行数で測るなんて無意味だよな

423 名前:399 [2007/09/25(火) 21:39:39 ID:tW7VjElz]
行が参考にならないのですか。
申告すべきものが何もなかったので行を申告しました。

ところで、上のほうで少し書いたかもしれませんが、私は長いプログラムを書いた経験がありません。
そこで、サイト制作に着手しようかと今日サーバについて調査しておりました。
そこで質問ですが、アプリケーション開発はどういう手順で行われるのでしょうか?
一応情報系なので、要件定義から設計・coding、テストといった過程については勉強したのですが、
実際の現場でどういう開発工程がとられているかというのは、
いかなる手段で学べばいいのでしょうか?
やはり、アルバイトが一番でしょうか。
しかし、アルバイトは当たり外れが大きいとも聞きます。


424 名前:nobodyさん mailto:sage [2007/09/25(火) 21:43:43 ID:???]
なんだいろいろ理由つけて面倒なことは避ける主義か

425 名前:399 [2007/09/25(火) 21:55:39 ID:tW7VjElz]
>>424
というよりは、これも自分のなかでは地道な努力の一環なのですが、いかがでしょう。
たとえば、第一線の開発者が実際にどんなツールや手法やスタイルで仕事をしているか、
というのは学生が学ぶのは困難なのでしょうか、ということを現在調査中なのです。

426 名前:nobodyさん mailto:sage [2007/09/25(火) 22:14:32 ID:???]
調査した成果をここで報告してくれんの?

427 名前:399 [2007/09/25(火) 22:23:40 ID:tW7VjElz]
>>426
はい。どういう形で報告すればいいのか指定くだされば、検討します。

428 名前:399 [2007/09/25(火) 22:32:09 ID:tW7VjElz]
私のようなしがない学生が言うのもなんですが、瑣末なテクニックの習得よりもまずは
現場の空気を吸うことが大事かなと考えまして、それで、さっそくサーバについて調査していたのです。
幸い、私にはやりたいことがそれなりに明確です。だが、よく考えてみると道のりがはなはだしく曖昧なのです。
それは当然です。全く未経験なのですから。

そこで、「ロードマップ」が欲しいと考えたのです。
何かおかしなところがあればご指摘ください。



429 名前:nobodyさん mailto:sage [2007/09/25(火) 22:38:38 ID:???]
まずはやってみろ。


430 名前:399 [2007/09/25(火) 22:39:50 ID:tW7VjElz]
>>429 いまやってます。

431 名前:399 [2007/09/25(火) 22:41:44 ID:tW7VjElz]
誤解のないように解説しますと、いま現在も私は調査活動を続行中です。
他所で調査をしながら、ここでも質問しているという次第です。
ただし、マルチポストはしていませんよ。笑

432 名前:nobodyさん mailto:sage [2007/09/25(火) 22:42:20 ID:???]
omotiを思いだしたのは俺だけだろうか、、、
まあ、コードを書いた経験があるだけomotiよかましだろうが
「ハイキング程度の人間がエベレストに挑む」
「プーアルが完全体セルに挑む」
のを単に夢想してるだけだ。
「ロードマップが欲しい」?
地図の見方すら分ってない人間に分るようなフローチャートを無償で作れと?

おまえさんがやるべき事は経験を積むことだよ。
ここでうだうだ、くだらん持論を述べる事ではなく。

さっさとアルバイトに応募しろ、外れだと思ったら止めて他を当りゃいいだけだ。

433 名前:399 [2007/09/25(火) 23:08:16 ID:tW7VjElz]
>>432
ある意味納得です。アルバイトへの応募も必要だし、経験を積むことをするのは必須事項でしょう。
omotiって何か知りませんが、私は地図を読む能力がゼロだとは思いません。
私は自分を過少評価する傾向がありますが、それをゼロだと言ってしまうと、卑下しすぎでしょう。

地図を必要とする理由は、地図を頭に入れてから実践したほうが効率面で有効だと判断したからです。
どういった手段で、先人達は、地図を入手してこられたのでしょう。素朴な疑問。



434 名前:nobodyさん mailto:sage [2007/09/25(火) 23:29:27 ID:???]
>>433
>omoti
ぐぐれ。
>地図を読む能力
「読む」のは誰でも出来る、経験に応じたレベルで。
経験を積むと見方が分ってきてより深く地図を読むことが出来るようになる。
>自分を過少評価
何様だ?オマエ。

経験をコードの行数で書くようなドシロウトみたいなマネしといて、
よくもまあ、自分を過大評価出来るもんだ。

435 名前:nobodyさん mailto:sage [2007/09/25(火) 23:38:09 ID:???]
アルバイトに来られる側の人間として一言だけ
迷惑だから来ないで下さい

436 名前:399 [2007/09/25(火) 23:45:43 ID:tW7VjElz]
>>434
どうも意志の伝達が正常に行われなかったようです。
自分を過少評価というのは、自分が偉いというのとは逆に、
自分をネガティブに評価する傾向があるという私の一般的性質を指しています。
だから、なぜあなたが怒りを発生させたかについては責任を負いかねます。

それから経験をコードの行数で書くのが実力や経験量を測定する尺度としてあまり妥当な手段でないことは認めるものの
何がしかの尺度にはなるかと思います。
一応情報系なので日常会話で行数について耳にしますので、補足しました。

>>435
アルバイトに来ると迷惑ですか。
私はやる気だけはありますよ。これまでもアルバイトしてましたが、面接でそう言いました。

437 名前:nobodyさん mailto:sage [2007/09/25(火) 23:52:05 ID:???]
>>399
PMだけを目指すのならともかく、若いうちはガンガンスクリプトを書いとけ。
出来たものから汎用性のある部分をモジュールとして使えるようにしろ。
モジュールとして使わないまでも、関数なりクラスとして再利用出来るようにストックしとけ。


ロードマップだの何だの言うよりも、とにかくショウモないスクリプトでもいいから書いて書きまくれ。
言われてることが分からないなら、とっとと現実に戻ってクソして寝てみる夢を見つづけろ。

438 名前:nobodyさん mailto:sage [2007/09/26(水) 02:18:47 ID:???]
perlの仕事なんか無いよ



439 名前:nobodyさん mailto:sage [2007/09/26(水) 02:21:03 ID:???]
namcoの遠藤みたいにプログラムなんか欠片も知らないで入って
それでいてゼビウスのようなゲーム作って大成功する奴もいるんだ
お前みたいに能書きだけで先に進もうとしない奴は何やっても駄目


440 名前:nobodyさん mailto:sage [2007/09/26(水) 02:24:18 ID:???]
>>399
とりあえず、会員制のサイトでも作ってみたら?最初はモジュールを
使わず、全てPurePerlで組む。完成しても公開はしない。あくまで、
自分の学習用。機能としては…
・新規登録フォームで必要項目を記述して送信すると
 入力されたデータを保存。同時に確認メール発射。
・確認メールの中にURLが記入されていて、そこに
 アクセスすると入会登録完了。
・入会登録完了すると完了メールが届いて、そこに
 書かれているIDとパスワードでログイン。
ここまで出来れば、Webサイトを作成する上での基本は学べると思う。

その後に、サイトの中でBBSなりユーザ情報設定等を追加していく。
ここまでで、Webサイトを運営する上で解決策が学べると思う。

その後に、同じ物をモジュールを使って作り直す。
ここまでで、モジュールの有難さを学べると思う。

ここまでできて、解らない事があれば、質問してくれ。逆に
それまでは、自分の力で解決してくれ。途中でどうしても
自分の力で解決できなければ、才能が無いので、諦めてくれ。


441 名前: ◆T7TfLMI9dM mailto:sage [2007/09/27(木) 00:54:04 ID:???]
2ch検索でうっかりomotiを入力しちゃった俺が来ましたよw

>>399
いきなり大きなものを一から作ろうとすると挫けるから、自分の思ってる機能に
一番近いものを実装してるCGI探してきて設置。まずはそれを好きなように
改造しまくる。これだけで一通りの流れは掴めると思う。次が>>440かな。

ちなみに個人で始めるWebサービスは99%赤字になるから、金が欲しいなら
素直に今できるバイトで稼げ。

442 名前:nobodyさん mailto:sage [2007/09/27(木) 22:26:20 ID:???]
タクトと同じ匂いがする...

443 名前:nobodyさん mailto:sage [2007/09/28(金) 09:09:43 ID:???]
初心者スレにも湧いてるしな。
うざったいことこの上ない。

444 名前:nobodyさん mailto:sage [2007/09/28(金) 20:52:36 ID:???]
その前はProgの方のperlスレに湧いてたw
全部同一人物かw

445 名前:437 mailto:sage [2007/09/29(土) 00:32:05 ID:???]
やっぱり口だけ君だったのか。
プログラミングなんて習うよりも作れだというのに。

446 名前:nobodyさん mailto:sage [2007/09/29(土) 01:20:03 ID:???]
T7すっげぇ久々に見たな
ってか実はいつもいるのか?

447 名前:nobodyさん mailto:sage [2007/09/29(土) 01:25:07 ID:???]
どこに沸いたって?

448 名前:nobodyさん mailto:sage [2007/09/29(土) 13:45:18 ID:???]
どのスレかわからんが、いつも見てるやつじゃないとOmotiを知らないし付き合わんだろw



449 名前:nobodyさん mailto:sage [2007/10/04(木) 08:24:35 ID:???]
質問です。
if ($vote_terminal == 0){$voteflag = 1;}
else{
$a1 = $ENV{'HTTP_USER_AGENT'};
if (($a1 =~ /^DoCoMo\//)||($a1 =~ /^ SoftBank\//) ||($a1 =~ /^UP\.Browser/)){
if ($vote_terminal == 1){$voteflag = 0;}else{$voteflag = 1;}
}
elsif ($vote_terminal == 1){$voteflag = 1;}else{$voteflag = 0;}
}

HTTP_USER_AGENTの部分をREMOTE_ADDRにしたいのですが
携帯電話会社のIPアドレスをどう追加してやれば良いのでしょうか?

携帯電話のIPアドレスリスト
ja.wikipedia.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:Tietew/%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AEIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%AA%E3%82%B9%E3%83%88

450 名前:nobodyさん mailto:sage [2007/10/04(木) 09:06:18 ID:???]
その部分を変えても仕方ないと思うが。
IPアドレスで判定する部分そのものを新たに追加するってんならわかるが。

451 名前:449 [2007/10/04(木) 13:54:49 ID:wlik/mVj]
レスありがとうです。
そうなんですか
尚更手に追えそうもないです;
失礼しました

452 名前:nobodyさん mailto:sage [2007/10/06(土) 23:30:58 ID:???]
標準入力を二度読み込みたいんだけど、方法ないですか?
目的は一度、デコード&整形した後でデコードだけの整形していないデータを取り出すこと。
seek STDIN 0, 0;は既に試しました。

453 名前:nobodyさん mailto:sage [2007/10/06(土) 23:35:10 ID:???]
最初に配列に放り込んでキープしておけば?

454 名前:nobodyさん mailto:sage [2007/10/06(土) 23:40:05 ID:???]
>>452
STDIN→デコード→ファイル1に保存→整形→ファイル2に保存

ができない訳を言え

455 名前:nobodyさん mailto:sage [2007/10/07(日) 00:05:53 ID:???]
>>454
やっぱり、その方法が手っ取り早いですか?
考えてはみたけど、それなら結局は最初から変数に読み込んで後で使う方がいい気も…
んー、キーボード入力じゃなくてPOSTデータだから取り出せるものと思ってました。
一生手を入れないでマージンまでやってくれるクラスを作ろうと思ってまして。

456 名前:nobodyさん mailto:sage [2007/10/07(日) 02:14:11 ID:???]
>>455
何だか大きく勘違いをしているような気がするが、
POSTデータなら最初から変数に入ってる

457 名前:nobodyさん [2007/10/21(日) 09:54:12 ID:xMq+XN4p]
やりたいこと:mod_perl2をインストールしたい。
できなかったこと:ActivePerlへのppmを通じたインストールがうまくいきませんでした。
やったこと:ActivePerl5.8.8上でmod_perl2をインストールしようとし、
ppm> rep
Repositories:
[1] theoryx5.uwinnipeg.ca
...
[7] Autonamed 2
ppm> search mod_perl
Using cached search result set 1.
1. Apache-mod_perl_gui~ [1.31] mod_perl Guide
2. mod_perl [2.0.3] Embed a Perl interpreter in the Apache/2.2~
3. mod_perl [1.29_01~ Embed a Perl interpreter in the Apache/1.3~
....
ppm> install 2
Package 2:
====================
Install 'mod_perl' version 2.0.3 in ActivePerl 5.8.8.817.
====================
Downloaded 2886493 bytes.
Extracting 737/737: blib
Error: can't run 'C:\Perl\bin\perl.exe install_script': No such file
or directory
となったので、「"install_script" ActivePerl」でググってみたりしたのですが、
どこに問題があるのか特定できませんでした。

次のアクションをご教示ください。よろしくお願いいたします。

458 名前:nobodyさん mailto:sage [2007/10/21(日) 10:59:29 ID:???]
>>457
apache2.2は入ってるのか?



459 名前:457 [2007/10/21(日) 11:18:08 ID:xMq+XN4p]
>>458
入ってます。

460 名前:nobodyさん mailto:sage [2007/10/21(日) 11:19:32 ID:???]
>>457
ん?うちでは問題なくinstallできるべ。

>>458が言ってるみたいに、
Apache2.2じゃなくて、Apache2.0にmod_perl入れたかったら、ppm install mod_perl2.0 ってしなきゃだめよ。

ちなみにひとつ言っとくが、Win版の2.0.61,2.2.6では両方とも、theory58Sのmod_perlは正常に動作しないべ。

あと、install_scriptってのはこれのこと
theoryx5.uwinnipeg.ca/ppms/scripts/install_modperl

461 名前:nobodyさん mailto:sage [2007/10/21(日) 11:32:16 ID:???]
失敬。リロードしてなかった。

で、もっかい、今度は、(threory58Sはreposにいれてるんだよな?)
ppm install mod_perl ってやってみ。

462 名前:nobodyさん mailto:sage [2007/10/21(日) 11:43:40 ID:???]
実はapache2.0を入れているという罠

463 名前:どうしてパンチラが流出? mailto:パンチラなし?佐藤ゆかりタン? [2007/10/21(日) 14:04:29 ID:???]
          _      ⌒ヽ_  / `ヽ、
       /´_  `ヽ、 ,ィ''´ ̄ハ、i,/lヽ、 l!
      ,ィ´/'´/::/:::ラ./   / /!イソ !i .ハ /
    /゙ ! ' ::´:::::::|:// / ,イ  /!"゙ヾ|リ i メ
    ! | :: ::::::ri/| |:::i|ハ i.|| i,/|!  _//!:::|::::|
       |  :: .::イリノハ ::!lィl丙`|/ |、 _ハ/::/:::;/
       i  ; ::::レl/ !,ヾ、! ゙'゚┘   尤i'/,' / 20万人くらいが見ちゃったパンチラ!?
     /  !..:::::l/ ::::アi. 、    , ゙‐'ソ'"'´ 元女子アナウンサー丸川珠代さん(白パンティー)
  ト、_// :::|:::::/ ::::://^ヽ、 ~ ,.ィi′ ex21.2ch.net/test/read.cgi/ana/1191988450/9
  `ー'ナ/.:/::::/ ::::/´!   ヾ "´l:::l|
    i / .:|:::/ :::;ィ/ |!    ヽ:::!:riト、_, 日本人でよかった♪ 白でよかたーーー!
      !| /:|/ .//! ,!| ヽ   ヾ、,リ この番組で有名となった参議院議員(東京)のまるたまさん
     | | //:::/:::! ! \. \   ヽ\ love6.2ch.net/test/read.cgi/furin/1148694809/174
     ヾ// ::::/:::::|ノ  _二;ヽ   ゙、 ,}
     オ′:::i :::::::|/ ̄   \  ヾー-、 たけしさんとツーショットのまるちゃんに注目!(白パンティー)
    / | :: ::|::::::::::!       ハ    iヽ i でも、小泉チルドレン筆頭の
    i |  ::|:::::::::リ      ,イバー‐'′! ヽ 佐藤ゆかりタン萌えパンチラは無いよーーーーーーん
    ! |i  : :|:::::ノ       i /ハ | / |  \
      ヾ _,, !<_.       { ///"     ヽ
  _,. ‐''";;;;;;;,:'";;;;;/ ゙̄T''''r-レ  \  _   i
  ヾ"、_;;;;_,;:'";;;;;;;;;;/;;;;;;;;;i;;;;;l;;;;;|    }=ニl!;;ト、 /
  ヾ;;;;;;/`''ー--ヶ、;;;;;;シ;;;;;;|;;;;;;!   ぐー`"ヽ!
   ヾi'     /  ヾ、;;;;;;;/;;;;;;;|  〈´  ̄~゙'''┘
     ;ヘ   , i    ゙\;;;;;;;;;ハェュj パンチラ規制厨と闘ってます
    ! `ヽ、'_,{_      ゙\;;;;;| qb5.2ch.net/test/read.cgi/sec2chd/1192266095/639

464 名前:457 [2007/10/21(日) 15:13:46 ID:xMq+XN4p]
>>461
やはり無理でした。
>>462
再確認しましたがapache2.2です。

--------------------------------------------

やむを得ず、「何かカオスな理由でトラブルが起きた」ということにして、
ActivePerlのリインストールという強硬手段に出ました。
その結果、無事インストールできました。

結局、問題の原因はミステリーのままに。^^;


アドバイスくださった方、ありがとうございました。

465 名前:nu. [2007/10/21(日) 15:30:36 ID:hpzcI35P]
初めまして超くだらない事かもしれませんが質問させてください。
OceanGrid形式の動画を録画するにはどうしたらいいですか?
また録画出来るものなのでしょうか…?
よろしくお願い致します。

466 名前:10い mailto:d [2007/10/21(日) 19:05:50 ID:???]
質問します。
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
上みたいなのがあったとして、 USER_AGETNに、bot かtwiceler があると。
って感じなのですが、これですと例えば、Googlebotが来ると一致してしまいます。
bot以外の Googlebot や 1bot、 bots などに合致させない方法はありますか?
ifからの文はなるべく変えない方法を教えてください。
できれば、=~// この中の範囲内の変更でできないでしょうか。よろしくお願いします


467 名前:nobodyさん mailto:sage [2007/10/21(日) 19:16:00 ID:???]
and $ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/

これを条件に加えるのがわかりやすくないかな

468 名前:10い mailto:d [2007/10/21(日) 19:37:52 ID:???]
>>467 お答えありがとうございます
467さんが書かれたのは、botに一致しないのでしょうか?
test下のですが and にエラーがでてしまい結果がでません
Premature end of script header
s: /home/oo/public_html/index.cgi
syntax error at /home/oo/public_html/index.cgi line 462, near "and"
Execution of /home/oo/public_html/index.cgi aborted due to compilation errors.

前後の流れは
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
else{&zap2;exit;}

のifからの部分を
and $ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}のように変えてエラーです






469 名前:nobodyさん mailto:sage [2007/10/21(日) 19:43:45 ID:???]
めちゃくちゃ古いヴァージョンなら and => && でどーでしょ

470 名前:10い mailto:d [2007/10/21(日) 19:51:36 ID:???]
エラーが
syntax error at /home/oo/public_html/index.cgi line 462, near "=> &&"
です

$perl -version
This is perl, version 5.005_03 built for i386-freebsd
apache はApache/1.3.39 です
パールを最新にしてみます

471 名前:nobodyさん mailto:sage [2007/10/21(日) 19:58:24 ID:???]
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/ and
$ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}

エラー出ないよ

472 名前:10い mailto:d [2007/10/21(日) 20:18:23 ID:???]
>>471さん
取り急ぎ
andから書いてました
perlのアップグレードを始めてしまってなかなか終わらないので
終わったら試して確認してみます


473 名前:10い mailto:d [2007/10/21(日) 21:22:35 ID:???]
>>471 上行のキーワード完全一致だけがzap4に飛びました
perlのバージョンじゃなくて書き方が違っていたようです
!~/hoge/ の意味を教えてください

474 名前:nobodyさん mailto:sage [2007/10/21(日) 21:58:00 ID:???]
hogeにマッチしなければ真を返す(=~/hoge/の逆)

475 名前:10い mailto:d [2007/10/21(日) 23:00:45 ID:???]
>>474ありがとうございます

476 名前:nobodyさん mailto:sage [2007/10/23(火) 20:50:38 ID:???]
変数が配列であるかどうかを確認するには、どうすればよいのでしょうか?

477 名前:nobodyさん mailto:sage [2007/10/23(火) 21:36:17 ID:???]
wantarray

478 名前:nobodyさん mailto:sage [2007/10/23(火) 21:54:51 ID:???]
>>477
すいません、
sub write {
my $name = $_[0], $data = null;
if ( $_[1]が配列かどうかを確認したい ) { $data = join( "\n", $_[1] ) }
else { $data = $_[1] }

open( OUT, ">$name" ) || return 1;
print OUT $data;
close( OUT );
return 0;
}
のようにして、ifのところで、$_[1]が配列かどうかを確認したいのですが・・・・・
wantarrayの使い方がいまいち理解できませんでした。
このような場合は、どのようにすればよいのでしょうか



479 名前:nobodyさん mailto:sage [2007/10/23(火) 23:15:24 ID:???]
>>478
「$_[1] が配列」ってPerlの言語仕様上ありえないわけだが?
$_[1]が配列のリファレンスか否かってんであれば、
if ( ref $_[1] eq 'ARRAY' ){ }

まあ、ソースを拝見した所、おそらく
&write( 'name', @data ) ;
あたりで呼ぶんだろから、
my $name = shift @_ ;
my $data = undef ;
if ( @_ >= 1 ){ $data = join( "\n", @_ ) ;}
でいいんじゃね?

余分なことだが、
1. write は perl ですでに使われてるので他の名前にした方がいい。
2. 、、、、まあいいや。

480 名前:nobodyさん [2007/10/24(水) 13:14:01 ID:nBn+cskB]
いまだにphpではなくperlで動いているあたり。。。
ttp://yoshihi6.com/perl/?q=http%3A%2F%2Fja.wikipedia.org%2Fwiki%2FPerl

481 名前:nobodyさん mailto:sage [2007/10/24(水) 18:26:51 ID:???]
>>479
その方法で解決しました。
ありがとうございます。

482 名前:nobodyさん [2007/10/25(木) 17:20:59 ID:ZciT02o+]
スライスした配列の参照を表現するにはどのように書けばいいですろうか。
@org[0..2]のリファレンスを作るとして、
イメージは$ref = \@org[0..2];みたいなことなんですが・・・

483 名前:nobodyさん mailto:sage [2007/10/25(木) 18:16:27 ID:???]
$ref = [@org[0..2]];

484 名前:482 mailto:sage [2007/10/25(木) 18:38:58 ID:???]
>>483
おおっ、なるほど!無形配列に入れるんですね。
勉強になりました!

485 名前:nobodyさん [2007/10/26(金) 10:43:23 ID:HBlkZ3uQ]
セッション変数で配列の扱い方はどうすれば良いでしょうか。

検索結果の一覧画面Aで、リンク文字列からは検索結果をCSVファイルに出力しようとしてます。
HTMLタグで、リンク先にURL引数として動的に実行時の回数を渡します。
↓----
<a href="data.cgi?num=(実行時の回数)>CSVデータ出力</a>
----
そして、実行回数とSQLをセッション変数に保存します。
↓----
# 一覧画面Aの実行回数を更新
my $numListA = $session->param('numListA');
++$numListA;
$session->param("numListA", $numListA);

# 一覧画面のN回目の実行時のSQLを保存
$session->param('ListAsql', $sql);
----
現状は上記のようにしてますが、これはまだ単一のSQLしか格納できない状態です。
これを配列でN番目の要素にSQLをを格納したいと考えてます。


486 名前:nobodyさん mailto:sage [2007/10/26(金) 13:37:59 ID:???]
状況がハッキリ想像できてないので迷惑な答えになってしまうかもしれないけど
CGI-Sessionではたしか配列はリファレンス渡しだったと思う。

最初に↓こう準備しておいて
$arrayref = [];        #初期化式
$session->('sql', $arrayref); #セッションに格納

その都度
$$arrayref[0] = $sql;
$$arrayref[1] = $sql;
$$arrayref[n] = $sql;

でいけるかも?

487 名前:nobodyさん [2007/10/26(金) 17:05:53 ID:1fUnrvio]
ほんとにどうしようもない初心者なのですが誰か教えてください。

#!C:/Perl/bin/perl

require "cgi-lib.pl";


&ReadParse(*input);


@list={$input{'a'},$input{'b'},$input{'c'}}

$result=0;

foreach $value (@list) {
if($value == 0){$result++;}
elsif($value == 1){$result=$result+2;}
else{$result=$result+3;}
}

if($result<=1){$message = "文章1";}
elsif(($result>=2)&&($result<=4)){$message = "文章2";}
else{$message = "文章3";}

inputにはラジオボタンから0〜2の値が送られてくるように設定してあります。
messageが結果として表示されるようにしてあるんですが何度やってもエラーがでてしまいます。
どこが間違ってるのでしょうか?

488 名前:nobodyさん mailto:sage [2007/10/26(金) 18:26:02 ID:???]
@list=($input{'a'},$input{'b'},$input{'c'});



489 名前:nobodyさん [2007/11/01(木) 10:55:03 ID:yhsG2JfP]
index.cgiからhtml.plをrequireし、
html..plの中でinfo.plを使いたいのですがどうしたら良いのでしょうか。
下のような感じではうまくいきませんでした。

==index.cgi==
#!/usr/bin/perl

require "./html.pl";
&html::header();

==html.pl==
Package html;

require "./info.pl";
sub header(){
print $header;
}

1;

==info.pl==
$header="Content-type:text/html¥n¥n";



490 名前:nobodyさん mailto:sage [2007/11/01(木) 11:10:49 ID:???]
構造に問題があると思うけど、
PackageのPを小文字にすればいいと思うよ

491 名前:nobodyさん [2007/11/01(木) 11:19:21 ID:yhsG2JfP]
>>490
packageのpは実際のソースのほうは小文字になってました。
投稿ミスorz
あとinfo.plの1;も投稿時の書き忘れです。
構造??

492 名前:489 mailto:sage [2007/11/01(木) 12:16:29 ID:???]
自己解決しました。
print $header;を
print $main::header;
にしたところ、Content-type:text/html¥n¥nが出力されました。



493 名前:nobodyさん mailto:sage [2007/11/01(木) 19:49:10 ID:???]
headerの出力をinfo.plでする意味がワカランのだが?
index.cgiで出力の制御
html.plでHTML文書の構造制御
info.plでHTML文書の内容を制御
にした方が構造的には綺麗にまとまるとオモ。

494 名前:nobodyさん [2007/11/03(土) 04:03:09 ID:0ypwQ9jZ]
CGI上のIDやパスワード認証のログを保存するにはどう書き足せば良いでしょうか?

495 名前:nobodyさん mailto:sage [2007/11/03(土) 04:35:48 ID:???]
fwrite($fp, $id.$pass);

496 名前:nobodyさん mailto:sage [2007/11/04(日) 01:00:13 ID:???]
>>495がPHPに見えるけど、酔っ払ってるせいだと思ってとっとと寝よう。

497 名前:nobodyさん mailto:sage [2007/11/08(木) 09:06:26 ID:???]
禁止メールアドレスを複数設定したいのですがどうすればよろしいですか?
1週間前にcgiを知りましてなんとか1語ではできるようになったのですが・・・
ヒントでは理解できそうもないのでずばり回答でお願いします。

# 禁止メールアドレスチェック
if ($in{'email'} =~ /yahoo/) {
&error("フリーメールはダメ");
}


498 名前:nobodyさん mailto:sage [2007/11/08(木) 12:50:47 ID:???]
まず、それだとfooyahoooo@docom*.ne.jpとかも弾いてしまうわけだが



499 名前:nobodyさん mailto:sage [2007/11/09(金) 01:30:01 ID:???]
>>498さん
そのようですね。失礼しました。さようなら。

500 名前:nobodyさん mailto:sage [2007/11/20(火) 17:27:42 ID:???]
誰か教えてくだされ。

Perl 5.8.2 CGI::Lite 2.02 を使って、うpローダを作ったんです。

ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i2
を参考にバイナリ対応パッチは行いました。

Windowsだとうまく動いています。MacOSXからだと、0Dが0Aに化けます。
パッチが足りてない部分があるのでしょうか?
どこをなおせばうまく行きそうですか?

501 名前:500 mailto:sage [2007/11/20(火) 18:07:03 ID:???]
追加情報
・Mac OSX 10.4.11 (不明)の FireFox 2.0.0.9 からアップでデータ化け発生。(別の場所)
・Mac OSX 10.4.10 (Intel)の FireFox 2.0.0.9 からアップでデータ化けなし。(漏れ)

現在の状況:検証のために漏れのMacOSXを10.4.11へアップデータン中。

もしかすると、Perl側が原因じゃないかもしれないんで、Mac板でも情報集めして見ます。


502 名前:nobodyさん mailto:sage [2007/11/20(火) 18:57:03 ID:???]
CGI::LiteとCGI_Liteは別物だぞ

503 名前:nobodyさん mailto:sage [2007/11/20(火) 19:45:06 ID:???]
>>502
ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i13
CGI::LiteとCGI_Lite

CGI::LiteモジュールはCGI_Liteモジュールの後継になります。 CGI::Lite v2.0とCGI_Lite v1.9の違いは(ソースレベルで見ても)以下の3点だけです。
* パッケージ名
* バージョン番号
* ドキュメント内での記述(パッケージ名、バージョン、更新日付)
CGI_Liteに関する情報は、99%までそのままCGI::Liteにも適用できます。なお、CGI::Lite 2.02版からは少しずつ修正が加わり始めています。

504 名前:nobodyさん mailto:sage [2007/11/20(火) 21:37:27 ID:???]
別物じゃん

505 名前:nobodyさん mailto:sage [2007/11/27(火) 00:40:39 ID:???]
Debian etch、Apache2.2.3+perl5.8.8でCGIスクリプト走らせたらHDDアクセスが止まらなくて
ログにOut of memory!ってでたんですけどどうすれば直りますか?

506 名前:nobodyさん mailto:sage [2007/11/27(火) 08:35:46 ID:???]
鯖スペックとその糞コード晒せ

507 名前:505 mailto:sage [2007/11/27(火) 13:35:14 ID:???]
スクリプト
ttp://park1.wakwak.com/~aa1/wwwolf/

鯖スペック
CPU:Pentium-M 1.4GHz
メモリ:768MB
HDD:80GB

508 名前:nobodyさん mailto:sage [2007/11/27(火) 14:09:42 ID:???]
Perlのプログラムに関しての質問です.
現在2つのテーブルデータがありまして,
片方がID付きの参照テーブルになってまして,片方がログデータになってます.
ログデータを読み込んで,参照テーブルのいくつかのカラムを比較し,同一の
データを持つもつデータの参照IDを投げるという処理を行ってます.
現在ログデータを1行ごとに取り出し,その一回一回に参照テーブルを一致させるまでループして比較するという処理を行ってますが,
データの量もあり時間がかかりすぎて仕方ありません.何か良い方法はないでしょうか
イメージとしては以下の通りです.
この例ではログテーブルの2番目,3番目,4番目の文字を,参照テーブルの2番目,3番目,4番目と比較し
一致したら,参照テーブルの1番目のIDを出力してあげるといった形です.

ログテーブル
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C

参照テーブル
1,A,B,C
2,A,C,B
3,C,A,D

出力データ
1107,1
1108,3
1109,2
1110,1



509 名前:nobodyさん mailto:sage [2007/11/27(火) 17:03:00 ID:???]
>>508
my $log = <<'EOF' ;
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C
EOF

my %table = reverse map{ split /,/, $_,2 } split /\n/, <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF

printf "%s\n", join ',', map{ $table{$_} || $_ } split /,/, $_, 2 for split /\n/, $log ;

文字通り参照テーブルをテーブルにするだけだよ。

>>507
人狼の掲示板で聞くのがスジだ。

インストールし忘れ(jcode.plなんか)とかチェックポイントが多すぎて答える気にもならん。

510 名前:508 mailto:sage [2007/11/27(火) 20:31:16 ID:???]
>>509

有難うございました.
実際やってみまして上の例ではちゃんと出力できたことは確認しました。
しかし%tableの意味するところが勉強不足でちょっと分かりませんでした。

変数等をいじったりしてみたのですが
お恥ずかしいところですが、具体的にどのような処理を行っているのか教えて頂けると
幸いです。

511 名前:nobodyさん mailto:sage [2007/11/28(水) 00:13:10 ID:???]
my %table~~の行。
「改行区切りのデータをsplit して無名配列に入れ(split...)
 その要素を最初の,だけで区切って更に無名配列として返し(map{})
 結果として必ず偶数個となっている配列をhashと見なしreverse(reverse)
 それを%tableと云うhashに収納。」
printf~~の行。
「$logを改行にてsplitして無名配列に入れ(forの後のsplit...)
 それをfor修飾子にてループ(for)。
 その各要素を最初の,だけで区切って無名配列に入れ(forの前のsplit...)
 その無名配列の要素をkeyとして
 テーブルにデータがあればテーブルのデータを返し、
 なけれはそのまま要素を返す(map{})##
 で,でjoinして(join...)
 printf で整形してprint out(printf)」
## は真面目に $_[1] だけ table見に行かすべきなんだけど
メンドかったから、、、
EOF云々は「ヒアドキュメント」

まずは本でhashを覚えるんだ。

512 名前:nobodyさん mailto:sage [2007/11/28(水) 00:29:11 ID:???]
スレタイと>>1読んで反省した。
スタンダードな書き方で書くべきでした。

my $table = <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF

my %table ;
foreach my $line ( split /\n/, $table ){
 my @dat = split /,/, $line, 2 ;
 $table{$dat[1]} = $dat[0] ;
}
foreach my $line ( split /\n/, $log ){
 my @dat = split /,/, $line, 2 ;
 print $dat[0] . ',' . $table{$dat[1]} . "\n" ;
}


513 名前:509 mailto:sage [2007/11/28(水) 11:28:52 ID:???]
なるほど,これなら理解できそうです.
この例では,一致させる列が順番になってますが,現在扱っているデータでは
順番にはなっていないのですが,整列してから処理したほうが良いですかねぇ?

わざわざ有難うございます.
助かりました.

514 名前:509 mailto:sage [2007/11/28(水) 13:38:32 ID:???]
何回も申し訳ありませんが,
$tableないし$logデータは別ファイルに保存されているので,ファイルから
読み出しを行ったので,配列として読み出したのですがこの場合処理は
どうなるのでしょうか.

515 名前:nobodyさん mailto:sage [2007/11/28(水) 13:58:53 ID:???]
さすがにちょっとは自分でもしらべようぜ。
ヒント貰ってるんだからforeachとsplit辺りから検索できるだろうし。

516 名前:509 mailto:sage [2007/11/28(水) 14:21:28 ID:???]
↑すいません,自己解決です。

517 名前:465 [2007/11/28(水) 23:46:53 ID:JbJxNee4]
activePerl5,8インストールしようとしたら
invalid Drive:G
ってなってインストールできナス
orz
助けて下さい


518 名前:nobodyさん mailto:sage [2007/11/29(木) 13:33:09 ID:???]
ドライブGがないのに、ドライブGをインストール先に指定しているだけでしょ



519 名前:超初心者 [2007/11/30(金) 10:10:18 ID:Hc83DxRo]
Perlがわからない超初心者です。よろしければ教えてください!

広告管理CGI ver1.3
hpcgi2.nifty.com/hary/soft/myfile.cgi?num=25
これを使ったんですが、文字化けで悩んでいます。
ホームページビルダーShift_JISで使っている場合は問題ないですが、
ワードプレス(UTF-8)やロリポブログ(EUC)だと文字化けしちゃいます。
いろいろと試してみたのですが、まったく駄目です。
すいませんが、どこを直せばいいのでしょうか?
よろしくお願いします。



520 名前:nobodyさん mailto:sage [2007/11/30(金) 12:36:34 ID:???]
>>519
そのURLのサポート掲示板へ逝け

521 名前:超初心者 [2007/11/30(金) 13:03:46 ID:Hc83DxRo]
確かにサポート掲示板で書けばいいのですが、
この掲示板2006/8で終わっているようでらちが明かないので質問しています。
すいませんが、どなたか手助けお願いします。

522 名前:nobodyさん mailto:sage [2007/11/30(金) 13:30:01 ID:???]
>>519 スレ違い

CGI設置について質問【Part3】
pc11.2ch.net/test/read.cgi/php/1176143582/

523 名前:nobodyさん [2007/11/30(金) 15:31:46 ID:8pPZwPu7]
どうも、こんにちは。
CGIゲームの改造(TOWN)をしている者です。
独自タグを導入しようと思っています。

#タグ処理
$in{'a_com'} =~ s/\[i\](.+?)\[\/i\]/<em>$1<\/em>/gi;
$in{'a_com'} =~ s/\[b\](.+?)\[\/b\]/<strong>$1<\/strong>/gi;
$in{'a_com'} =~ s/\[u\](.+?)\[\/u\]/<u>$1<\/u>/gi;
$in{'a_com'} =~ s/\[pre\](.+?)\[\/pre\]/<pre>$1<\/pre>/gi;
$in{'a_com'} =~ s/\[s([1-7])\](.+?)\[\/s\]/<font size="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/\[c=(\S+)\](.+?)\[\/c\]/<font color="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/</</g;
$in{'a_com'} =~ s/>/>/g;
$in{'a_com'} =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g;
$in_a_com = $in{'a_com'};#koko2006/11/07

このような感じにしたのですが、独自タグを記述してもタグのままでてしまいます。
独自タグを入力すると、変換はされるのですが、結果が表示されません。

このような場合どのようにすれば良いでしょうか?
宜しくお願いします。

524 名前:nobodyさん [2007/12/01(土) 04:28:25 ID:p/Twqk8/]
>>523
独自タグ処理の後に<と>に変換してるからじゃない?

525 名前:nobodyさん [2007/12/01(土) 04:29:21 ID:p/Twqk8/]
>>524
&lt;&gt;な

526 名前:nobodyさん [2007/12/03(月) 02:01:35 ID:J4A8iRzG]
レンタルサーバーでインストール済みのモジュールを調べました。

そのときの一覧で、頭に5.8.8とかの数字がついているのがあって、
その意味がわかりません。

例えば
5.8.8::XML::XPath
というのが一覧に載っていたのですが、そのほかに
XML::XPath
というのも載っています。

これら二つはどう違うのですか?

527 名前:nobodyさん mailto:sage [2007/12/03(月) 09:47:05 ID:???]
そのモジュール一覧を調べるスクリプトの
アルゴリズムが腐ってんだろうよ。

528 名前:nobodyさん [2007/12/06(木) 00:17:44 ID:HgYNR+TB]
データベース処理に関してDBIを使用していますが、デバッグ用にクエリを表示もしくはログを記録したいのですが、どうすればいいでしょうか。

と言うのも、プレースホルダ使ってからクエリ実行する場合、動的なデータに対して「?」をセットしますよね。

このまま自分で記録しようとしても、「?」のまま記録してしまうし
かといってDBI->traceを使うと、余計な情報ばかり出力されます。

皆さんはどのようにデバッグしていますか?




529 名前:nobodyさん [2007/12/06(木) 01:32:40 ID:NHCKs2bj]
あるファイルの一行目の文章のみ手直ししたいと思っています。

自分なりに考えた方法では

open(FILE,"+>./log.dat");
while(<FILE>){
@LOG=$_;
}
$LOG[0]=~/(hoge)(hoge)/;
shift @LOG;
unshift @LOG,"hoge3$2";
print FILE @LOG;

上記では、whileの中で一行目以降の行も配列に格納している点が、初心者の私には無駄に感じてしまいます。
もしこれより簡潔で、サーバーへの負荷も少なくてすむ方法をご存知の方がいらっしゃいましたら、ご教授ください。

530 名前:nobodyさん mailto:sage [2007/12/06(木) 05:14:19 ID:???]
>>528
Perlではないけれども、自鯖環境なら、my.cnfに
log=/var/log/・・・ てな感じで記録すれば全てのクエリのlogが取れる。
レン鯖環境でも、デバッグ目的なら、自前のPCで同じことをすればよい。
(UnixだろうとWinだろうと、mysqlのversionが同じなら、クエリレベルでは全くの互換)

>>529
open(FILE,"<./log.dat");
open(OUT,">./logout.dat);
$row = <FILE>;
$row = うんたらかんたら・・・
print OUT $row;
while(<FILE>){ print OUT $_; }
close(FILE);
close(OUT);

オレならこうするかな。
既存ファイルの”ケツ”に足すのなら、">>file.name"で簡単だけど、頭だけを変更したいとなったら、
ファイルの内容を一旦全て読み込まないといけなかったんではなかったかな。
(変更前と変更後の一行のバイト数が同じになるとは限らないから。)
この後でRenameするなどしたらよし。
(自分の場合は、どんな時でも、基本的に変更前のbackupをとって置く性質なんで、確実に不要とわかってから元を消すようにしてる。)

もうひとつゆうと、ウチの環境では、
@log = <FILE>; とするよりも、 while(<FILE>){ push(@log,$_) } とか、 $log = join('',<FILE>);とかするほうが、
圧倒的に早い(WinXp + ActivePerl-5.8.8で、1.5倍〜2倍くらい早い。よその環境は知らない。)

531 名前:nobodyさん mailto:sage [2007/12/06(木) 05:29:50 ID:???]
>>529
ああ、その前に、そのコードそのままなら、
本当に $log[0] に一行目が入っているかい?

532 名前:nobodyさん mailto:sage [2007/12/06(木) 05:34:31 ID:???]
>>528
ああごめん。
mysql限定とは書いてなかったね。
でも多分、ほとんどのDBには、DB側にクエリのlogを保存する機能がついてるはず。
なにも全てPerl側でやる必要はないと思う。

533 名前:nobodyさん mailto:sage [2007/12/06(木) 07:57:56 ID:???]
>>529
簡潔って「一点のみ」で、
use Tie::File ;
tie my @array, 'Tie::File', 'hoge.txt' or die ;
$array[0] =~ s/foo/bar/ ;
untie @array ;

以下は横レスFYI:
>>530氏は、「ウチの環境では」ときちんと断わってはいるが、一応他の環境での
ベンチマーク結果だ。シビアに考えるなら常に自分の環境で、use Benchmark で
テストする事をお勧めする。
(けど、普通の環境ならシビアにテストしなくてもいいんじゃね?)

This is perl, v5.8.6 built for darwin-thread-multi-2level
@OSX 10.4.11, G4 500MHz メモリ1G

一行50文字の2万行のデータ hoge.txt にて
% cat hoge.pl
use Benchmark ;
sub __handle{ open IN, q{hoge.txt} ; push @arr, <IN> ; close IN ; }
sub __array { open IN, q{hoge.txt} ; while( <IN> ){ push @arr, $_ ; } close IN ; }
sub __join { open IN, q{hoge.txt} ; $dat = join '', <IN> ; close IN ; }
timethese ( 50, { op1 => '__handle', op2 => '__array', op3 => '__join' } ) ;

% perl hoge.pl
Benchmark: timing 50 iterations of op1, op2, op3...
op1: 7 wallclock secs ( 6.31 usr + 0.59 sys = 6.90 CPU) @ 7.25/s (n=50)
op2: 8 wallclock secs ( 7.11 usr + 0.59 sys = 7.70 CPU) @ 6.49/s (n=50)
op3: 8 wallclock secs ( 6.12 usr + 0.60 sys = 6.72 CPU) @ 7.44/s (n=50)


534 名前:529 [2007/12/06(木) 12:01:39 ID:I3qzGVsw]
>530
ご親切にありがとうございます。参考になります。
全部読み込む必要があるのですね。

>本当に $log[0] に一行目が入っているかい?
ご指摘の通り、入っておりませんでした。

@LOG=$_; の部分を
push @LOG,$_;
としましたが、それでも$log[0]に一行目が入っていませんでした。

試しに、
open(FILE,"+>./log.dat");
の部分を
open(FILE,"<./log.dat");
としたところ、ようやく$log[0]に一行目が入りました。

いまいち『+>』の意味がつかめません。自分が持っているperlの本を何冊か見ると、
『+>』は入出力共用(上書きモード)とあるのですが、それは『<』と『>』を同時にやったことにはならないのでしょうか。

例えば、
『open(FILE,"+>./log.dat");』
というのは
『open(FILE,"<./log.dat");
open(FILE,">./log.dat");

ってことではないのですよね(動作をみると)。よくわかりません。。。

535 名前:529 [2007/12/06(木) 12:02:24 ID:I3qzGVsw]
>533
ありがとうございます。そういう風にテストするんですね。
(自分の勉強不足でした。)
かゆいところに手が届いた感じです。感謝してマス。

早速調べて使ってみます。

536 名前:530 mailto:sage [2007/12/06(木) 14:42:15 ID:???]
>>533
わざわざ補足いただいて恐縮なんだけど、少しご意見を・・・。

自分は、あまり use Benchmark を信用せずに、 use Time::HiRes でベンチ取るようにしてる。
どうも use Benchmark は、実際の動作時間に即してないような気がするので。

具体的にゆうと、>>530>>533の場合だと、ファイルIOについての待ち時間がカウントされてないように思う。
確かにPerl内部だけで動作が完結するコードについては、しっかりと時間を計測してくれてるようだけど、
例えば外部ファイル読み書きや、他のプロセスをロードしたりするための時間はカウントしてくれないみたい。
詳しくソースとかを追ったわけではないけれど、以下簡単な実証コード

use Time::HiRes qw(time);
use Benchmark qw(timethese);
$n = 100;
sub cgi_1 { system( q(perl -MCGI -e "") ); }
sub cgi_2 { system( q(perl -MCGI::Lite -e "") ); }
timethese($n,{ u_CGI => 'cgi_1', u_CGIL => 'cgi_2'});

$st1 = time();
for(1..$n){ &cgi_1(); }
$lt1 = time() - $st1;
$st2 = time();
for(1..$n){ &cgi_2(); }
$lt2 = time() - $st2;
printf "%.3f s\n",$lt1;
printf "%.3f s\n",$lt2;

537 名前:530 mailto:sage [2007/12/06(木) 14:42:47 ID:???]
Unix系だと、time for i in `seq 1 100 ・・・ とかで、コマンドラインから簡単に実測できるコードなんだけど、それをWinに移植したつもり。
これの結果が、This is perl, v5.8.8 built for MSWin32-x86-multi-thread(Pen4 3.4G mem2G)で、
Benchmark: timing 100 iterations of u_CGI, u_CGIL...
u_CGI: 4 wallclock secs ( 0.05 usr + 0.11 sys = 0.16 CPU) @ 641.03/s (n=100)
u_CGIL: 2 wallclock secs ( 0.02 usr + 0.06 sys = 0.08 CPU) @ 1282.05/s (n=100)
4.031 s
1.453 s
こうなった。wallclockは正しいようだけど、詳細の内容が実態に即してないように思える。
同じコードを、以前Unix(CentOSやFedora)環境でやってみても、同じような結果になる。
(とゆうか、詳細な数値は覚えてないけど、CGIとCGI::Liteが、ほぼ同程度の速度とかレポートされた。)

あと、そのLinuxで、>>533のようなベンチを取ったときも、やっぱり push(@log,$_) が最速だった。
あくまでもウチの環境で、でだけど。
@log=<IN>の倍程度は出てた。ファイルの容量、行数が多いほうが、よりpushが早かった。
(そちらのDarwinは、@log=<IN>形式がかなり早いね。)

ついでに、>>533のコードに、use Time::HiRes 書き足して、自分の環境でやった結果。
(OS等は同上。ファイルは、1行約200バイト、50万行で総計約100MB。時間かかるので、n=2で測定)
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 72 wallclock secs (70.59 usr + 1.36 sys = 71.95 CPU) @ 0.03/s (n=2)
op2: 35 wallclock secs (33.95 usr + 0.66 sys = 34.61 CPU) @ 0.06/s (n=2)
op3: 38 wallclock secs (37.22 usr + 0.73 sys = 37.95 CPU) @ 0.05/s (n=2)
op1 = 138.750 s
op2 = 49.078 s
op3 = 54.547 s

538 名前:nobodyさん mailto:sage [2007/12/06(木) 18:28:34 ID:???]
533 は、ただ「(データを含めた)環境によって状況は変る可能性があるよ」って言いたかっただけなんだ、が、、、
気を悪くなさったなら謝罪します。

==================================
一応、そちらの>>356の実行結果
Benchmark: timing 100 iterations of u_CGI, u_CGIL...
u_CGI: 16 wallclock secs ( 0.01 usr 0.32 sys + 11.46 cusr 3.34 csys = 15.13 CPU) @ 303.03/s (n=100)
u_CGIL: 5 wallclock secs ( 0.01 usr 0.30 sys + 3.00 cusr 1.96 csys = 5.27 CPU) @ 322.58/s (n=100)
15.595 s
5.506 s

>>357に関しては、
perl hoge.pl
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 266.766 wallclock secs (16.62 usr + 29.02 sys = 45.64 CPU) @ 0.04/s (n=2)
(warning: too few iterations for a reliable count)
op2: 58.1595 wallclock secs ( 9.94 usr + 4.68 sys = 14.62 CPU) @ 0.14/s (n=2)
(warning: too few iterations for a reliable count)
op3: 899.579 wallclock secs (22.62 usr + 63.34 sys = 85.96 CPU) @ 0.02/s (n=2)
(warning: too few iterations for a reliable count)
op1 = 499.930 s
op2 = 108.665 s
op3 = 972.383 s
メモリが潤沢でないから join がこんな目に合うのは当然。

因に自己ツッコミだけど、>>533はサブルーチン内で my @arr なりしないとアンフェアなベンチ、、、、




539 名前:530 mailto:sage [2007/12/06(木) 20:10:20 ID:???]
>>538
いえいえこちらこそ申し訳ないです。そうゆうわけではありません。
ただ、use Benchmark にイマイチ信用が置けない者の意見として、
状況によっては、use Benchmark がアテにならないこともあるよ、ってことが言いたかっただけです。

>因に自己ツッコミだけど、>>533はサブルーチン内で my @arr なりしないとアンフェアなベンチ
そこは最初に気付いたから、自分のコードの中では、my して計測してます。

追記
CentOS5 でもやってみた。(コード、ファイルはWin環境と同じ)
This is perl, v5.8.8 built for i386-linux-thread-multi (Pen4 2.4G men2G、ソースから'-O3'オプションでコンパイル)
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 5 wallclock secs ( 3.59 usr + 0.54 sys = 4.13 CPU) @ 0.48/s (n=2)
op2: 2 wallclock secs ( 2.44 usr + 0.21 sys = 2.65 CPU) @ 0.75/s (n=2)
op3: 4 wallclock secs ( 3.08 usr + 0.59 sys = 3.67 CPU) @ 0.54/s (n=2)
op1 = 3.677 s
op2 = 2.819 s
op3 = 3.510 s
はやっ!
以前計測した時はこんな早かったかな〜って思ったけど、何回やっても同じような結果になるんで、あってるんだろう。

どうもWin(ActivePerl)が、Unix系に比べて、メモリ確保あたりが激しく遅いのかなって気がしてくる結果でした。
(Discパフォーマンスは同程度、ってかこの環境に限っては、上のレスのWin環境のほうが早い)

540 名前:nobodyさん mailto:sage [2007/12/07(金) 21:30:21 ID:???]
>>534
つ seek

541 名前:nobodyさん [2007/12/10(月) 02:52:34 ID:FqUmo5vT]
>>1 を読んで、ここなら私の質問も馬鹿にされずに
答えてくれるかと思いましたが、
どうやらそれすら適わないようです。

もっと低レベルの質問をしたい場合はどこに行けば良いですか?

542 名前:nobodyさん mailto:sage [2007/12/10(月) 02:55:27 ID:???]
樹海

543 名前:nobodyさん [2007/12/10(月) 20:07:09 ID:iaWb7lQX]

open(ファイルファンドル,"ファイル名") || &error; ←この&error;もしくはdieとかは
なんの意味があるんでしょうか?
これあってもなくてもInternal Server Error(500)になるんですけど・・・

544 名前:nobodyさん mailto:sage [2007/12/10(月) 20:21:45 ID:???]
>>543
ファイル開くのが失敗した時にorの右の式が実行される。

ファイルが無事開ければ1が返すけど、
失敗すると0が返ってくる。

0 or &error;
って実行するとorの右の式が実行されるのが分かる。


my $flag = open〜;
print $flag;
とかやってみれ


どっちにしても500になるのはファイルが存在しないからか、
別の場所でエラーが起きてる。

スクリプトの3行目あたりに
use CGI::Carp 'fatalsToBrowser';
を追加してテバックしなさい。


暇だからマジレスしたぜ

545 名前:nobodyさん mailto:sage [2007/12/10(月) 20:33:24 ID:???]
>>544
レスdです

>500になるのはファイルが存在しないから
あーやっぱりファイル無いと500でるんですね・・
一応ローカルでファイルあるとき(使用中(オープン中))はエラー表示されますた

546 名前:nobodyさん mailto:sage [2007/12/10(月) 23:08:25 ID:???]
>>545
ファイルが無くてもorの右の式は実行されるよ。
ローカルでは動くならパーミッションのミスか、cgi用のディレクトリに入ってないとかじゃない?
あとは、perlのパス間違ってるとか。

ファイルが無いときにエラー処理したいなら
&error if (not -e $file);
とかにしれ
or &error;ってやるのはロック中だけにするとエラーの原因が絞れるよ。

547 名前:543 mailto:sage [2007/12/11(火) 02:37:10 ID:???]
>>546
ローカル環境はXP+apache_1.3.39+ActivePerl-5.8.8.822です
use CGI::Carp qw(fatalsToBrowser);もスクリプトに入ってます
---------------------------------------------
open(FH,"abc.dat") || &error;←ココ
flock(FH,1) || &error;
以下割愛

sub error {
print "content-type: text/html\n";
print "\n";
print "ERROR : $!";
exit;
}
---------------------------------------------
>ファイルが無くてもorの右の式は実行される
>ファイルが無いときにエラー処理したいなら
>&error if (not -e $file);
どうも無理っぽいです ファイル無いと500エラー出ます
500用のエラーページ(←自分で作った)も表示されないので
ファイルが無いと500(強制終了?)ぽいです?

548 名前:nobodyさん [2007/12/11(火) 07:09:06 ID:hJLc29jh]
>>547
> flock(FH,1)
その部分を
eval{flock(FH,1)};
にしてごらん

windowsではflock使うと致命的エラーになるよ。



549 名前:nobodyさん mailto:sage [2007/12/11(火) 08:21:01 ID:???]
>>547
apacheのエラーログになんて出てる?

550 名前:nobodyさん mailto:sage [2007/12/11(火) 10:15:38 ID:???]
嘘つくなよ
flockできないのは、非NT系だけ

551 名前:nobodyさん mailto:sage [2007/12/11(火) 17:54:09 ID:???]
>>550
ごめんガチでしらんかったorz

552 名前:nobodyさん [2007/12/11(火) 18:01:01 ID:hJLc29jh]
>>547
良く見りゃopenの種類書いてないけどそこ大丈夫?
>,>>,<,>+

553 名前:nobodyさん mailto:sage [2007/12/11(火) 18:58:11 ID:???]
>>552
匿名掲示板だからといって、いい加減なこと言わない方がいいよ。 
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの? 
偽計業務妨害で逮捕されろ。 

554 名前:543 mailto:sage [2007/12/11(火) 21:44:35 ID:???]
遅くなりました
>>549
ログはこんなんです。
["日時"] [error] [client 127.0.0.1] Premature end of script headers: "該当CGIへのパス"

>>552
openモードの1は省略可能では?

555 名前:nobodyさん [2007/12/12(水) 00:35:05 ID:amxfThwD]
PHP4使ってます
作ったスクリプトをブラウザで実行させると
1分くらい待った後にエラーも出ずに、画面が真っ白に
なったんですが、何が原因ですか?
コマンドラインで-l付きで実行しても文法エラーは出ませんでした。
ただ、コマンドラインが異常に重くなったので、
PCにかなり負担をかけているようです。
無限ループ系のエラーかな?


556 名前:nobodyさん mailto:sage [2007/12/12(水) 10:04:09 ID:???]
>>555
このスレのタイトルを、声を出して読めば何が原因かわかると思います。

557 名前:nobodyさん mailto:sage [2007/12/12(水) 10:45:09 ID:???]
>>555
ちなみにperlは「パール」と読みます。
超初心者用は「ちょうしょしんしゃよう」です。
三回ほど声に出して読んでみてはいかがでしょう?

558 名前:nobodyさん mailto:sage [2007/12/12(水) 20:59:26 ID:???]
超初歩的な質問なんだけど、ActivePerl5.8.8を
インストールしたんだけどコンパイルとか実行の仕方がわかんないです。
どなたか助けてもらえませんか?



559 名前:nobodyさん mailto:sage [2007/12/12(水) 22:23:24 ID:???]
何がしたくてインストールしたのさ?

560 名前:nobodyさん mailto:sage [2007/12/13(木) 00:30:26 ID:???]
>>558
>>556

561 名前:nobodyさん mailto:sage [2007/12/13(木) 02:13:55 ID:???]
>>558
Perlはスクリプト言語なので、コンパイルは必要ありません。

コマンドラインからスクリプトを指定して実行するか、
AN HTTPD等からCGIを実行するのに使うのか、
それによってやり方が違います。

とりあえず、わざわざActivePerlを選んだって事はWindowsだと思いますが、
Windowsのバージョン(9x/2000/Xp/Vista)によって設定方法が色々違うので、
下記の情報を書くと多少は情報が得られると思います。

・OSのバージョン
・利用目的(CGI?ローカルのスクリプト?)

とりあえず、藻前は↓コレでも見て出直せYO!
pocketstudio.jp/win/activeperl/

562 名前:nobodyさん mailto:sage [2007/12/14(金) 06:41:05 ID:???]
>>561
匿名掲示板だからといって、いい加減なこと言わない方がいいよ。  
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?  
偽計業務妨害で逮捕されろ。  

563 名前:nobodyさん mailto:sage [2007/12/14(金) 15:25:54 ID:???]
>>562 m9(^Д^)プギャーーーッ

564 名前:nobodyさん mailto:sage [2007/12/14(金) 21:44:19 ID:???]
聞きづらい雰囲気だ(笑
CGIなんだけど、あるディレクトリの中身を全消去してから、
そのディレクトリ自体を消去するしようとしているんだけど、ディレクトリの消去がうまくいかない。

$dir = "./abc/hoge/";

opendir DIR, $dir;
@files = grep { !m/^(\.|\.\.)$/g } readdir DIR;
closedir DIR;

$flag = @files;

if ( $flag ) {
foreach $file ( @files ) {
unlink "$dir$file";
}
}

rmdir ("abc/hoge");

rmdirの使い方を間違ってるかと思って、中身入っていないabc/hoge2で試してみると消えてくれた。
どうやらunlink→rmdirの流れが悪いのかと思って、sleepで5秒間止めてみたけど、何も変わらなかった。。。
誰かわかる人いる??検索しても全然わからんかった。。。

565 名前:nobodyさん mailto:sage [2007/12/14(金) 21:47:56 ID:???]
>>564
匿名掲示板だからといって、いい加減なこと言わない方がいいよ。   
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?   
偽計業務妨害で逮捕されろ。   

566 名前:nobodyさん mailto:sage [2007/12/15(土) 01:11:18 ID:???]
こんなんじゃダメ?

use Cwd;
my $dir = "/abc/hoge/";
my $cwd = Cwd::getcwd();

execcommand("/bin/rm -r $cwd/$dir");
exit;

sub execcommand
{
my $cmd = shift;
my $err = '';
my @envbak = ($ENV{'IFS'}, $ENV{'CDPATH'}, $ENV{'ENV'}, $ENV{'BASH_ENV'}, $ENV{'PATH'});
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'};
eval{
system( $cmd );
};
if ($@) {$err = $@;}
$ENV{'IFS'} = $envbak[0];
$ENV{'CDPATH'} = $envbak[1];
$ENV{'ENV'} = $envbak[2];
$ENV{'BASH_ENV'} = $envbak[3];
$ENV{'PATH'} = $envbak[4];
return $err;
}


567 名前:564 mailto:sage [2007/12/16(日) 19:49:12 ID:???]
>566
ありがとうございます。
参考にさせていただきました。

568 名前:nobodyさん mailto:sage [2007/12/17(月) 22:02:42 ID:???]
質問させてください。
mimew.pl というファイルを公開している所が見つからないのですが、
なんとか入手する方法はないでしょうか?



569 名前:nobodyさん mailto:sage [2007/12/17(月) 22:08:17 ID:???]
>>568
多分これ。保証はしない。
つ[ ttp://ambiente.okayama-u.ac.jp/~blog/cgi-bin/su_downloader/mimew.pl ]

570 名前:nobodyさん mailto:sage [2007/12/17(月) 23:05:24 ID:???]
保証してください

571 名前:568 mailto:sage [2007/12/17(月) 23:13:17 ID:???]
>>569
早急な対応ありがとうございます!
無事メールフォームCGIを動かす事が出来ました!!
本当にありがとうございました!

572 名前:nobodyさん mailto:sage [2007/12/17(月) 23:22:17 ID:???]
宣伝乙

573 名前:nobodyさん mailto:sage [2007/12/18(火) 08:03:18 ID:???]
ハッシュ配列の各要素をリファレンスとして関数の引数に渡したいのですが
よくわからなくて試行錯誤の末下のような方法にたどり着きました

$AA{'name'} = '1234';
$BB[0]{'name'} = 'abc';
$BB[1]{'name'} = 'ああああ';
$BB[2]{'name'} = '!?';

kansuu( \%AA );
$tmp = \@BB;
kansuu( ${\$tmp->[0]} );
kansuu( ${\$tmp->[1]} );
kansuu( ${\$tmp->[2]} );

sub kansu
{
  my $h = $_[0];
  print "$h->{'name'}<br>";
}

BBの要素を kansuu() に入れるために
もっとスマートな方法(っていうか正しい書式)がありましたら教えてくれないでしょうか?

574 名前:nobodyさん mailto:sage [2007/12/18(火) 19:13:55 ID:???]
Perlがプログラミング言語ということぐらいしか分からない初心者です。
ウインドウズXPを使っています。
ActivePerlでコマンドプロント上でppmを使ってImage::ExifToolをインストールしようとしたのですが

>ppm install failed: DBI connect(〜) failed: unable to open database file(1)

と出てインストールできませんでした。
DBIをどうにかしたらよいとは思うのですがよく分かりません。
どうしたらよいのでしょうか?
ご教授お願いします。


575 名前:nobodyさん mailto:sage [2007/12/18(火) 21:22:12 ID:???]
そんくらいぐぐれ

576 名前:574 mailto:sage [2007/12/19(水) 19:22:29 ID:???]
聞き方が悪かったですね。
具体的な問題点は
・ppmはActivePerlをインストールしただけでは使えない?
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
・そもそもPerlの作業をどこで行ったらいいか分からない。
 (コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
・つまるところプログラミングのイロハが分からない。

スレ違いというやつですか?

577 名前:574 mailto:sage [2007/12/19(水) 19:37:06 ID:???]
で、何がやりたいかと言いますと、これです↓
ttp://www.fenrir.co.jp/blog/2007/12/useraction_extension_3_1.html
つまずいたのは2のところです。

578 名前:nobodyさん mailto:sage [2007/12/19(水) 21:36:49 ID:???]
>>576
スレ違い



579 名前:nobodyさん mailto:sage [2007/12/19(水) 23:17:02 ID:???]
・ppmはActivePerlをインストールしただけでは使えない?
使える
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
ppmを使う
・そもそもPerlの作業をどこで行ったらいいか分からない。
 (コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
まずテキストエディタで書いて保存する
・つまるところプログラミングのイロハが分からない。
あっそ

580 名前:nobodyさん mailto:sage [2007/12/21(金) 01:37:26 ID:???]
>>574
WebProgramingに無関係。板違い。誘導。

Perlについての質問箱 33箱目
pc11.2ch.net/test/read.cgi/tech/1192463997/l50


581 名前:574 mailto:sage [2007/12/21(金) 21:47:22 ID:???]
>>580
ありがとうございます。
そちらにもスレがあったんですね。
ご迷惑をお掛けしました。

582 名前:nobodyさん [2007/12/22(土) 00:59:24 ID:+1+1pRnk]
こんちは

8 9 10 ってファイル読み込んで

8 9  って出力するにはどう書けばよいですかね

583 名前:nobodyさん mailto:sage [2007/12/22(土) 01:26:23 ID:???]
ふむ

584 名前:nobodyさん [2007/12/22(土) 02:11:54 ID:At3tOlJk]
わかります?

585 名前:nobodyさん mailto:sage [2007/12/22(土) 03:40:10 ID:???]
10が必要ないのか二桁の物が必要無いのか
読み込んだファイルの三ツ目の物が必要無いのか
読み込んだファイルの最後の物が必要無いのか
条件が分からなければ判別のしようが無い

586 名前:nobodyさん [2007/12/22(土) 04:19:02 ID:At3tOlJk]
読み込んだファイルの最後の物が必要無い
です
ほんとありがとうございます(泣)

587 名前:nobodyさん mailto:sage [2007/12/22(土) 21:44:20 ID:???]
8 9 10ってのはファイルの内容か?ファイルの名前か?・・・まあ内容だろうな。
8 9 10ってのは毎回8 9 10なのか?・・・毎回同じってわけじゃないだろうな。
区切りはスペースだけ?タブも?ファイルの中に改行はあるの?



588 名前:nobodyさん mailto:sage [2007/12/22(土) 22:22:37 ID:???]
質問だけ見てもきみにゃPGは向いてないことが分かるからやめとけ



589 名前:nobodyさん [2007/12/23(日) 04:25:06 ID:nSEv05U9]
ごめんやめない がんばる
8 9 10ってのはファイルの内容で
8 9 10ってのは毎回同じってわけじゃないです。
区切りはスペースだけ

590 名前:nobodyさん mailto:sage [2007/12/23(日) 05:02:25 ID:???]
自分で作る気があるなら、どこまで作ったか晒せ。

自分で作る気がないなら、仕様をまとめなおして、↓こっちで聞け。
Perlでリクに答えるスクリプトを作るスレ
pc11.2ch.net/test/read.cgi/tech/1086143976/l50


591 名前:nobodyさん mailto:sage [2007/12/23(日) 08:20:22 ID:???]
返答の意図が分かってないだろ。
まず基礎を学べ。
んですぐ人に答えを求めようとせず頭使って考えれ。

592 名前:nobodyさん [2007/12/23(日) 10:02:40 ID:01+8BPxk]
半年ぶりに書こうと思ったら驚くほどPerlに関する記憶が飛んでる
記憶をよみがえらせる方法を教えてくれ

593 名前:nobodyさん mailto:sage [2007/12/23(日) 10:05:44 ID:???]
とりあえずスクリプト眺めたり、ちょっと書いたりしてるうちによみがえるんじゃね?
それができないなら、アルツハイマ−かもしれないから病院に逝ったほうがいいな

594 名前:nobodyさん [2007/12/24(月) 01:41:03 ID:yCHoznYX]
漏れも吹き飛んだ
1からじゃ何も書けなくなったw

595 名前:nobodyさん mailto:sage [2007/12/24(月) 07:17:33 ID:???]
PerlとPHPで開発してると、やっぱりPerlの方が書きやすいな。
PHPなのに、気がついたら途中からPerlになってたよw

596 名前:nobodyさん mailto:age [2007/12/24(月) 12:07:01 ID:???]
質問です。
ファイルをオープンし、それを一旦最後まで読み込んだ後、
またそのファイルを最初から読み取りを行いたい場合は、
一度ファイルを閉じるしか方法がないのでしょうか。
ファイルで閉じたり開いたりを多く行うと、処理が重くなったり、
ファイルの競合で問題が起きるので、出来れば避けたいのですが。

<コーディングの例>
# ファイルを開く
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );

597 名前:nobodyさん mailto:sage [2007/12/24(月) 12:52:16 ID:???]
ファイルの競合で問題ってのが意味わからんが
やりたいことはseekでできる

598 名前:596 mailto:sage [2007/12/24(月) 13:19:13 ID:???]
>>597
seekで検索してみたところ、すぐに見つかりました。
ありがとうございました。

ファイルの競合で問題というのは、ファイルのロックで
解決することなので、ここでは関係ありませんでした。



599 名前:nobodyさん mailto:sage [2007/12/24(月) 16:29:55 ID:???]
Perl5からオブジェクト指向が導入されたということですが、
Perlのプログラマーは、オブジェクト指向プログラミングを
メインで行っているのでしょうか。
それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の
構造化プログラミングをしているのでしょうか。

多くの方はどちらでやっているのかを知りたいです。

600 名前:nobodyさん mailto:sage [2007/12/24(月) 16:54:59 ID:???]
>それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の
>構造化プログラミングをしているのでしょうか。
の部分が突っ込みどころ満載だが、それは使っていくうちに知ってもらうことにして、
とりあえず、Perl5が出てから10年以上たっているので、Perl4の互換性を気にする必要は全くない。
オブジェクト指向も、使いたくないなら使わなくていい。

601 名前:nobodyさん mailto:sage [2007/12/24(月) 17:02:48 ID:???]
>>600
ありがとうございました。

602 名前:nobodyさん mailto:sage [2007/12/24(月) 17:22:38 ID:???]
>>599
「多くの方」はダウソしたcgiをうpしてパーミッション設定するだけだろ。
中途半端な知識でオブジェクト指向を目指すと余計に意味わかんないプログラムになる。

オブジェクト指向の考え方とPerlでのオブジェクト指向の実装方法を十分理解してないなら
オブジェクト指向に手を出さない方が良い。

603 名前:nobodyさん mailto:age [2007/12/25(火) 10:20:04 ID:???]
>>602
レスありがとうございます。
ちょっと確認をしたくて質問なのですが、
PerlでCGIを行う場合に限定すると、サーバのメインメモリにいつまでも
情報が残るわけではないので、オブジェクト指向プログラミングは、
状態の保存などを生かしたものというより、モジュール化を行い、
関数名やグローバル変数名が競合するのを防ぐ程度の意味合いしかないように
思うのですが、この解釈はあっているのでしょうか。

604 名前:nobodyさん mailto:sage [2007/12/25(火) 11:34:27 ID:???]
それはオブジェクト指向プログラミングの利点の1つではあるが全てではない。
かといって全部ここに書いてるとキリが無いからググってこい。

っていうか結局何が知りたいんだ? どんな答えが欲しいんだ?

605 名前:nobodyさん mailto:sage [2007/12/26(水) 06:07:36 ID:???]
サーバのメモリにいつまでもプロセスとして残る場合もあるよ。

606 名前:nobodyさん [2007/12/26(水) 12:46:37 ID:SU+LBgfr]
perlで最規模なCGIゲーム(有名な箱庭やFFA以上)を作ろうと猛勉強してるのですが
まったくの初心者なのでサーバーに対する負荷とかまったく考えていませんでした。

そこで疑問点が3つあります。
・MySQLが軽いとかよく聞くのですが、
 本気でCGIゲームを開発する場合サーバーの負担を抑えるためどういう勉強をしていったほうがいいのでしょうか?
・perlではなくphpのほうに切り替えたほうがいいのでしょうか?
・プログラムを書き終えてperl or phpを実践した後でもMySQLに対応するのは簡単なんでしょうか?
(難しそうなのでperl or php→MySQLではなくプログラムを書き終えた後にMySQLをやったほうが
モチベーションも保てるかと思って。)

phpの話題もでてますが、今はperlのほうを勉強していてこちらのほうが聞きやすいと思って。
よければご教授よろしくお願いいたします。

607 名前:nobodyさん [2007/12/26(水) 12:52:25 ID:SU+LBgfr]
×最規模→○大規模

608 名前:nobodyさん [2007/12/26(水) 14:37:40 ID:9oL1uy7O]
レンタル掲示板などで、
www.○○.com/?uid=▲▲▲
見たいなURLがあるのですが
これを
http://▲▲▲.○○.com/
にしたいと思っています。
これを実現するにはどのような手段が用いられるのでしょうか?
ご指導や参考URLを頂ければ幸いです。
よろしくお願いします。



609 名前:nobodyさん [2007/12/26(水) 18:35:59 ID:8VJWqxjl]
>>606
すいません
prog板初心者スレで聞いてみます、スレ違いだったかな

610 名前:nobodyさん mailto:sage [2007/12/26(水) 22:20:24 ID:???]
>>608
perlよりもウェブ鯖で変換した方がいい
apacheならmod_rewriteとかを使う

611 名前:nobodyさん mailto:sage [2007/12/27(木) 14:37:45 ID:???]
>>604
ありがとうございます。

聞きたかったのは、Apache + Perl でプログラムする際、
オブジェクト指向で組むと、利便性があがるかどうか、
という点です。
ネット上のサンプルソースでも、オブジェクト指向
で組まれていなかったので、何らかの理由があり、
さほど利便性がないのかと思ったのです。

できましたら、この、「何らかの理由」もあわせて
回答をいただけたらと思っています。
オブジェクト指向一般の利便性については、自分で調べますが。

612 名前:nobodyさん mailto:sage [2007/12/27(木) 14:43:25 ID:???]
>>605
それは、サーバのエラーや、Perlなどのプログラムミスによる
ものということですよね?

そのメモリに残ったプロセスを利用してということは
ないと解釈していたのですが。

613 名前:nobodyさん mailto:sage [2007/12/27(木) 15:08:55 ID:???]
>>612
mod_perl + DBI なんかでは、コネクションプーリング出来たりとか
そんなんじゃないのかね?

614 名前:nobodyさん mailto:sage [2007/12/27(木) 17:41:06 ID:???]
perlにて、「use strict」を書くとエラー(500)となってしまいます。
これをコメントアウトすると、正常に動いていますので、
パーミッションなどの設定が原因ではないと思います。
疑われる部分はどんなことがあるのでしょうか。

615 名前:nobodyさん mailto:sage [2007/12/27(木) 17:46:33 ID:???]
すみません。質問です。
package関連の記述方法についてです。
定義したクラスのメソッドにおいて、そのクラスがもつ別のメソッドを
呼び出すということは出来ないのでしょうか。

package ClassA;

sub funcA{
 print "test";
}

sub funcB{
 &funcA;
}

などと記述してみたのですが、エラーがでてしまいます。
&ClassA::funcA; としてもダメでした。

616 名前:nobodyさん mailto:sage [2007/12/27(木) 17:57:54 ID:???]
全角スペースでインデント(字下げ)したらエラーになるよ

617 名前:nobodyさん mailto:sage [2007/12/27(木) 19:24:37 ID:???]
>>614
error_logにみんな書いてある。

618 名前:nobodyさん mailto:sage [2007/12/27(木) 19:37:01 ID:???]
>>616
全角スペースでインデント(字下げ)してるのは、2chで
見やすくするためです。先頭に半角だと無視されますからね。



619 名前:nobodyさん [2007/12/27(木) 21:40:34 ID:HdAuax/Z]
>>593
うむ。書くしかないよな

620 名前:nobodyさん mailto:sage [2007/12/27(木) 23:08:07 ID:???]
>>615
最後に 1; を書いてみ

621 名前:nobodyさん mailto:sage [2007/12/28(金) 00:51:11 ID:???]
>>620
レスありがとうございます。
最後に「1;」は書いてます。
メソッド呼び出し部分をコメントアウトすると
動作はするので、メソッド呼び出し部分がおかしいのでは、
と思うのです。
メソッド呼び出しを記述すると、動きはするのですが、
そこで停止してしまうのです。
念のための確認ですが、同じクラス内のメソッド呼び出しの
記述方法はこれであっているとみてよいのでしょうか。
それとも、「ClassA::funcA」などと記述すべきなのでしょうか。

622 名前:nobodyさん mailto:sage [2007/12/28(金) 02:36:45 ID:???]
>>621
ウチの環境で、上のコードそのままやってみたけど、
&funcB();
で、ちゃんと'test'と出力されたべ。

呼び出し側のスクリプトの問題じゃないのかな?
以下呼び出し側。

use ClassA;

ClassA::funcA();
ClassA::funcB();

---出力----
test
test

環境 WinXp SP2 ActivePerl 5.8.8-build822
This is perl, v5.8.8 built for MSWin32-x86-multi-thread

623 名前:nobodyさん mailto:sage [2007/12/28(金) 02:51:08 ID:???]
>>611
ていうかオブジェクト志向のメリット、デメリットを勉強すれば
ネット上のサンプルソースの例が少ない理由はすぐわかる。

624 名前:nobodyさん mailto:age [2007/12/28(金) 13:27:40 ID:???]
質問です。
継承に関して、ネットを調べていると、コードの書き方が
2通りあるようですが、これはどういう解釈をしたらよいのでしょうか。

ClassAが継承もととなる場合
use base qw( ClassA );
@ISA = qw ( ClassA );

use base qw()を使う方法
www15.plala.or.jp/h-kihara-home/prog/perl/ooperl.html
www.rwds.net/kuroita/program/Perl_oo.html#base

@ISAを使う方法
www.rfs.jp/sb/perl/04/03.html
bulknews.net/lib/mailmag/22/mag.txt

一方の書き方が古いという類なのでしょうか。
それとも、継承においては特に出てこない、何か違う意味が
含まれているのでしょうか。

お願い致します。

625 名前:nobodyさん mailto:sage [2007/12/28(金) 14:37:39 ID:???]
今までVisual Basic や java をやってきていた者です。
Perlの場合以下のようにドキュメントとしてコーディング規約は
まとめられてないのでしょうか。
www.objectclub.jp/news/community/codingstandard/

626 名前:nobodyさん mailto:sage [2007/12/28(金) 18:56:10 ID:???]
>>624
perldoc base
>>625
ない

627 名前:nobodyさん mailto:sage [2007/12/29(土) 00:20:43 ID:???]
>>622
もう一度0からコードを書き直してやってみたら
動きました。
何が悪かったのだろう・・・
全角スペースが入ったりしていると、赤く表示が出る
エディタを使っているのですけどね。
原因が分かりませんが、質問の内容は解決しました。
ご迷惑をおかけしました。

628 名前:nobodyさん mailto:sage [2007/12/29(土) 09:32:18 ID:???]
>>623
Perlのオブジェクト指向を調べてみたのですが、なんだか
完全にオブジェクト指向に対応した言語ではなく、
package や ハッシュ を用いて工夫してオブジェクト指向を
実現してるみたいなものですね。
メンバやメソッドにも外部からのアクセス制限をかけたり
出来なさそうだし。

PerlをCGIでやる場合は、まず、GETやPOSTを取得して
どの関数に飛ぶのかを判定し、その関数を書いていくという
処理しかないので、構造化とさほどかわらないのかもと思いました。

ありがとうございました。



629 名前:625 mailto:sage [2007/12/29(土) 11:06:25 ID:???]
>>626
どうしてないのでしょうか。
Perlは歴史が長い分、何かノウハウを集めたものがあるかと思ったのですが。

630 名前:nobodyさん mailto:sage [2007/12/29(土) 11:19:00 ID:???]
>>629
オマエが作れよ
俺は無視するが

631 名前:nobodyさん mailto:age [2007/12/29(土) 14:02:28 ID:???]
ハッシュを宣言し、それを関数に渡す処理をしたいのですが、
Perlのサイトにはそのサンプルが載っていなかったので、
自分なりにコードを書いてみました。
ttp://www.rfs.jp/sb/perl/02/05.html
ttp://www.site-cooler.com/kwl/perl/4.htm

関数に渡すときのコードの書き方や、受けるときのコードの書き方において、
これが偶然動いているだけなのか、不安になって質問してみました。
書き方は基本的にこれで良いのでしょうか。
やりたいことは、「ハッシュと数値を受け取り、処理を行う関数を
定義すること」です。

sub tt(){
my %t = @_;
print $t{"水"};
print "\n";
print $_[1];
}

%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;

&tt(%c,1);

632 名前:nobodyさん [2007/12/29(土) 15:00:37 ID:CoF2fqIA]
sub tt {
my ($t,$n) = @_;
print $t->{"水"};
print "\n";
print $n;
}

%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;

&tt(\%c,1);

633 名前:631 mailto:age [2007/12/29(土) 15:52:15 ID:???]
>>632
すばやいレスありがとうございます。
いろいろ試してみて気づいたのですが、$_[1]としても、
2番目に指定した引数が取れるわけではないのですね。
今回は偶然$c{"月"}の1が表示されていただけなのには
気づきませんでした。
あと、ハッシュを関数に渡す場合は参照渡しの方が良いのですね。
非常に助かりました。

634 名前:nobodyさん mailto:sage [2007/12/29(土) 17:19:50 ID:???]
>>626さんくす

635 名前:nobodyさん mailto:sage [2007/12/29(土) 20:00:55 ID:???]
>>629
Perlベストプラクティス



636 名前:nobodyさん mailto:sage [2007/12/29(土) 20:26:23 ID:???]
>>629
理由は大まかに言って、
・ コーディングの自由度の高さこそがPerlの特徴
  → コーディング規約で縛ったらPerlらしくない
・ Perlのコーディングスタイルとしてキーストロークをいかに減らすかを重視するスタイルが存在する
  → キーストロークを減らす派にとってコーディング規約なんて邪魔以外のなにものでもない
・ スクリプト言語なので元の用途は自前のツールをお手軽に作る事だった
  → 自分専用の道具を作るのにJIS規格とかを気にするヤツはいないのと同じでコーディング規約なんてキニシナイ
・ スクリプト言語はコンパイラ言語と違って大規模開発に向いてないと信じられていた
  → 小規模ならコーディング規約なんていらない。
って感じだな。

プロセッサも高性能化し、スクリプト言語でも十分に大規模開発が可能になったが、
・ 未だにキーストロークを減らす派の存在が大きい
・ CPANなど充実したライブラリの存在で実際にコーディングする量はそれほど増えてない
って理由から、わざわざコーディング規約を決めようとする動きも存在しないわけ。

使いたいものが、この世に存在しないなら自分で作ればいい。
もし、藻前さんがPerlのコーディング規約が欲しくて作るというなら、
目を通して意見を言うぐらいの手伝いはこのスレの人もやってくれると思う。

まあ、使う人がそんなにいるとは思えないが。

637 名前:629 mailto:sage [2007/12/30(日) 19:23:31 ID:???]
>>636
詳細な説明のレスありがとうございます。
自分でもPerlについて調べていたのですが、似たようなことが書いて
ありました。自由度の高さが売りなので、逆に規約が無いということ
ですね。納得しました。(TMTOWTDIと呼ぶみたいですね。)
スクリプト言語関連の部分は調べた範囲ではなかったので、非常に
参考になりました。歴史的な経緯もあるのですね。
私は今までVBなどをやっていたので、Perlの規約が無いのには違和感を
感じますが、自分がなれている独自の規約で書いていこうと思います。

こうなると、コーディング規約よりも「こういう場合はこういう
コードを書くと便利だ」といった、Tips系のものを集めた方が
よさそうな気もしました。

例:POSTで受け取ったデータは、foreachを用いてハッシュに入れると良い。
この方法のメリットは〜〜。デメリットは〜〜。

詳しく考えがまとまったらまた相談します。ありがとうございました。

638 名前:nobodyさん mailto:sage [2007/12/30(日) 20:27:22 ID:???]
>>637
use CGI;
my $q = new CGI;
print $q -> param( 'hoge' );
これよりも簡単に書けるなら使ってやる。



639 名前:629 mailto:sage [2007/12/30(日) 20:56:34 ID:???]
cgi.pmというのがあったんだ。知らなかった。
今まで読んでたサンプルソースにはそんなのが
なかったので知らずに全部コード自作してたよ。orz

640 名前:nobodyさん mailto:age [2007/12/31(月) 10:57:08 ID:???]
CGIの実行を制限する方法についての質問です。
例えば、2ちゃんねるは、別のサイトやローカルPCに保存したhtmlファイル
から「書き込む」をしてもエラーが出て受付けない仕様となっていますが、
こういった不正な入力を防ぐには、具体的にどういったコードを書いたら
よいのでしょうか。環境変数あたりで判断して行うのでしょうか。

641 名前:nobodyさん mailto:sage [2007/12/31(月) 15:09:23 ID:???]
一番簡単な方法は環境変数だわな
if ($ENV{'HTTP_REFERER'} !~ m!^\Qhttp://俺のサーバ/cgiのパス\E!) {
  # 外部から書くな氏ねハゲ池沼ボダ抱いて
}
みたいなかんじで

642 名前:nobodyさん mailto:sage [2007/12/31(月) 15:48:47 ID:???]
先ほどスレ違いをしてしまったので
.cgi .plのスクリプトを使いたいのですが
どうすれば実行されるのですか?
クリックしても.exe .batみたいに動かないし…

やり方を教わったのですが 意味がわからないし…
教えてください お願いします

643 名前:nobodyさん mailto:sage [2007/12/31(月) 15:51:39 ID:???]
>>642って何?いろんなところにコピペしてるのかな?
pc11.2ch.net/test/read.cgi/php/1187729623/443

644 名前:640 mailto:age [2007/12/31(月) 19:09:34 ID:???]
>>641
レスありがとうございます。
書き込みをみて、$ENV{'HTTP_REFERER'}をキーワードで
検索をしてみたのですが、書き方は何種類かパターンが
あるのが分かりました。

$site = "http://俺のサーバ/cgiのパス";
if($ENV{'HTTP_REFERER'} !~ /$site/i)
if($ENV{'HTTP_REFERER'} !~ /^$site/)

この書き方においては、これが一番いいなという結論のような
ものはないのでしょうか。
改行コードの変換の仕方の解説で、こういったサイトを
読んだことがあるので、ちょっと不安になって聞いてみました。
ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify

645 名前:638 mailto:sage [2008/01/02(水) 18:35:41 ID:???]
>>639
まぁ、おいらも最初は自作してたんだし。
それに、自作したからこそ理解できた部分もあるだろう?

心配するな。みんな同じ道を歩んできた。

>>640
参照元は偽装できるから、セッション利用するのがいいかもね。

646 名前:640 mailto:age [2008/01/04(金) 00:25:33 ID:???]
>>645
ヒントありがとうございます。調べてみます。

647 名前:nobodyさん mailto:sage [2008/01/04(金) 14:22:05 ID:???]
確認ですが、CGI.pm のモジュールでは、FORMタグを書いた際に
改行されないようにするのが出来ないですよね?

具体的には、↓これをFORMタグ内に記述したりするものです。
style="float:right"

改行されるのが嫌ならば、FORMタグをTABLEタグの外で記述すれば
いい話ではありますが、デザインの都合上でそれが出来ないケースの話です。

648 名前:nobodyさん mailto:sage [2008/01/04(金) 15:55:01 ID:???]
>>647
馬鹿じゃないの?



649 名前:nobodyさん mailto:age [2008/01/04(金) 15:56:37 ID:???]
かなり初級的な質問ですが、お願い致します。
Perlの場合は、配列と数値を引数で渡すことは出来ないのでしょうか。
例えば、以下のような感じで、@a を @n1 へ、そして、$i を $n2 で
受け取りたいのですが、$n2 値が表示されないのです。

sub FuncA(){
my( @n1, $n2 ) = @_;
print "@n1[0]\n";
print "@n1[1]\n";
print "@n1[2]\n";
print "$n2";
}

@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA( @a, 3 );

650 名前:nobodyさん mailto:sage [2008/01/04(金) 16:19:57 ID:???]
リファレンス

651 名前:649 mailto:age [2008/01/04(金) 16:42:27 ID:???]
>>650
レスありがとうございます。
以下のように書き直してみたら、ちゃんと3が表示されましたが、
こういう渡し方をするしかないという意味合いですよね?

sub FuncA(){
my( $n1, $n2 ) = @_;
print "$n1->[0]\n";
print "$n1->[1]\n";
print "$n1->[2]\n";
print "$n2";
}

@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA(\@a,3);

652 名前:nobodyさん mailto:sage [2008/01/04(金) 17:41:36 ID:???]
他にもやりようあるけど
それがいちばん簡単じゃない?

653 名前:649 mailto:age [2008/01/04(金) 20:24:38 ID:???]
>>652
他のやりようとはどんなものなのでしょうか?
キーワードのヒントでもいいのでお願いいたします。m(_ _)m

654 名前:nobodyさん mailto:sage [2008/01/04(金) 20:38:02 ID:???]
すみません質問です。
「Perlは時代遅れだ。」という書き込みを読んでちょっと不安になったのですが、
Perlは本当に時代遅れなのでしょうか?

レンタルサーバのサービスでは、低価格でもPerlは確実にサポートしているので、
システムを組む時や、別のサーバにシステムを移項するのには非常に
やりやすいものであります。
COBOLがすたれたのは、Excelが出たからというのが一つの要因ですが、
私には、PerlにとってのExcelにあたるものが見当たりません。

なので、PerlはWebプログラミングとしては、まだまだ十分に
活用できる言語だと思っています。
もし、本当にPerlが時代遅れだとすると、PHPやJavaが特有で持っている機能が
必須となるわけですが、それらは具体的にどういう機能なのでしょうか。
よろしくお願い致します。

655 名前:nobodyさん [2008/01/04(金) 22:34:46 ID:zn9OWNdo]
>>653
>>652じゃないけど
プロトタイプでできるよ
sub hoge ($@) {
 my $foo = shift;
 my @bar = @_;
}
hoge($foo,@bar);

たぶんこんな感じだと思う

普通に配列を後で渡せば受け取れるけどね。
$_[0]をshiftしちゃえば同じ事だと理解できればぉk

656 名前:nobodyさん [2008/01/04(金) 22:39:39 ID:zn9OWNdo]
>>654
PHPに出来てPerlに出来ない事は無い。
たとえばPHPならDBとの連係が良いとか。
でも、web専門だったり。
javaは規模や対象から違う。

要は目指す所の違いだと思う。

Perlが汚いと思うならRubyやPythonをやれば良い

657 名前:nobodyさん mailto:sage [2008/01/05(土) 01:11:38 ID:???]
アンチPerlの人は、時代遅れとか言って叩く。

658 名前:654 mailto:sage [2008/01/05(土) 02:15:25 ID:???]
>>656
>>657
ご回答ありがとうございます。
目指すところの違いがあるんですね。
アンチは具体例を出さずにすぐに一般化して
否定しますしね。
安心しました。ありがとうございます。



659 名前:649 mailto:age [2008/01/05(土) 14:25:20 ID:???]
>>655
レスありがとうございます。プロトタイプ使えばよさそうですね。
こちらでいくらかプログラムを書いてみたのですが、配列は
必ずあとじゃないとダメみたいですね。
FuncA($@) これだと動くのですが、 FuncA(@$) これだとダメでした。

660 名前:nobodyさん mailto:sage [2008/01/05(土) 18:18:51 ID:???]
質問です。
ナビゲーションバーが<li>タグで
フォームがテーブルタグで囲む形で
出力されるテンプレートエンジン。

これは今風ではないでしょうか?
出力されたHtmlを読むと可読性が良さそうなので
これで行こうと思っています。用途はテンプレート
エンジンの勉強がてら簡易wikiでも自作してみよう
と思ってます。どうぞよろしくお願い致しますm(__)m

661 名前:nobodyさん [2008/01/06(日) 01:12:32 ID:4ZDHflzT]
ActivePerlにcpan Perl::Tidyしました
cygwinからActivePerlを使っているのですが、
$ perltidy
としてもcommand not found になります。
どうしたわけでしょう。
cygwin用のperltidyもあるときき、Cygwinからもcpan Perl::Tidyで入れてみましたが、
依然として
$ perltidy
command not found
です。アドバイスください。ヒントでもいいのでお願いします。

662 名前:nobodyさん mailto:sage [2008/01/06(日) 05:36:20 ID:???]
昔俺もやった。確か bin にパスが
通ってないだけだったと思うけど。

663 名前:nobodyさん mailto:sage [2008/01/06(日) 11:16:43 ID:???]
>>660
htmlタグの書き方について質問をしたいのであれば、
WebProg板ではなく、Web製作板の方へどうぞ

664 名前:nobodyさん [2008/01/06(日) 13:57:41 ID:4ZDHflzT]
>>662
うまくいきました。ありがとうございます。

665 名前:nobodyさん [2008/01/06(日) 15:48:56 ID:srAiPMxF]
関数に配列を渡そうとしているのですがうまくいきません。

呼び出し側
p_html_kotaivew_kekkawrite
($name, @status, $ks, @han1, @han2, @sta1, @sta2);
関数側
sub p_html_kotaivew_kekkawrite{
local($name, @status, $ks, @han1, @han2, @sta1, @sta2) = @_;
〜〜以下略

このような感じにやると、渡した$name以降の配列がすべて@statusに格納されてしまいます。
アドバイスお願いします

666 名前:nobodyさん mailto:sage [2008/01/06(日) 16:21:21 ID:???]
リファレンス渡しにしろ

667 名前:nobodyさん [2008/01/06(日) 16:47:29 ID:XbpFSz7R]
>>666
リファレンス渡しをしてみましたが、やはり@statusに以降の配列がすべて格納されてしまいます。


668 名前:nobodyさん mailto:sage [2008/01/06(日) 17:03:52 ID:???]
>>667
p_html_kotaivew_kekkawrite
($name, \@status, $ks, \@han1, \@han2, \@sta1, \@sta2);

sub p_html_kotaivew_kekkawrite{
 local $name = @_[0];
 local @status = @{$_[1]};
 local $ks = @_[2];
 local @han1 = @{$_[3]};
 local @han2 = @{$_[4]};
}
 local @sta1 = @{$_[5]};
 local @sta2 = @{$_[6]};
}



669 名前:nobodyさん mailto:sage [2008/01/06(日) 17:04:32 ID:???]
>>668
ブレスミスすまそ

670 名前:nobodyさん mailto:sage [2008/01/06(日) 17:26:06 ID:???]
>>669
なるほどそのように記述すればよろしいのですね。
本当にありがとうございました

671 名前:nobodyさん mailto:sage [2008/01/06(日) 19:10:38 ID:???]
>>668ですでに回答は書いてあるけれど。。。
他の言語を先にやったものだと違和感を感じるものだが、perlの場合は、
関数は、スカラを先に書いて、配列を後に書いた方がいいというルールが
あるようだ。

672 名前:nobodyさん mailto:sage [2008/01/06(日) 19:20:03 ID:???]
ま、スライスを理解すればそれが普通に・・

673 名前:nobodyさん mailto:age [2008/01/06(日) 19:21:39 ID:???]
すみません。質問です。
Perlで検索結果一覧を出すまでや、ファイルへ書き込みをした場合に
要した時間を計り、表示させたいのですが、どのような関数を
使用したらよろしいのでしょうか。

674 名前:nobodyさん mailto:sage [2008/01/06(日) 19:50:13 ID:???]
>>673
my $t = time;
〜 #計測したい処理
my $t2 = time;
my $sec = $2 - $1;
print "$sec秒だったです";

675 名前:nobodyさん mailto:sage [2008/01/06(日) 19:51:41 ID:???]
訂正
× my $sec = $2 -$1;
○ my $sec = $t2 - $t1;

676 名前:nobodyさん mailto:age [2008/01/06(日) 19:58:47 ID:???]
>>674->>675
すばやい回答ありがとうございました。

677 名前:nobodyさん mailto:sage [2008/01/06(日) 20:17:39 ID:???]
開こうとしているサイトのURLを入力し、危険なhtmlコードが
含まれているかをチェックするcgiサイトがありますが、
あれはどういう原理で動いているのでしょうか。
自分のサーバとは別の、他のサイトのhtmlファイルを読み込むという事は、
perlのopenでは出来ませんよね?

678 名前:nobodyさん mailto:sage [2008/01/06(日) 20:38:06 ID:???]
Socket使うかLWPモジュール使うか



679 名前:nobodyさん mailto:sage [2008/01/06(日) 22:14:19 ID:???]
初歩的な質問ですが、サイトを読んでいてもいまいち分からなかったので
こちらで質問させていただきます。

配列の1つの要素への処理の記述方法についてです。
以下のコードを記述しておいて、それに続くものです。
@a = ( "a1", "a2" , "a3" );

記述1:$a[1] = "b2";
記述2:@a[1] = "b2";

どちらの記述でも、思うように動作しているので、問題なさそうなのですが、
処理速度や、内部的な動きなどからいってこっちの記述が良いというものや、
多くの人のコーディングはこちらが多いから、などというものはあるの
でしょうか。

680 名前:nobodyさん mailto:sage [2008/01/06(日) 22:15:19 ID:???]
おま・・・

681 名前:nobodyさん mailto:sage [2008/01/06(日) 22:30:21 ID:???]
cgiをブラウザで開いてテストしたいのですが、
ブラウザで開こうとするとエディタが開いてしまいます。
どうすればいいですか?

682 名前:nobodyさん mailto:sage [2008/01/06(日) 23:05:56 ID:???]
>>678
ありがとうございます。
さっそくぐぐって見ます。

683 名前:nobodyさん mailto:sage [2008/01/06(日) 23:12:15 ID:???]
>>681
必要な環境整えてる?
Windowsならば、ActivePerlとApacheをいれて設定するとか、
設定したフォルダにcgiファイルをおいてるかとか。

684 名前:nobodyさん mailto:sage [2008/01/06(日) 23:28:59 ID:???]
>>683
ApacheもActivePerlも入ってます。
ブラウザで開こうとするとエディタに実行結果が返ってきてるので
フォルダ等も大丈夫だと思います。

685 名前:nobodyさん mailto:sage [2008/01/06(日) 23:31:53 ID:???]
エディタに実行結果返ってきてるからってフォルダが正しいとは限らない気が・・

686 名前:nobodyさん mailto:sage [2008/01/06(日) 23:37:38 ID:???]
取り合えずやったことを書き出してみます。
#! c:/perl/bin/perl

print "Content-type: text/plain\n\n";
print "Hello Perl !";
を1-1cgiとしてhtdocs/rensyuに保存してブラウザで127.0.0.1/rensyu/1-1.cgiを使って実行すると
ファイルをダウンロードしてエディタが開いて実行結果が返ってきてるんですよね

687 名前:nobodyさん mailto:sage [2008/01/06(日) 23:39:11 ID:???]
cgi-binに入れようよ・・・・

688 名前:nobodyさん mailto:sage [2008/01/06(日) 23:43:00 ID:???]
>>686
httpd.conf の設定は確認してる?
参考にとほほのサイト紹介しておきます。
ttp://www.tohoho-web.com/wwwxx048.htm



689 名前:nobodyさん mailto:sage [2008/01/06(日) 23:49:36 ID:???]
text/plainだからじゃないの

690 名前:nobodyさん mailto:sage [2008/01/07(月) 00:02:41 ID:???]
>>687
参考にしてる本がhtdocsだったんですよね
>>688
設定確認しましたが、大丈夫だと思います。

ちょっと試してみたんですが、
#! c:/perl/bin/perl

# CGIヘッダーの出力
print "Content-type: text/html\n\n";

# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n\n";
print "<head><title>Hello HTML</title></head>\n";
print "<body><p>こんにちは。これはHTML文書の例です。</p></body>\n";
print "</html>";
だとブラウザに出力されました
もうわけが分かりません

>>689
ソースはテキストどおりなんですよね

691 名前:nobodyさん mailto:sage [2008/01/07(月) 00:23:35 ID:???]
何がわけわからんのだろう
ブラウザの設定でtext/plainはエディタで開くようになってるんでしょ

692 名前:nobodyさん mailto:sage [2008/01/07(月) 00:41:55 ID:???]
自分もさっきApache入れたら同じ症状になって困ったが
explorerの関連付けはずしたら正常になった

693 名前:nobodyさん mailto:sage [2008/01/07(月) 00:56:15 ID:???]
>>691
ブラウザの設定なんですかね?
ブラウザに関連付けしてみたらブラクラみたいになったんですが、
どういう設定をいじればいいんですか?

>>692
.cgiへの関連付けを削除してみたら
ブラウザから開こうとしたら
このファイルを保存しますか、または開くためのプログラムをオンラインで検索しますか?と
でてきました。
よければ現状、何に関連付けされてるか教えてもらえないですか?

694 名前:nobodyさん mailto:sage [2008/01/07(月) 01:06:33 ID:???]
>>690
どうしてもhtdocs内で実行させたいなら
<Directory ******/htdocs>
Options ExecCGI
</Directory>

みたいにExecCGI追加して
AddHandler cgi-script .cgi

みたいに設定ファイル(httpd.conf)を書き換えて再起動して味噌

695 名前:nobodyさん mailto:sage [2008/01/07(月) 01:14:15 ID:???]
>>693
まったく関連付けなし。

ってか>>688のサイトにあった、>>694の設定をしたら
関連付けしても普通に動くようになったぞ

696 名前:nobodyさん mailto:sage [2008/01/07(月) 01:17:32 ID:???]
>>693
関連付けはいじらずにtext/htmlで書き出せばどうだい

あと関連付けするのはcgiじゃなくてtxtだと思う

697 名前:nobodyさん mailto:sage [2008/01/07(月) 01:39:40 ID:???]
<Directory "C:/ApacheGroup/Apache2/htdocs">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
を付け加えてもダメでした・・・
エディタは開かなくなったんですが、一瞬プロンプトの画面が見えたと思ったら消えて、
ブラウザにはWeb ページへのナビゲーションは取り消されましたってでてしまいます
>>696
htmlで書き出すとブラウザにでるんですけど、テキストがplaneで出力できてるんで自分の設定がなにかおかしいところがあると思うんですよ
だからそれを解決しとかないと・・・と思うんですよ。

698 名前:nobodyさん mailto:sage [2008/01/07(月) 09:36:39 ID:???]
>>697
もう一度よ〜〜〜く見るんだ。

”Content-type: text/plane” じゃあ、
そりゃ「そんな mimetype わしゃ知りません」ってIEがおっしゃるよ。



699 名前:nobodyさん mailto:sage [2008/01/07(月) 09:53:12 ID:???]
初心者はapacheじゃなくてanhttpd使った方がいいぞ。
たぶんapacheの設定で失敗してるはず。

700 名前:nobodyさん mailto:age [2008/01/08(火) 17:54:44 ID:???]
【質問】
レンタルサーバでCGIでプログラムを動かしているのですが、
処理を行う際のサーバの負荷が気になるので、>>674-675
書いてある方法を使用し、常に処理にかかった時間を
表示するようにしています。
ある関数を動かした際、普段の処理時間は1〜2秒なのですが、
ネットが異常に遅い時に同じ処理をした時、10秒ほどかかりました。
この処理にはhtml出力が入っているのですが、CGIのhtml出力は、
CGIで処理した結果すべてをまとめてクライアントPCのブラウザへ
流しているものだと思っていましたが、仕組み的にはそうではない
ということなのでしょうか。
それとも、私の使用している計測方法が誤っているのでしょうか。

何かこういうのを調べてみろ、みたいなヒントでも良いので
よろしくお願いします。

701 名前:nobodyさん [2008/01/08(火) 19:20:06 ID:b1r9jep2]
perl -Mでシンボルをインポートするにはどうしたらいいですか。
perldocしましたが見つかりませんでした。

702 名前:nobodyさん mailto:sage [2008/01/08(火) 19:21:24 ID:???]
>>700
検索→[Perl フラッシュ]

703 名前:nobodyさん mailto:sage [2008/01/08(火) 20:25:03 ID:???]
>>700
times関数ってのがあるよ

704 名前:700 mailto:sage [2008/01/09(水) 00:13:41 ID:???]
>>702
>>703
ありがとうございます。
早速調べてみます。

705 名前:701 [2008/01/09(水) 06:38:37 ID:g0MHwkoX]
>>701お願いいたします。

706 名前:nobodyさん mailto:sage [2008/01/09(水) 07:18:12 ID:???]
>>700
時間計測をやめて少しでも処理を減らすが吉

707 名前:nobodyさん mailto:sage [2008/01/09(水) 23:13:03 ID:???]
現在、データを複数のテキストファイルに書き込む処理を
するかたちでプログラムを組んでいます。
この複数のファイルは、丁度テーブルに見立てた設計に
しており、主キーで連携を取っています。
しかし、データがテキストファイルであるため、データの
取り扱いに不便を感じる場合もあります。
ソートをする際、すべてのデータを変数に読み込んだり
出来ない場合は、ソートをしながら別のファイルに
書き込むといった感じです。

こういう、データを記録するのに丁度良いモジュールという
ものはないのでしょうか??
ま、データベースを使えばという話になるのでしょうが、
レンタルサーバなどの環境でそこまで準備が出来ない場合の話です。

708 名前:nobodyさん mailto:sage [2008/01/09(水) 23:25:07 ID:???]
>>707
無料レンサバでもDB使えるとこ結構ある。




709 名前:nobodyさん mailto:sage [2008/01/10(木) 02:06:12 ID:???]
# フォームデータの取得
if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}

ここまではエラーなく処理できてるんですが

# フォームデータの復元

foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);

コレを入れるとエラーがでてしまうんですが、どこが悪いんですかね?

710 名前:nobodyさん [2008/01/10(木) 02:09:13 ID:YdP4IGcZ]
閉じ中カッコがない

711 名前:nobodyさん [2008/01/10(木) 19:24:04 ID:Ea25ozf2]
引数を作るにはどうしたらいいんですか?

index.cgi?----
みたいな感じのです。


712 名前:nobodyさん mailto:sage [2008/01/10(木) 19:44:52 ID:???]
>>707
つ DBD::CSV

713 名前:nobodyさん mailto:sage [2008/01/10(木) 19:46:08 ID:???]
>>711
つ[ ttp://www.futomi.com/lecture/form/cgi-pm.html#s3 ]

714 名前:nobodyさん [2008/01/10(木) 21:21:19 ID:YdP4IGcZ]
5.10にしないと入れられないモジュールを入れるにはどうしたらいいですか
5.8.8からcpanコマンドで入らないです

715 名前:nobodyさん mailto:sage [2008/01/11(金) 02:44:48 ID:???]
>>712
make
make install

716 名前:nobodyさん [2008/01/11(金) 18:21:27 ID:PVnoyiBC]
C++,JAVAを児戯並みに使えるパーラー見習いですが、
最近パールの良さがわかってきました
さてWindows上のGUIアプリケーションを作るのには向いてますか?
モジュールはちらほら見かけましたし実際作ってみましたが、やり方が悪いのかうまくいきません
どうも腑に落ちません
実際作ってみてどうですか?

717 名前:nobodyさん mailto:sage [2008/01/11(金) 21:00:50 ID:???]
Tkはモジュールの近い方覚えれば何でも作れるけど、ローカルサーバー立ててCGIで済ましちゃうことが多い。
Win32はシラネ

718 名前:nobodyさん mailto:sage [2008/01/11(金) 22:16:12 ID:???]
>>716
WindowsのGUIアプリならば、VBなどがあるのにあえてPerlを
選ぶ理由は何?
企業が使う業務システムではVBが圧倒的に多い理由を考えると、
と思うけれど。



719 名前:nobodyさん mailto:sage [2008/01/12(土) 03:37:57 ID:???]
>>716
Perlのよさがわかってないと思います

720 名前:nobodyさん mailto:sage [2008/01/12(土) 03:49:51 ID:???]
Rubyまじお勧め

721 名前:nobodyさん mailto:sage [2008/01/12(土) 14:37:13 ID:???]
Rubyは1.8でオワタ

722 名前:nobodyさん mailto:sage [2008/01/12(土) 16:29:39 ID:???]
Perlではソースコードの圧縮(空白やコメント除去)があまり行われないのはなぜですか?

723 名前:nobodyさん mailto:sage [2008/01/12(土) 17:15:04 ID:???]
pc11.2ch.net/test/read.cgi/php/1036141603/l50

ここでソースコードの圧縮やってるよ

724 名前:nobodyさん mailto:sage [2008/01/12(土) 20:57:02 ID:???]
ティムトゥディだからさ

725 名前:nobodyさん [2008/01/13(日) 01:39:09 ID:EtYE9LoZ]
CPANモジュール名のリストがあるときに、それらを自動でインストールするには
どうしたらいいですか?

726 名前:nobodyさん mailto:sage [2008/01/13(日) 08:37:57 ID:???]
Windowsならバッチファイルにする
Linuxはしらね

727 名前:nobodyさん mailto:sage [2008/01/13(日) 12:51:10 ID:???]
パール六は全然違うとしきりに言う同僚がいて不安感が煽られています
当方パール入門したでして…覚えたばかりの知識が海のもずくになると思うと…

しかし実際のところあと3年はPerl5の知識が使えるんですかね?
そのPerl6とやらがいつ出るかも知らないので(公式サイトを検索しまくっても見つからなかった
私はバカですか?)何とも言えない状況です

あと移行はいきなりなんでしょうか、5.12を過ぎて6になった途端に様変わりしちゃったらすごく困ります^-^;

728 名前:nobodyさん mailto:sage [2008/01/13(日) 13:46:17 ID:???]
デフォでuse strictとか、正規表現の記述が変わるとか、ソレぐらいしかしらね。



729 名前:nobodyさん mailto:sage [2008/01/13(日) 14:45:25 ID:???]
変更点を把握すれば何も問題ないだろ

730 名前:nobodyさん mailto:sage [2008/01/13(日) 16:08:40 ID:???]
Rubyの仕様変更に比べればどうってことない

731 名前:nobodyさん mailto:sage [2008/01/13(日) 17:03:12 ID:???]
>>727
ま、こういうのはどの言語でもふつうにあることなんじゃないかな。
そういうのについてこれないのは、技術者として終わりみたいな。
今でも N88BASIC とか COBOL とかで組んでる人っていないだろ?

> しかし実際のところあと3年はPerl5の知識が使えるんですかね?
> あと移行はいきなりなんでしょうか
これは、ケースバイケースなのではっきりとはいえない。
例えば、過去の資産を活かしたシステムを構築する場合は、Perl5で
構築するだろうし。
あと、安定性も考えて、いきなり新しくはしないケースもある。
システムは、早く作れることも大事だけど、安定して動くことが
大事なのだから。

個人的に思うのだけど、大幅な仕様変更をするのに、いつまでも
前の名前を使い続けるから紛らわしくなるんじゃないかなと思う。
Perl は 5 で完成形であり、それで終わり。役割は果たした。
そして、新しい言語が出る。とした方が分かりやすいと思うのだが。

732 名前:nobodyさん mailto:sage [2008/01/13(日) 17:13:18 ID:???]
安定性を無視して、やたらと新機能を追加させることに
固執している言語があるが、あれよりマシだと思う。

大幅に仕様変更していて、ユーザがついてこなかったから、
やっぱり戻したとか。
仕様変更をしすぎて、別の言語と非常に似ていて
その存在自体が意味無いものに見えるとか。

733 名前:nobodyさん mailto:sage [2008/01/13(日) 20:48:32 ID:???]
>>732
PHPのことか。
zendはphp4のサポートを終わらせて無理やり5に移行させたがっているが、4の開発メンバーは今は6を作ってるらしいからそれ待ちだ。

734 名前:nobodyさん mailto:sage [2008/01/14(月) 03:03:11 ID:???]
なんでPHPやねんw

735 名前:nobodyさん [2008/01/14(月) 03:20:58 ID:h4dQ9PIo]
日本のPHPの人気ぶりは異常
海外サイトではPHPなんて全く持ち上げられてない
んで、何がいいたかったかというとPerl最高

736 名前:nobodyさん mailto:sage [2008/01/14(月) 09:05:00 ID:???]
ということにしたいんですね

737 名前:nobodyさん mailto:sage [2008/01/14(月) 09:50:52 ID:???]
日本のウォシュレットの人気ぶりは異常
海外サイトではウォシュレットなんて全く持ち上げられてない
んで、何がいいたかったかというと温熱最高

738 名前:nobodyさん mailto:sage [2008/01/14(月) 12:36:17 ID:???]
PHPのプロジェクトに放り込まれて、担当モジュール作ったけど、他のモジュールが遅れてたので、暇つぶしにPerlで全部作ったら怒られた。
Rubyのほうが良かったですか?って聞いたら余計に怒られた。
なんで?



739 名前:nobodyさん mailto:sage [2008/01/14(月) 13:25:17 ID:???]
KY社員は死ね

740 名前:nobodyさん mailto:age [2008/01/14(月) 14:50:02 ID:???]
レンタルサーバにて、Perlを使ってPostgreSQLに接続し、
その内容をhtml出力するところまでやっと出来たくらいの知識の者です。

そこで、普段のバックアップはどういう仕組みでやるとよいのか
迷いましたので、こちらで質問してみました。
私としては、Perlで、データベースのテーブルとテキストファイルと
をコンバートするプログラムを自作し、定期的に手動(FTPソフトを
使うなどして)でローカルにファイルを保存しておく方法くらいしか
思いつきませんでした。しかし、それだと普段の作業に非常に
手間がかかってしまいます。

一般的に、レンタルサーバでPerl+PostgeSQLのWebシステムの
バックアップは、このような方法を取ることが多い、みたいなものは
あるのでしょうか。よろしくお願いします。

741 名前:nobodyさん mailto:sage [2008/01/14(月) 18:56:43 ID:???]
SSHでpg_dump

742 名前:nobodyさん mailto:sage [2008/01/14(月) 19:46:06 ID:???]
>>741
Postgresqlの定番のバックアップの方法ですよね。
それしかないのでしょうかね。

743 名前:nobodyさん [2008/01/16(水) 10:57:33 ID:Z4nycbhz]
パールでWebプログラミングしようかと思っております。
が、セキュリティーが不安です。
レンサバでやるにせよ、セキュリティーに穴があって攻撃されると
いろんなトラブルがあるんでしょ?
当方、素人の趣味でやってるプログラミング歴まだ1年のプログラマーなもので
そのあたりを実際に企業で開発した経験が当然なく不安です。
セキュリティーやネットワークに関する勉強をやるのに手始めとしてオススメのメソッドありますか?
あまりパールと関係なくてごめんなさい。

パールの本でセキュリティーやネットワーク関係のものって無いですよね。
LWP本はありましたが、
もっと広範にネットワーク関係のスキルを強化したいです。パケット解析とか。

まあ、それはそうと他のWeb系を始めようとするパーラーはそういうセキュリティーやネットワーク関係の不安ないんでしょうか?
皆さん気軽に始めていらっしゃる方が多くよほど知識がおありなのだなあと斜にかまえて静観しています。

744 名前:nobodyさん mailto:sage [2008/01/16(水) 17:37:17 ID:???]
どこを縦読み?

745 名前:nobodyさん mailto:sage [2008/01/16(水) 17:58:11 ID:???]
>>743
Perlからはなれて、パケットフィルタリングとか、TCP/IPの
詳細について調べていった方がいいと思う。
セキュリティも個人情報を扱っているとか外に洩れるとやばいものは
物理的なレベルで外部に公開せずに社内LANでのみとかにするわけで、
そういうものはPerlの設定やコーディングでなんとかするものではない。

746 名前:nobodyさん mailto:sage [2008/01/16(水) 18:07:35 ID:???]
>>743
最近は、ASP(アプリケーションサービスプロバイダ)とかあるので、
それを利用した方がいいと思う。プログラムを組むのは辞めて。
それだと、必要な機能だけを月に数千円〜数万円で必要な期間だけ
利用できる。

747 名前:nobodyさん mailto:sage [2008/01/16(水) 20:49:06 ID:???]
ごめん、拡張子aspだけど、中身Perlwwwwww

748 名前:nobodyさん mailto:sage [2008/01/16(水) 22:39:49 ID:???]
>>747 あるあるwww



749 名前:nobodyさん mailto:age [2008/01/18(金) 20:13:52 ID:???]
すみません。質問です。
不正な入力を防ぐ為に、いろいろなことを考えているのですが、
一人で考えていると、漏れがありそうな気がして怖くなりました。
何か、こう言うことを考えてコーディングしたほうがいいという
ガイドラインのようなものはあるのでしょうか。

例えば、以下のような感じです。
1.変なアドレスからcgiを実行しようとしていたらはじく
2.textareaタグの記述は○文字まで
3.同一IPアドレスからの連投を防ぐ

750 名前:nobodyさん mailto:sage [2008/01/18(金) 22:45:45 ID:???]
パイプで別プロセスを作った場合ですが、
特殊サブルーチンENDはそれぞれが終了した場合に常に行われる。
これを防ぐ手立てはないでですか?

751 名前:nobodyさん mailto:sage [2008/01/19(土) 10:32:13 ID:???]
>>750です。自己解決しま。

752 名前:nobodyさん [2008/01/19(土) 16:56:00 ID:FZ1FRzKn]
Perl使用者がよく使うライブラリ、モジュールなどを紹介した
投票形式のサイトを以前見かけたのですが、思い出せません。

どなたかご存じないでしょうか?


753 名前:752 mailto:sage [2008/01/19(土) 17:21:59 ID:???]
見つかりました

mfpm.blogdb.jp/

お騒がせしました

754 名前:nobodyさん [2008/01/23(水) 16:33:04 ID:LaH3xf3C]
こんにちは。

755 名前:helpです [2008/01/23(水) 17:26:00 ID:AM6Aqa52]
すいません。下記のようにwhile→foreach→whileと入れ子構造で
繰り返し単語リストにある用語を文書から検索したいのですが、
上手く動きません。Helpお願いします。
$word がwhile (<F>) 以下の$wordに上手く渡せません。

open(F4, $dic_file) || die "$dic_fileをオープンできません:$!\n";

while (<F4>){
@words = split(/\n/, $_);
foreach $word (@words){

while (<F>) {

print "$_";
#「$word」という単語のみにマッチさせる


756 名前:nobodyさん mailto:sage [2008/01/23(水) 18:55:07 ID:???]
while (<F4>){
@words = split(/\n/, $_);

wwwwwwwwwwwwwwwwwwwwwwwwwwww

757 名前:nobodyさん mailto:sage [2008/01/23(水) 19:27:30 ID:???]
$/ = '';


758 名前:755 mailto:sage [2008/01/23(水) 22:55:33 ID:???]
つまり
1.用語ファイル (単語が1行に一つずつ入ってる用語。500個位)
2.文書ファイル (文書ファイル。単純なテキスト)
3.2の文書ファイルを、1の用語ファイルの単語を一つずつ
whileを使って検索します。

早めに必要なのでどなたか教えてください。>756さん笑ってないで。



759 名前:nobodyさん mailto:sage [2008/01/24(木) 00:24:58 ID:???]
>>755
Perlでは(というか…)改行文字でレコードが分割されているので
@words = split(/\n/, $_); # <-はありえない
そもそも、こんなループを組むこと自体どうかとも思うが

my @words = [];
while (my $word = <F4>) {
  push @words, $word; # $_でもいいけど
}


ファイルをループ先頭でseekするのもありかな、あとはお好きにドゾー。

760 名前:nobodyさん mailto:sage [2008/01/24(木) 07:38:32 ID:???]
>>755
>>759に書いてあるように改行文字で分割される、
事前に>>757を書いておくと、以降$/に代入された文字で分割されるようになる。
ここでは空文字列なので分割しなくなる。

my $txt
{
 local $/;
 open(F,$txt_file) or die "$txt_fileをオープンできません。";
 $txt = <F>;
}
open(F4,$dic_file) || die "$dic_fileをオープンできません。";
foreach $word (<F4>) {
 $word =~ s/\n$/s;
 $txt =~ s/\Q$word\E//sg #例: マッチ部分削除
}

|´д`)ノ笑ってすまんね

761 名前:755 [2008/01/24(木) 09:47:56 ID:TN487IBF]
好きよ、好きよ、好きよ >760さん。

762 名前:nobodyさん mailto:sage [2008/01/24(木) 10:15:27 ID:???]
検索するといっても、どういう結果が欲しいわけ?
ファイル2の行数までほしいとか、ファイル1のwordのリストだけでいいとか、
件数までいるとか。

763 名前:nobodyさん mailto:sage [2008/01/24(木) 23:47:07 ID:???]
すいません。Perlからword, excelファイルをいじることってできます?
マクロの言語(VB?)分からないので・・・。

764 名前:nobodyさん mailto:sage [2008/01/25(金) 03:03:45 ID:???]
Win32::OLE

765 名前:nobodyさん mailto:sage [2008/01/25(金) 08:09:41 ID:???]
>>763
Perlそのものがその程度の知識であれば、VBAを勉強した方が早いと思う。
一つバージョンが違っただけで途中で動かなくなるとかしょっちゅうだし。

766 名前:nobodyさん mailto:sage [2008/01/25(金) 15:27:50 ID:???]
VBAでわからないなら Perlでも無理だと思う。


767 名前:nobodyさん mailto:sage [2008/01/25(金) 18:34:06 ID:???]
VBとVBAの違いが分かっていない時点で、
プログラムそのものをあきらめた方がいいと思ったりw

768 名前:nobodyさん mailto:sage [2008/01/26(土) 00:07:47 ID:???]
VBAだけでもVB組めるんだが・・・釣られた?



769 名前:nobodyさん mailto:sage [2008/01/26(土) 18:10:44 ID:???]
cgiファイルにアクセスして来た内容(GETやPOSTのデータなど)を
ログに保存する場合、すべて独自でプログラミングするしかないのでしょうか。
自分で作りはしたのですが、こういう状況は頻繁にあるので、
モジュールがあるのでは、と思ったりしたのですが。

770 名前:nobodyさん mailto:sage [2008/01/26(土) 18:32:06 ID:???]
なぜ、そう思うならドキュメントを読もうと思わないのだろうか?
search.cpan.org/dist/CGI.pm/CGI.pm#DUMPING_OUT_ALL_THE_NAME/VALUE_PAIRS

771 名前:nobodyさん mailto:sage [2008/01/27(日) 01:37:41 ID:???]
>>770
レスありがとうございます。
ドキュメント読んでやってみます。m(_ _)m

772 名前:nobodyさん [2008/01/27(日) 12:37:53 ID:TNan8zlF]
日本でperlの良いサイトが見当たりません。
perlの英語サイトでお勧めありますか?

773 名前:nobodyさん mailto:sage [2008/01/27(日) 13:13:35 ID:???]
きみの言う”良いサイト”を説明しないことには・・

774 名前:nobodyさん mailto:sage [2008/01/27(日) 13:32:38 ID:???]
perlはネット上では情報量は多い方だぞ。

一方で某社の言語のは情報量は少なく、高い公式文書とかを
買うしかなかったりするし、簡潔すぎて分かりにくい説明を
一生懸命読む羽目にもなる。

775 名前:nobodyさん [2008/01/27(日) 19:07:45 ID:TNan8zlF]
>>773
良いサイトを教えて欲しいのではなくて良いサイトが日本ではないと思うので
海外のお勧めサイトを教えて欲しいんです。
切実な要求ではなくて、ハックな皆さんが常日頃どんな英語サイトを見ているかを気軽に尋ねたつもりなんですが。

776 名前:nobodyさん [2008/01/27(日) 19:26:24 ID:TNan8zlF]
>>774
分かる気がします。
定番ですがperl mongerは良く見ますが、かなり突っ込んだトピックでも有益な情報がたくさん引っかかることがあったりしますね。
例えば、insideout objectはこのサイトで勉強しました。
あとGoogleの最近更新されたページ検索とはてブとCPANサーチを使えば目的のページが見つかることが多いですね。
皆さんはどうやってperl情報を検索してますか?
お勧めあったら教えてください。

で、上で質問したのは、RSSで読みたくなったりブラウザーのお気に入りに入れておきたくなるような良いサイトが
なかなか日本のperl関係では少ないかなということです。
まあそのあたり実際どう思います?
個人の主観なので、まあそのあたりは適当にスルーしてくださっても結構です。

777 名前:nobodyさん mailto:sage [2008/01/28(月) 00:30:45 ID:???]
おれは
perlbuzz.com/2007/08/top-10-perl-blogs.html
search.cpan.org/author/
use.perl
とか色々。

778 名前:nobodyさん mailto:sage [2008/01/28(月) 00:32:33 ID:???]
あ、authorぢゃなくて
search.cpan.org/recent
こっち。



779 名前:nobodyさん mailto:sage [2008/01/28(月) 00:36:50 ID:???]
うーん、なんか半端だな・・・
www.perlcast.com/
perlmonks.org/
perlperl.com/
cpancode.org/
cpants.perl.org/index.html


780 名前:nobodyさん [2008/01/28(月) 20:41:09 ID:iAknG7Tj]
>>777
ありがとうございます。
知らないサイトがあって参考になりました!!!!
早速livedoorリーダーにRSSフィードぶち込みますねw

サーチCPANのRecentというのは着目してませんでしたが良さげですね―
やはり最近のものをチェックしないと古くなってることが多いからですか

こうやって見てみると海外では良いperlサイトがどっさりありますね。


781 名前:755 mailto:sage [2008/01/30(水) 18:16:21 ID:???]
www.voynich.com/kwic.txtのコードなのですが、
これだと1ワード検索して終わりです。できれば以前教えていただいた
while (my $word = <F4>) {
  push @words, $word; # $_でもいいけど
}
で、foreach $word(@words){
}の中でリストの単語を全て動かしたいのですが、どうも上手くいきません。exit(0)のせい?
どこからどこまでをforeach $word(@words){}のカッコでくくればいいのでしょうか?
または、別の解決方法でもいいので、教えてください。
よろしゅう。


782 名前:nobodyさん mailto:sage [2008/01/30(水) 22:34:27 ID:???]
mapとgrep、そして多次元配列を覚えると良いよ。

783 名前:755 mailto:sage [2008/01/30(水) 23:13:31 ID:???]
>781
覚えるの1週間、教えてもらえば5分。
これでもいろいろ他にやることあるのよ。
意地悪しないで教えてちょ。

784 名前:nobodyさん mailto:sage [2008/01/30(水) 23:26:43 ID:???]
用件仕様が見えてこない。
何か例があればいいのだが。

785 名前:755 mailto:sage [2008/01/30(水) 23:27:11 ID:???]
もったいぶらずにさっさと教えろ。ヲタク野郎。

786 名前:755 mailto:sage [2008/01/30(水) 23:29:57 ID:???]
>785
騙るな。俺はそんな乱暴な人ではない。

787 名前:nobodyさん mailto:sage [2008/01/30(水) 23:33:38 ID:???]
いや、だからさ、読み込むファイルのサンプルと、
欲しい結果のサンプル、そして、今のプログラムで出力される
結果のファイルとか、具体的に示してくれないと何処に問題が
あるのかが分からんのよ。
そういうところはソースコードを全部読んでも見えてこないでしょ?

ま、サンプルが出たとしても対応は明日以降になるけれど。

788 名前:755 mailto:sage [2008/01/30(水) 23:41:30 ID:???]
>787
787さんは782さんですよね?
そのmapやgrep、多次元配列とやらで781の回答をきぼん。



789 名前:nobodyさん mailto:sage [2008/01/31(木) 07:18:48 ID:???]
で、サンプルは?w

790 名前:nobodyさん mailto:sage [2008/01/31(木) 08:20:23 ID:???]
ちょっと最初の方だけ読んでの疑問なんだけど
ファイルと検索文字を読み込んだ後の
chop ($open_file, $save_file, $word);
って何をやろうとしているの?

791 名前:755 mailto:sage [2008/01/31(木) 09:14:13 ID:???]
>790
それはSTDINの改行を取るためですね。

>789
入力する文章は日本語と英語が混じったものです。
検索する単語も適当にでっちあげて下さいよ。

792 名前:755 mailto:sage [2008/01/31(木) 09:26:00 ID:???]
別件なのですが、マッチした単語を@match_wordsに一度格納しているのですが、
いつの間にか先頭にARRAY(0x35e08)というのが入り込みます。
これは何ですか?

793 名前:nobodyさん mailto:sage [2008/01/31(木) 09:42:51 ID:???]
で、何が問題なのだろうか。
実行してみたら、以下のように3つ表示されたぞ。
(具体的な文字列は省略している)
line:3
line:7
line:8

794 名前:nobodyさん mailto:sage [2008/01/31(木) 09:44:56 ID:???]
ひょっとして、検索用語を複数同時に指定したいとか?
探索する文字列を指定してください:2ch, AA, モナ
見たいな感じに

795 名前:nobodyさん mailto:sage [2008/01/31(木) 09:47:25 ID:???]
>>792
その別件のソースを出さないことには分からないと思う件

796 名前:755 mailto:sage [2008/01/31(木) 09:58:21 ID:???]
>794
その通りです。

>795
Aから並べた単なる単語の羅列です。どんな文字列でもARRAY(0x35e08)
がマッチした文字列の一番最初に入ってしまう。
ARRAY(0x35e08) ←これは何?

(以下例)
acceptance
accompanying sheet
account


797 名前:nobodyさん mailto:sage [2008/01/31(木) 10:46:42 ID:???]
おまいらよろしくお願いします。

CGI::Liteを使ったファイルアップロードで、漢字を含むファイル名を扱ってます。
特定の条件でファイル名がアップ時と変わってしまうのです。
条件は分かったんですが、どうすればファイル名を正常に扱えるかわかりません。

Perlのバージョン:5.8.2
クライアント:WindowsXP
発生条件:表、ソ、十などをファイル名に含む
現象:表などの文字より前が消えてしまう
例)画面表示内容.jpg が、 示内容.jpg に変わる。

ヒントください。

798 名前:nobodyさん mailto:sage [2008/01/31(木) 11:02:46 ID:???]
>>797
jcode.plで変換するしかないかと。
あと、これ
ttp://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i5



799 名前:nobodyさん mailto:sage [2008/01/31(木) 14:37:56 ID:???]
文字列検索プログラムを書いたぞ。phpだけど。
このファイルと同じディレクトリに[in.txt]という名前で文書ファイルがあるものとする。

<html><body>
<form method="POST" action="test.php"><input type="text" name="key" size=30>
<input type="submit" value="送信"></form>
<hr>

<?php
if($_POST["key"] == ""){
echo "</body></html>";
exit;
};

$key = $HTTP_POST_VARS["key"];
echo "検索キー:$key<br>";
// 検索キーを空白スペースで分割する。
$key2 = split(" ", $key);
// 要素数を出す。
$key2_cnt = count($key2);

$INFILE = fopen("in.txt","r");

$line_num = 1;
$cnt = 0;

800 名前:nobodyさん mailto:sage [2008/01/31(木) 14:39:01 ID:???]
つづき

while($cnt < $key2_cnt){
echo "検索キー:$key2[$cnt]<br>";

while(!feof($INFILE)){
$line = fgets($INFILE, 1024);
$search_flg = strpos( $line , $key2[$cnt] );
if( $search_flg !== false ){
$out_line = "line " . $line_num . " : " . $line . "<br>";
echo $out_line;
}else{
// echo "この行にはありません。: $line<br>";
}
$line_num = $line_num + 1;
}
rewind( $INFILE );
$cnt=$cnt+1;
}

fclose($INFILE);

?>
</body></html>

801 名前:nobodyさん mailto:sage [2008/01/31(木) 15:20:34 ID:???]
質問者は検索キーワードが複数でも対応ということだけど、
出力結果を具体的にどうしたいのかは分からないよな。

(例1)検索キー:モナー AA
[モナー]
line 3 :
line 5 :
[AA]
line 2 :
line 3 :

(例2)検索キー:モナー AA
[モナー]と[AA]を含む。
line 3 :

802 名前:nobodyさん mailto:sage [2008/01/31(木) 19:00:55 ID:???]
>801
(例1)でお願いします。

803 名前:nobodyさん mailto:sage [2008/01/31(木) 19:06:46 ID:???]
>>802
だったら、>>799-800のソースを動かしてみればいいぞ。
[test.php]のファイル名で保存して実行すればおk

804 名前:nobodyさん mailto:sage [2008/01/31(木) 19:09:54 ID:???]
大体、例1を作る必要性って何だろうか。
そのキーワードの数だけプログラムを実行すればいい話なのに。
例2ならば分かるが。

805 名前:nobodyさん mailto:sage [2008/01/31(木) 20:14:39 ID:???]
別の言語を持ち出すやつは、スレタイ読めないのか

806 名前:nobodyさん mailto:sage [2008/01/31(木) 22:10:29 ID:???]
別の言語だけど、表記がほとんど似ているものだろ。
質問者はロジックを聞きたかったわけから、これで解決じゃね?

807 名前:755 mailto:sage [2008/02/01(金) 00:06:19 ID:???]
> 803
俺のサーバーPHP動きません。
>804
1000回プログラム動かせんから、ループで自動でやりたいと言ってるっしょ。

質問をもっと具体的にすれば良かったかしら。
「781のサンプルプログラムをループで動かす方法を教えて」
です。

808 名前:nobodyさん mailto:sage [2008/02/01(金) 00:55:46 ID:???]
>>807
サーバでないといけない理由ってあるの?
ローカルで動かせばいいじゃん。XAMPPとかあるんだし。



809 名前:nobodyさん mailto:sage [2008/02/01(金) 00:58:10 ID:???]
>>807
具体的に言えといわれて、具体例を出さないからこうなったんだと思う。

810 名前:nobodyさん mailto:sage [2008/02/01(金) 01:07:14 ID:???]
質問者は>>799-800をPerlに移植すれば良いのかどうかの
事は言わないんだよな。
実際に出来上がってみて、あーだこーだいうんだろうな。
そんな態度だから最初に質問した時からおちょくられてるんだと思う。

811 名前:perl好き情報4回生 mailto:sage [2008/02/01(金) 13:26:52 ID:???]
修士出たら就職を考えている現在3回生の情報の学生でperlが一番すきですが、
今年に入ってからいろいろと求人情報を集めてみたところperlの仕事少ないですね
噂には聞いてましたが、僕は何が何でもperlを仕事にしたいのです
まあそれはおいといて、perlを仕事としてみたときどんな感じですかね?
皆さま先輩方の多くはperlを仕事としていらっしゃると思ったので、
是非とも業務内容、他言語と比べたときの待遇、仕事のやりがいなどなど、
ポジティブな意見(勧め)もネガティブな意見(愚痴)も生の声としてお聞かせ願えればと存じます。


812 名前:perl好き情報3回生 mailto:sage [2008/02/01(金) 13:31:25 ID:???]
間違えました。名前欄は3回生が正解です。

813 名前:nobodyさん mailto:sage [2008/02/01(金) 13:45:35 ID:???]
>>811
確か、mixiとか、はてなは、perlじゃなかったかな。

で、お前は一体何年なんだ?w
修士を出てからということは、あと2年後に就職活動を
やり始めるということかな?
合計あと3年数ヶ月は親のすねをかじって学生をやると。

814 名前:nobodyさん mailto:sage [2008/02/01(金) 13:49:55 ID:???]
人に情報をくれといってないで、まずは君の作った実績を出してみたら
どうだ。例えば>>755に対する答えのソースを作るとか。

815 名前:nobodyさん mailto:sage [2008/02/01(金) 15:10:24 ID:???]
Perl大好きっていう気持ちはわかるけど、
Perlしかまともに出来ない人に就職口はないかと
というか回りから軽蔑される

816 名前:nobodyさん mailto:sage [2008/02/01(金) 15:17:27 ID:???]
>>815
凡人に対しては同意だけど、とことんやってる人においては
その限りではないと思う。

817 名前:nobodyさん mailto:sage [2008/02/01(金) 16:03:32 ID:???]
やれる人というのは、大抵その企業のやり方に会わなかったり、
自分が上に立ってやろうという考えを持つようになったりして、
会社員としてやっていくよりも、起業して社長としてやる場合が多い。

なので、君の場合は「良い所に就職する」ということよりも、
投資家を説得するプレゼンをするとか、誰もが納得できるような
システムを作る方向でやっていったほうがいいと思う。
Perlは、アクセスカウンタ、掲示板、チャット、ブログ、
ショッピングモールと発展してきたけれど、この次にあたるもの
を作るのを考えると良いだろう。

修士までいくのであれば、そのまま博士まで行って、松本氏のように
純粋に言語をやる道もある。

818 名前:nobodyさん mailto:sage [2008/02/01(金) 19:19:56 ID:???]
人工知能とか?



819 名前:perl好き情報3回生 mailto:sage [2008/02/01(金) 23:20:23 ID:???]
皆様、予想外の多いレスに大変驚いてます。
ありがとうございます。

>>813 3を押し間違えただけです。3回生に相違ありません。w
> 合計あと3年数ヶ月は親のすねをかじって学生をやると。
そうなんです。そうした生ぬるい環境でありますが、全身全霊で取り組む覚悟です。

>>814
>人に情報をくれといってないで、まずは君の作った実績を出してみたら
魅力的な人材であることを立証できないです。僕はまだまだです。

>>815
>Perlしかまともに出来ない人に就職口はないかと
そう言われるとつらいものがありますが、C++を今からしっかりやって実力をつければ
重宝されるのではないかと考えています。

>>817
>投資家を説得するプレゼンをするとか、誰もが納得できるようなシステムを作る方向で
では後者でやります。Web上のプラットフォームの開発が出来たらいいなあとは思っています。WebOSとか。

820 名前:nobodyさん mailto:sage [2008/02/02(土) 00:24:29 ID:???]
プロトコルが必要な今のネット、NGNも新しいプロトコルを使用することがすでに決まっており、WebOSha机上の空論だということすら知らないのでは無理かと・・・

821 名前:nobodyさん mailto:sage [2008/02/02(土) 01:14:38 ID:???]
>>811
Perlも道具に過ぎない。
就職から定年まで約40年間ずっと同じプログラム言語を使い続ける事はまず不可能。
管理職になってプログラミングから足を洗えるのはごく一部。
学生の時点で言語にこだわるより、考え方・分析方法・設計方法を学ぶ道具だと割り切った方が良い。

そう言ってる漏れも、学校じゃPascalやらCやってて、就職してからはC、C++、VBやって、
独立してからは最初はDelphi使ってたが今はVBAとPerlとJavaScriptとSQLをやってる。
今後JavaやPHPもやることになると思う。


822 名前:nobodyさん mailto:sage [2008/02/02(土) 05:18:25 ID:???]
>>818
新しく言語を作っていくという意味さ。
今のPerlはオブジェクト指向が完全でないとか、日本語で一部文字化けするとか
あるわけで、それを改善していくという方向はどうかなという提案です。
ja.wikipedia.org/wiki/%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8%E3%82%86%E3%81%8D%E3%81%B2%E3%82%8D

ま、アスペクト指向とかもあるからそっちへPerlを持っていくのも良いかもね。

823 名前:perl好き情報3回生 mailto:sage [2008/02/02(土) 09:07:03 ID:???]
>>820
そうだったんですか!大学にそういう専門の先生がいて、僕も影響を受けて
この一年いろいろ構想を練りつつ勉強を重ねてきたのですが、、、

>>821
いろんな言語を使いこなせないといけないんですね。
僕はC,C++,Perl,Java,Javascriptがお遊び程度に使えます。
が、perlはともかく、他の4つは本当に中途半端です。
perlスレだからもう少しはperlを主軸にして生計を立てられるという意見があるかと
思いましたが、皆さん違うようですね。現実は厳しいということでしょうか。

824 名前:nobodyさん mailto:sage [2008/02/02(土) 11:57:53 ID:???]
Perl6 はがらりと仕様が変わるらしいから、それが一般に浸透すると
また状況が変わってくるかもしれないよ。

825 名前:nobodyさん mailto:sage [2008/02/02(土) 12:00:31 ID:???]
Perlが好きだの書いてて、いかにも得意なもののように思える言い方だったが、
実際には、「Perlしか知らない」の間違いじゃないのか?w

826 名前:nobodyさん mailto:sage [2008/02/02(土) 12:16:08 ID:???]
>>822
オブジェクト指向じゃないとだめって先入観は捨てましょう。
文字化けはどの言語でも日本語に限ったわけじゃないんだけど・・・

>>824
正規表現がすごいぞ

>>825
あえて誰も言わなかったことをw


827 名前:nobodyさん mailto:sage [2008/02/02(土) 12:17:50 ID:???]
じゃ、「何言ってるんだ?」じゃなくて、よいしょする方向でw

828 名前:perl好き情報3回生 [2008/02/02(土) 13:36:26 ID:9aX3NPkq]
>>824
2010年以降になりそうですが、その頃はまさに僕が現役ですね。
例えば、どんな変化が予想されますか?

>>825
僕なんて落ちこぼれもいいとこです。perlしかできないどころかperlも満足にできないです。
ですが一身上の都合により毎日猛勉強しているので
そのうちいろんな言語を使いこなせるようになるよとは先生に言われました。
ただ、先生は業界のことを全くご存知ない方なので、こうやって情報集めしています。



829 名前:nobodyさん mailto:sage [2008/02/02(土) 13:47:22 ID:???]
コンピュータ言語を毎日猛勉しなきゃならないなら、この業界は見込み無いから諦めたほうが良い。
使ったことない言語でも言語仕様書を4-5日読めば使えるのが普通。

毎日猛勉するなら英語を勉強したほうが10万倍役に立つ。

830 名前:nobodyさん mailto:sage [2008/02/02(土) 13:51:33 ID:???]
>>828
今は Perl が下火で PHP や java が主流だけど、
これからは PHP や java が下火となり Perl が主流となる。

831 名前:nobodyさん mailto:sage [2008/02/02(土) 13:53:43 ID:???]
「業界のことを全く知らない先生」の言う事を、
信じているのか、いないのか良く分からない件

832 名前:perl好き情報3回生 mailto:sage [2008/02/02(土) 13:53:53 ID:???]
>>829
そうなんです。僕はある事情で人より頑張らないと追いついていけないみたいです。
つくづく才能がないなあと思います。学校では出来る人を目の前にすると凹みっぱなしです。
大学に入ってから自分の才能のなさに気づきました
でも親に申し訳が立たないので猛勉強してついていこうとしています。
猛勉強なんて偉そうな言葉使ってごめんなさい。

833 名前:perl好き情報3回生 mailto:sage [2008/02/02(土) 13:59:49 ID:???]
連投すみません。

>>930
perl6になるとそういうふうになるのですか。
最近perlをやってていいのか不安になっていたので心が落ち着きました。

>>931
先生は非常に尊敬しているし、その先生の「そのうち出来るよ」という言葉も僕
には大きな支えになっています。
でも、就職情報は先生に聞くのでなく自分で収集する学生が多いです。

834 名前:nobodyさん mailto:sage [2008/02/02(土) 14:54:59 ID:???]
>>833
君は、他の言語を学ぶ必要性についてはどう思ってるの?

835 名前:nobodyさん mailto:sage [2008/02/02(土) 15:13:04 ID:???]
>833
藻前、なにか勘違いしてないか?
プログラミングってのは、コンピュータに呪文を唱えて仕事をさせる事じゃないぞ。
コンピュータという、言われた事しか出来ないモノに、指示を出して仕事をさせる事だ。
コンピュータはあいまいさがある人間の言葉で指示されても理解できないから、専用の言葉・文法を使う。

プログラミングを学ぶ上で一番大切なのは、自分が出したい指示をあいまいさなく、的確に表現できる能力を身につけることだ。
文法や単語(命令)なんかは、分からなきゃ辞典(リファレンス)を見ればいい。

836 名前:nobodyさん mailto:sage [2008/02/02(土) 15:46:15 ID:???]
Perlを使った仕事をしたいのなら、不安だのいってないで、
まっすぐにその方向に進めばいいんでないの?
情報処理の資格を取ろうと思っている人が、突如法律の勉強を
したりしないのと同じ。
絶対に完璧で将来がある選択肢なんてないわけで、自分の思う方向、
好きな事に一生懸命に取り組むかどうか。

837 名前:nobodyさん mailto:sage [2008/02/02(土) 17:14:06 ID:???]
本当にプログラムやりたいなら、データベースもやらなきゃいかんよ。
今業務でやってるのはPHP+MySQL
ちなみに、Perlはもちろんこと、Ruby、C/C++、VB、Java等も勉強した。
趣味で組むのはPerlかな。

838 名前:nobodyさん mailto:sage [2008/02/02(土) 18:01:41 ID:???]
いや、この人の場合は、SEやプログラマーとして仕事をやりたいとかじゃなくて、
「Perlをやりたい」んじゃないかなぁ。



839 名前:nobodyさん mailto:sage [2008/02/02(土) 18:06:49 ID:???]
天才的な感があるヤツ以外、母国語が得意じゃないヤツはプログラミングを仕事にするのは難しい。
Perlを使った仕事をすると言っても今からPerlを使いこなせるようになっている必要は無いだろう。
まずは本を読め。次に数学(離散数学系)を学べ。
それが出来るのは学生のうちだけだ。

840 名前:perl好き情報三回生 ◆qqt5.0NxB6 mailto:sage [2008/02/02(土) 21:53:31 ID:???]
>>834 現段階ではc/c++をよく学ぶつもりですが僕のような経験不足な人間には到底分からないです。

>>835 なるほど、要求を的確に表現する能力が大切なんですね。とてもためになります。

>>836 僕の場合その突如があるので危なっかしいです。
それに一生懸命すぎて身を滅ぼしがちなアンバランスな人間だと思います。

>>837 MySQLですか。実務的なDBの経験はほとんどないので、机上に留まらず精進します.

>>838 というよりもperl的な文化が好きです。ネットや身の回りでperlerに親しみを感じるので、
こうした人たちとこうした文化を創っていきたいと思ったんです。

>>839 高2と高3の頭は大学数学の本を読んでいたので、数学は得意です。
本は一応月に20冊くらい読みますが、やはり周りの人がすごすぎるので、
今の5倍は読みたいです。

841 名前:perl好き情報三回生 ◆qqt5.0NxB6 mailto:sage [2008/02/02(土) 21:55:40 ID:???]
ちょっと修正です。連投失礼します。

>>834 現段階ではc/c++をよく学ぶつもりですが、僕のような経験不足な人間には
いろんな言語を学ぶ必要性など到底分からないです


842 名前:nobodyさん mailto:sage [2008/02/02(土) 23:48:00 ID:???]
プログラム言語に依存した考え方を学ぶのは、現場に入ってからで十分。
Perlも道具の一つだと認識し、道具選びは適材適所だって事を理解しろ。
ついでに言えば、学習用のプログラム言語は1個に絞っても桶だ。
ただ、面接対応で考えりゃPerlだけじゃ押しが弱い気もする。

843 名前:nobodyさん mailto:sage [2008/02/03(日) 00:09:50 ID:???]
学部3年で進学希望かつその後は将来ソフトウェア開発の仕事を希望していて
今から独学でperl学ぶの? なんか色々矛盾してるな… 専攻変更したって言うことか?

844 名前:nobodyさん mailto:sage [2008/02/03(日) 11:27:58 ID:???]
COBOLプログラマが大量に解雇されたという話知ってる?

845 名前:perl好き情報三回生 ◆qqt5.0NxB6 mailto:sage [2008/02/03(日) 23:32:26 ID:???]
皆様、アドバイスありがとうございます。

>>842 面接を考えるとperlだけじゃ弱いんですね。perl, c/c++, javascript, java, perl,
lisp, vbは勉強する予定です。そのうち、最初の2つ(perl, c/c++)に力点を置く予定です。
perlをとくに絶対視・唯一視しているわけでもないです。
言語に依存しない考えをいまのうちによく勉強することが大切なんですね。

>>843 専攻変更ではないですが、最初は数学科に行く予定でしたが、土壇場で情報に変えました。
将来perlの仕事につきたいという思いはもちろんありますが、それほど決まっていなくて、
今は情報収集しています。どこか矛盾していますか?

>>844 聞いた気もしますが、全然知りません。


846 名前:nobodyさん mailto:sage [2008/02/03(日) 23:40:34 ID:???]
とりあえず、大文字小文字の使い分けから始めない?
COBOLはシステムを切り替えられる資金のあるところは人の入れ替えしてるが、無いところは細々と雇い入れてる。
まぁ、SIは先が無いので、エンドに引き抜かれないかぎり先は無いね。

847 名前:nobodyさん mailto:sage [2008/02/03(日) 23:42:52 ID:???]
全体像が見えていないとかいいながら、異様にPerlにこだわっている
感があって、なんか良く分からないな。
PHPやC#は、あえてはずしているというよりも、その存在を知らないのかもな。
で、このスレはPerlのくだすれであって、お前の人生相談用スレではないので、
スレ違いの話をするつもりなら、出て行ってくれないか?マ板でやったらどうだ。

848 名前:nobodyさん mailto:sage [2008/02/04(月) 00:06:37 ID:???]
どのスレに移動するかを教えてくれたら、俺はついていくぞ。



849 名前:nobodyさん mailto:sage [2008/02/04(月) 12:48:01 ID:???]
10年前からperlなんか廃れるとか仕事にならないとか言われ続けてるけど
いまだに仕事になってるから死ぬまではなんとかなるんじゃないかな

中小企業のWEB屋でいいならperlの仕事はあるぞ


850 名前:nobodyさん mailto:sage [2008/02/04(月) 14:03:12 ID:???]
Ajax の例とかもあるしな。どうなるかは誰もわからない。

851 名前:nobodyさん [2008/02/05(火) 14:08:38 ID:ke8bjavM]
phpをperlに書き換えて欲しいです。
わかる人お願いします。

<?php
//パラメータの取り出し
$CID = $_GET['cid'];
$cc = $_GET['cc'];
$SID = $_GET['sid'];
$CH = $_GET['ch'];
$C1 = $_GET['c1'];

//パラメータ判別
/*処理*/


//処理
header("Content-Type: text/plain; charset=Shift_JIS");
print"rc=0\r\n";
print"u1=www.abc.jp/OK.php\r\n";
/*処理*/
print"c1=AAA\r\n";
print"u2=www.abc.jp/err.php\r\n";
print"END\r\n";

?>

852 名前:nobodyさん mailto:sage [2008/02/05(火) 14:15:13 ID:???]
>>851
CGI.pmつかってもいいの?

853 名前:nobodyさん [2008/02/05(火) 14:23:16 ID:ke8bjavM]
<?php から ?>までをそのままperlに書き換えるのが不可能なら構わないです。



854 名前:nobodyさん mailto:sage [2008/02/05(火) 16:02:31 ID:???]
www.abc.jp/

855 名前:nobodyさん mailto:sage [2008/02/05(火) 22:54:03 ID:???]
use CGI;
my $q = new CGI;
my $cid = $q -> param( 'cid' );
後同じ

print "Content-type: text/plain; charset=Shift_JIS\n\n";
print "rc=0\n";
後同じ


856 名前:nobodyさん mailto:sage [2008/02/05(火) 23:10:03 ID:???]
Perlの世界には $_GET['cid']; とか $_POST['cid']; とかないからね。
受け取った文字列を & で split して、さらに = で split して。という
処理から始まる。
CGI.pm使わないと同じような構文にはならないだろうね。

857 名前:nobodyさん [2008/02/05(火) 23:13:32 ID:LtG8FBU3]
windows xpで、perlからwindowsのアプリケーション(例えば
電卓のcalc.exe)を終了させるにはどうやればいいですか?

perlに関する知識はttp://www.rfs.jp/sb/perl/こちらのサイト
を読み終えたくらいです。

858 名前:nobodyさん mailto:sage [2008/02/05(火) 23:23:42 ID:???]
Perlでそんなこと出来るの?



859 名前:nobodyさん mailto:sage [2008/02/05(火) 23:37:33 ID:???]
WindowsAPI使えば、プロセスの終了とかできるかも

860 名前:857 [2008/02/05(火) 23:49:41 ID:LtG8FBU3]
>>857です。

>>858
返信ありがとうございます。windowsプログラミングについてもさっぱりなんですが
>>859さんのおっしゃるようにwin32api系のものを使えば出来そうな気がしたんですが。
linuxとかだとsystem(kill〜って感じでそのまま出来るんですかね。

>>859
返信ありがとうございます。
プロセスの終了も良く分かってないんですが、その辺の仕組みを僕くらいの低レベルでも
わかるように紹介されてるページとかご存知でしたらご紹介頂けたら幸いです。

861 名前:nobodyさん mailto:sage [2008/02/06(水) 00:20:44 ID:???]
残念ながらそれはwebprog板では板違いなのだ。

862 名前:nobodyさん mailto:sage [2008/02/06(水) 10:22:36 ID:???]
Kent
CGI.pm
Mason
Sledge
Catalyst
Jifty
Reaction
間にいろいろハサんで欲すぃ

863 名前:nobodyさん mailto:sage [2008/02/06(水) 10:35:41 ID:???]
おっとCGI::Applicationを忘れていた
Kent
CGI.pm
CGI::Application
Mason
Sledge
Gantry
Catalyst
Jifty
Reaction


864 名前:nobodyさん mailto:sage [2008/02/06(水) 11:59:40 ID:???]
system "taskkill /im calc.exe";

865 名前:nobodyさん mailto:sage [2008/02/06(水) 16:07:31 ID:???]
ん?しりとりでもやりたいのか?w

866 名前:nobodyさん [2008/02/06(水) 17:39:26 ID:z242xw4+]
すいません、質問お願いします。
一行テキスト と テキストエリア と 送信ボタン と hiddenがいくつか のフォームを作りました。
jcode.plを通して、デコードする仕組みにしました。

テキストエリアに、600文字以下の、少ない全角文字を入力し、送信ボタンをクリックすると、
ログファイルに記載され、意図した表示になるのですが。

テキストエリアに沢山の文字(662文字以上)を入れ、送信ボタンを押しても反応しません。

perlには、フォームに入力する文字制限などがあるのでしょうか?
600文字程度ですと、使用目的では文字数が足りないので、なんとか直したいのですがどうしたらよいでしょう?

867 名前:866 [2008/02/06(水) 17:42:41 ID:z242xw4+]
追記です。

IE6だと、ボタンをクリックしても無反応なのですが。

FireFoxだと、一応書き込みができました、
しかし、やはり全角文字600文字程のところから後が切れて、ログファイルに記録されます。

また、全てが半角の数字を入力した場合には、何文字でも入力できる感じです。
宜しくお願いします。

868 名前:866 [2008/02/06(水) 17:50:10 ID:z242xw4+]
すいません。訂正です。

半角数字でも、1000文字程度しか書き込みができませんでした。



869 名前:nobodyさん mailto:sage [2008/02/06(水) 17:50:25 ID:???]
method="POST"

870 名前:nobodyさん mailto:sage [2008/02/06(水) 17:51:53 ID:???]
enctype="multipart/form-data"

871 名前:866 [2008/02/06(水) 18:04:28 ID:z242xw4+]
>>869,870
ありがとうございます
メソッドをポストにしたら出来ました!


872 名前:nobodyさん mailto:sage [2008/02/08(金) 17:15:00 ID:???]
#!/usr/local/bin/perl
eval { $test=; };
print "fin"

この三行スクリプトを実行するとfinが表示されずに

syntax error at test.pl line 2, near "=;"
Execution of test.pl aborted due to compilation errors.

が表示されるのは正常なActivePerl(forWin)およびevalの振る舞いですか?

873 名前:872 [2008/02/08(金) 17:24:04 ID:ZczohSgB]
上げ忘れ。
ActivePerlのperl -vはPerl v.5.8.8 / build817です。

874 名前:872 mailto:sage [2008/02/08(金) 18:04:44 ID:???]
わかた(´д`)y-~~シンタックス系のいわゆるコンパイルエラーはevalで拾えないようで、
拾えそうなイキフンで記述してあるリファレンスが誤りです。大変ありがとうございました。

875 名前:nobodyさん mailto:sage [2008/02/08(金) 18:57:59 ID:???]
eval q{ $test=; };
$@

876 名前:797 mailto:sage [2008/02/14(木) 15:20:19 ID:???]
おまいら解決したので報告します。

実は>>798が教えてくれたページを参考に作ったプログラムだったのですが、そこに罠があったのです。
ファイル名をSJISにするということで、アップページの文字コードもSJISにしていたのですが、
SJISで特定の文字(表、ソ、十など)にはWindowsでパスの区切りに使う\のコードが入っているので、
その部分が区切りと解釈されて、ファイル名が切られていたのです。
そこで、アップページの文字コードをUTF8にした所、切られることなく正常動作するようになりました。

おまけ
最近遭遇し一応解決したネタを1つ。
なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
途中のファイル名が取得できません。ダミーで<INPUT type="hidden">を挟むと大丈夫です。


877 名前:nobodyさん mailto:sage [2008/02/14(木) 16:19:19 ID:???]
おまそれはPerlの一番最初に習う、しかも新規の人は既に誰も使わな(ry

>なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
あーわかるわかる。初心者にありがちなバグだね。
おれもHTTP拡張のバウンダリ周りで苦労した。10年ぐらい前に。

878 名前:nobodyさん [2008/02/18(月) 22:53:11 ID:b8HgX1gh]
お願いします。
配列、@listの中には5つの要素が入っています。
そのなかの3つ目を削除するにはどうすれば良いですか?
$list[3] = ''; だと中身が空のまま要素数は変わりません…。



879 名前:nobodyさん mailto:sage [2008/02/18(月) 23:31:32 ID:???]
splice @list, 2, 1;

880 名前:878 mailto:sage [2008/02/19(火) 00:10:37 ID:???]
>>879さん、ありがとうございました。

881 名前:nobodyさん mailto:sage [2008/02/20(水) 18:43:38 ID:???]
ここって超初心者の板じゃないの?
モジュール関係の質問見ると引くぞ
>>878のスレ見て少しホッとしたけど

882 名前:nobodyさん mailto:sage [2008/02/20(水) 18:51:36 ID:???]
板とスレ
スレとレス

間違えてるぞ

883 名前:nobodyさん [2008/02/20(水) 20:04:29 ID:AT7Ymvry]
掲示板で書き込んだ人のIPを取得するにはどうしたら良いのでしょうか?
$〇〇 = $ENV{'REMOTE_ADDR'};
でIPを取得したのはわかったんですが、フォームの中に<input type=hidden name=△△ value=$○○>などで他人に書き込みさせても自分のIPが表示されてしまいます
色々ググったりしたんですが良く分かりません
優しい解説お願いします

884 名前:nobodyさん mailto:sage [2008/02/20(水) 20:25:09 ID:???]
>>883
hiddenタグでやろうとしていることがいまいち分からないが、
通常は、書き込んだ時にログファイルに一緒にIPアドレスを
書き込むものなんだが。

885 名前:nobodyさん mailto:sage [2008/02/20(水) 20:30:56 ID:???]
>>884
スクリプトは時刻表示とコメントだけの、一行掲示板の簡易なものです
一緒にとはどういうことなのでしょうか?
ログファイルには時刻とコメントしか載りません
超初心者ですいませんm(_ _)m

886 名前:nobodyさん mailto:sage [2008/02/20(水) 20:42:58 ID:???]
>>885
その、時刻とコメントを書き込むファイルに、IPアドレスも一緒に
書き込む方法があるでしょといいたいのだよ。
表示する際はそのデータは必ずしも出す必要は無いのだから。
それが嫌ならば、書き込みをしたときに内部的に別なファイルにも
IPアドレスと時刻を書き込ませるようにプログラムを書けばよい。

887 名前:nobodyさん mailto:sage [2008/02/20(水) 20:55:23 ID:???]
>>885
フォームにセットしなくても、書き込んだ人のIPはこれで取り出せるよ → $ENV{'REMOTE_ADDR'}

888 名前:nobodyさん mailto:sage [2008/02/20(水) 20:55:38 ID:???]
>>886
IPアドレスを一緒に書き込むプログラムの書き方を知りたいんです(;∇;)/~~色々ググって、配布されてるスクリプトから該当する部分を抽出して頑張ったんですが...良く分からなかったんです、



889 名前:nobodyさん mailto:sage [2008/02/20(水) 20:57:55 ID:???]
>>887
レスありがとうございますm(_ _)m
それでIPは表示されるのは分かったんですが、それをどこに設置すればログに書き込んだ人のIPが表示されるかが分からないんです(;∇;)/~~

890 名前:nobodyさん mailto:sage [2008/02/20(水) 21:04:58 ID:???]
>>889

open(OUT,">> log.txt");
$line = $ENV{'REMOTE_ADDR'};
print OUT $line;
close(OUT);

891 名前:nobodyさん mailto:sage [2008/02/20(水) 21:07:00 ID:???]
>>889
コメントの後ろにくっ付けちゃえw

892 名前:nobodyさん mailto:sage [2008/02/20(水) 21:14:53 ID:???]
aska とか kent の BBS にはログにIPアドレスを記録するコードは
あったはずだが。
それらを読んでも分からないのであれば、何処かに君が書いたソースを
うpしてここに貼りなさい。気分が向いたら改変してやるからw

893 名前:nobodyさん mailto:sage [2008/02/20(水) 22:19:30 ID:???]
先程はありがとうございましたo(^-^)oおかげさまで解決しましたw

もう一つ質問させて下さいm(_ _)m

($sec,$min,$hour,$day,$mon,$year,$wday) = localtime(time);
$week = $weekday[$wday];
$mon++;
$date = "$mon月 $day日 $hour:$min";
という時刻表示のスクリプト(年が無駄にあるのは気にしないで下さいw)を使ってる?んですが、$minの所だけを1ケタの秒の時だけ01や02みたいに0を先頭に付けたいのですが、どのようにすれば良いのでしょうか?
ちなみに 2月20日 22:04
というような事です!

894 名前:nobodyさん mailto:sage [2008/02/20(水) 22:24:58 ID:???]
>>893
printf使うとか。

また、例のごとくそれの使い方が分からないということであれば、
以下のコードを付け加える。

if($min>9){
$min = "0" . $min;
}

895 名前:nobodyさん mailto:sage [2008/02/20(水) 22:40:01 ID:???]
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday,$d,$d) = localtime;
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d", $year+1900, $mon+1, $mday,
('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday], $hour, $min, $sec);
print $date;


896 名前:nobodyさん mailto:sage [2008/02/20(水) 22:48:10 ID:???]
>>893
これはどうなの?
$date = sprintf("%2d月%2d日 %2d:%02d",$mon,$day,$hour,$min);
print $date;

897 名前:nobodyさん mailto:sage [2008/02/20(水) 22:53:59 ID:???]
>>895
$dは無くても良いぞ。
どうしても書きたいなら、undefにすべし

それと、
my( $year, $month, $day, $hour, $min, $sec, $wday ) = ( localtime() )[5,4,3,2,1,0];
って言うのを覚えると見た目に麗しい

898 名前:nobodyさん mailto:sage [2008/02/20(水) 23:05:01 ID:???]
perlは配列の要素が足りなければ
足りない分の後ろの要素は無視されるから
必要なければ書かなくてよろし



899 名前:895 mailto:sage [2008/02/20(水) 23:06:42 ID:???]
>>894が正常に動かない気がして5年も前に書いたやつ貼っただけだから

900 名前:nobodyさん mailto:sage [2008/02/20(水) 23:12:33 ID:???]
下らない質問に親切に答えていただいて本当にありがとうございました!
23:06 とかできました(゜∀゜;ノ)ノ

また何かあったらよろしくお願いします!(b^ー°)

901 名前:nobodyさん mailto:sage [2008/02/20(水) 23:34:16 ID:???]
もう2度と来るな

902 名前:nobodyさん mailto:sage [2008/02/21(木) 03:45:40 ID:???]
>>897
$wday いらね

903 名前:nobodyさん mailto:sage [2008/02/21(木) 09:53:00 ID:???]
>>902
あぁ、ほんとだ。


904 名前:nobodyさん [2008/02/21(木) 16:13:36 ID:VlnHmaCl]
掲示板で
[3]内容
[2]内容
[1]内容
みたいにレス番号を付けるにはどうしたら良いのでしょうか?

905 名前:nobodyさん mailto:sage [2008/02/21(木) 16:50:55 ID:???]
おまえ>>883だろ。
全部聞きに来るなら一から勉強しろよ。

906 名前:nobodyさん mailto:sage [2008/02/21(木) 17:10:04 ID:???]
>>904
お前の質問の仕方は抽象杉でわけわかんねえんだよ。
質問したければお前が書いたコードをうpれ。話はそれからだ。

907 名前:nobodyさん mailto:sage [2008/02/21(木) 17:42:47 ID:???]
自分なりに勉強してやってみたんですが分からなかったので質問しに来ました

まあもう良いです

908 名前:nobodyさん mailto:sage [2008/02/21(木) 18:09:09 ID:???]
>>904
全データ読み込んで、内容の数を数えて、
・ 一番上の内容を表示する前に数えた数を
・ 次の内容を表示する前に(数えた数-1)を
と出していけばいんじゃね?

データフォーマットも表示部分のソースも無いんじゃ
エスパーでもないかぎり(ry



909 名前:nobodyさん mailto:sage [2008/02/21(木) 18:17:46 ID:???]
「出来ないやつ」の典型的なパターンだなw
・自分なりの勉強したはずなのに「本当に調べたの?」といいたくなる程度であるところ。
・「もう良いです。」とすぐにさじをなげるところ。
もう良いというのならば、このままPerlも辞めた方がいいぞ。道はいくらでもあるんだから。

910 名前:nobodyさん mailto:sage [2008/02/21(木) 21:37:27 ID:???]
ちょっと直したい時に全部調べるのがカッタルイってのはすげーよくわかるよ。
おれも子供の頃「関数内から抜けるコマンド何だっけ?」と電話で聞いたことある。あれは助かった。
でも何カ所も直したり、まして新規でBBSを作るなら、オマエそれ全部おれに書かせるのかって。

911 名前:nobodyさん mailto:sage [2008/02/21(木) 23:40:01 ID:???]
数年前はぐぐるにしても、日本語サイトが少ないからある程度英語が読めないと
駄目だったとか、検索エンジンの使い方のコツをある程度体得しておかなければ
目的のコンテンツにたどり着けなかったりしたから、その気持ちは分かる。
Perlのサンプルソースを手に入れる時、検索を使うよりも、2chの専用スレの
テンプレのURL一覧を見た方が早いなと感じた場合もあった。

だけど、今は大分検索エンジンの使い勝手も良くなり、目的のものがヒット
しやすくなった。Perlのこの程度の事なら日本語だけでも大丈夫だしね。
この状況で、このレベルのことが分からないなら、もう無理だと思う。

912 名前:nobodyさん mailto:sage [2008/02/21(木) 23:46:33 ID:???]
ラリーもあきれ顔です
ttp://upload.wikimedia.org/wikipedia/commons/b/b3/Larry_Wall_YAPC_2007.jpg

913 名前:nobodyさん mailto:sage [2008/02/22(金) 07:19:54 ID:???]
一つの発言に対してこれ程執着するとは(^w^)
ここがどれだけ過疎ってるかを表してますね

914 名前:nobodyさん mailto:sage [2008/02/22(金) 07:55:30 ID:???]
よし、じゃPHPのくだすれと統合するか?w

915 名前:910 mailto:sage [2008/02/22(金) 10:59:13 ID:???]
>>911
っつーかググレが一番要らない。何でもググレばわかる筈だよ。理論上。
「これどうやるの?」「正規表現」みたいな一行レスもググレと同じで意味が無い。
ググレ言っていいのは通常スレ内だけで、こういうスレは隔離用だから、答えたい人
だけが見て、答えたくない人は見なければいい。教えてgooと同じ。たとえば

「C 関数 戻る」

で検索すると、return()はなかなか出て来ない。だからといって普段Tcl/Tk専門で
やってるSUNの社員に、一時的な知識のために参考書を買わせるのも無駄が多い。
ただ全部は聞きに来るなよって。

916 名前:nobodyさん mailto:sage [2008/02/22(金) 11:35:20 ID:???]
レスの内容が「ググレカス」と「正規表現」とは大きく違うと思うが。
後者は、情報にたどり着くまでの手助けを十分にしているといえる。
ひろゆきも、この簡潔な回答が出来るのは、2chの特徴であり、
他のサイトのくだらない挨拶をしなければならないところとの
大きな違いだといってたぞ。

917 名前:nobodyさん mailto:sage [2008/02/22(金) 11:40:32 ID:???]
質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドなのに
正規表現で分かるのかよw

918 名前:nobodyさん mailto:sage [2008/02/22(金) 12:38:27 ID:???]
まぁ時間と金をかけて勉強すりゃわかるだろうけど、当面の一つの目的さえ達成できれば、
あとはPerlなんて一生触りたくない層が最も多い。つまり言語がPerlなのはあるツールが
元々Perlで書かれていたからで、欲しいのはINとOUTのデータだけ。
こういう層に正規表現をわざわざ勉強させる必要は無いし、あればとっくにやってる。
そういうわけで具体的に一連の処理を書くことが望ましい。べつに10秒で書けるんだから。

また追加モジュールの紹介も価値が低い。モジュールのインスコが一番難しいんだから。
rootが必要だし、客先のネットワークによって無保証のモジュールの導入を禁止されている。
必ずしも導入できなくはないが、自社でアップデート対応を保証しなくてはならない。



919 名前:nobodyさん mailto:sage [2008/02/22(金) 13:47:46 ID:???]
ぬるぽ

920 名前:nobodyさん mailto:sage [2008/02/22(金) 14:15:30 ID:???]
>>919
ガッ!

921 名前:nobodyさん mailto:sage [2008/02/22(金) 16:15:50 ID:???]
>>918
元のソフトがPerlで書かれててPerlなんか一生触りたくないなら、
INなりOUTなりを使い慣れたプログラム言語で作ったフィルタで修正すりゃいいだろ。

一生触りたくないプログラム言語で書かれたソフトのメンテなんて断ればいい。
「どうしても」と言われたら使い慣れたプログラム言語に移植する方向で交渉すればいい。

くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。
よほどCPANのモジュールぶちこんでもらった方が安心できるとオモワレ。

モジュールのインストールってそんなに難しいか?
インストール先を自分の権限範囲にすればroot権限いらないモジュールも多いと思うが?
ああ、>>918みたいなクレクレ厨じゃ英語のメッセージは読めないんだな。納得。

922 名前:nobodyさん mailto:sage [2008/02/22(金) 20:36:06 ID:???]
「思うが」は典型的なバカの言葉だからあんま相手したくないけど、もう少し具体的に
言えば、配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
こういう層に向かって「勉強しろ」はありえない。
その人はそこで節約した時間を社会奉仕にあてるかもしれない。
Perlはおれの方が少し詳しいかもしれないけど、Perl知ってりゃ偉いわけじゃなし。
ググレとかモジュールのご紹介とかアホを晒す暇があったら処理を書けばいいし、
それが出来ない奴は消えりゃいい。


923 名前:nobodyさん mailto:sage [2008/02/22(金) 20:39:07 ID:???]
ああそうそう。こういうスレでググレだのLWPだのほざいてる奴は
ソープランドでセックスしながら説教してるバカオヤジと同じだよ。
普通相手の人生なんて関係ないし興味もないよ。出た問いに答えればいい。
そういうスレなんだから。

924 名前:nobodyさん [2008/02/22(金) 20:47:34 ID:8Vusg7lr]
ソープランドでセックスしながら説教してる奴なんていねーよwwwww

925 名前:nobodyさん mailto:sage [2008/02/22(金) 20:48:52 ID:???]
くだすれで顧客とか言ってる奴って何なの?

926 名前:nobodyさん mailto:sage [2008/02/22(金) 21:26:16 ID:???]
>925
くだすれで顧客とか言ってる奴=>918と>921で桶?
>918
>客先のネットワークによって無保証のモジュールの導入を禁止されている。
>921
>くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。

どっちにしろ最初に客先とか言い出した>918がアフォだと思うが。

927 名前:nobodyさん mailto:sage [2008/02/22(金) 21:28:15 ID:???]
>918 >921 >922 
どこを縦読み?

928 名前:nobodyさん mailto:sage [2008/02/22(金) 21:40:20 ID:???]
Perlの質問マダァー?



929 名前:nobodyさん mailto:sage [2008/02/23(土) 02:02:05 ID:???]
> その人はそこで節約した時間を社会奉仕にあてるかもしれない。

何で話の流れとは関係の無い仮定の話が出てきてるの?w

930 名前:nobodyさん mailto:sage [2008/02/23(土) 02:07:11 ID:???]
ま、Perl関連はまったりとしてきているので、統合もいいと思う。
例えばこっちと一緒にするとか。

Perlコーディング初心者質問スレ Part 56
pc11.2ch.net/test/read.cgi/php/1189939783/


931 名前:nobodyさん [2008/02/23(土) 03:04:09 ID:mggQq9GV]
>>928
掲示板にレス番号を付けるにはどのようにすれば良いのでしょうか?
3.内容
2.内容
1.内容
みたいにして行きたいのですが...具体的に教えて下さい

932 名前:nobodyさん mailto:sag [2008/02/23(土) 03:27:22 ID:???]
>>931
お前の書いたソースを出せと言っただろうが

933 名前:nobodyさん mailto:sage [2008/02/23(土) 03:31:09 ID:???]
『詭弁のガイドライン』 より、引用
5. 資料を示さず持論が支持されていると思わせる
 例:(世界では、犬は哺乳類ではないという見方が一般的だ)

934 名前:921 mailto:sage [2008/02/23(土) 16:43:38 ID:???]
>>922
>配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
>こういう層に向かって「勉強しろ」はありえない。

スクリプト直すのに、意味も分からずコピペして直すのか。すげえな。
「客先の」とか言ってるって事は、それを金取って(もしくは客へのサービスとして)提供するわけだろ?

拾ってきたスクリプトに掲示板で質問してコピペで手直し加えて金儲けとか、せこすぎる。
そんなもん外注に出せよ。

935 名前:nobodyさん mailto:sage [2008/02/23(土) 16:44:46 ID:???]
>>931
>908

936 名前:nobodyさん [2008/02/24(日) 03:14:09 ID:G7lDCCAr]
>>932
nurupo.biz
さんのdownloadの簡易コメントって奴です
[2/24] 内容
みたいになるのを
[2/24]3.内容
[2/24]2.内容
[2/24]1.内容
みたいにしたいんです

937 名前:nobodyさん mailto:sage [2008/02/24(日) 06:46:40 ID:???]
>>936
ダウソしてソース見た。分かった事は下記の通り。
・ データファイルには 日付<TAB>内容 が1件1行で入っていて、レス番は入ってない
・ 最大記事数を超えた分はデータファイルから消える
・ 新しいレスはファイルの先頭に追加される(古いレスほど後ろにある)
・ 表示する時に@DATA(配列)に全レスを読み込んでいる($DATA[0]がファイル内のレス総数)
・ sub print 内では、$begin、$end、$iにファイルの先頭から何行目かを示す数値が入る

とりあえず考えてみた。
試してないから、ちゃんと動くかどうかは保証しない。

どんなレス番の振り方をしたいかわからんので思いつくのを並べてみた。
 1. 表示してるページ内でのレス番
    97行目 print "[$date] ". ($end - $begin - $i + 1) .". $text\n";

 2. ファイルに残ってるレス総数中のレス番
    97行目 print "[$date] ". ($DATA[0] - $begin - $i +1) .". $text\n";

 3. それまでに書かれた全部の中でのレス番
    何行も修正しなきゃならんしデータフォーマットも変わる(=今使ってるとしたらデータ読めなくなる)から、
    最初からレス番機能が付いてる別のソフト探したほうがヨサゲ。
    どうしてもってんなら考えてやらんこともない。

938 名前:nobodyさん mailto:sage [2008/02/24(日) 10:48:11 ID:???]
printで連結演算子使うなんてもったいない。



939 名前:nobodyさん [2008/02/24(日) 16:26:23 ID:mX6RyV0T]
>>937
わざわざ本当にありがとうございます
2.のファイルに残ってるレス総数中のレス番
で表示をしたいのですが、2.を試してみたところ
[時間]3.内容
[時間]2.内容
[時間]1.内容
[時間]0.内容
[時間]-1.内容
といった風に、どんどんマイナスになってしまいます・・・


940 名前:nobodyさん mailto:sage [2008/02/24(日) 18:48:04 ID:???]
>>939
スマソ。
97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";


941 名前:nobodyさん [2008/02/24(日) 19:21:05 ID:mX6RyV0T]
>>940
97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";
でやっても>>939と同様の結果になってしまいます・・・


942 名前:nobodyさん mailto:sage [2008/02/24(日) 20:13:54 ID:???]
>>941
75行目 my $max = @DATA;
76行目 my $res_no = undef;

96行目と97行目の間に追加 $res_no = $max - $i + 1;

97行目 print "[$date] $res_no. $text\n";

でどうYO?

943 名前:nobodyさん [2008/02/24(日) 20:33:50 ID:mX6RyV0T]
>>942
できました!!!
すごいですヽ(  ´  ∇  `  )ノ ワーイ
本当にありがとうございましたワーイ!!\(o ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄▽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄o)/ワーイ!!

944 名前:nobodyさん mailto:sage [2008/02/24(日) 22:00:31 ID:???]
printはカンマで出力しようよ。

945 名前:nobodyさん [2008/02/25(月) 00:21:00 ID:U/vtQwh8]
二重投稿を禁止するためには
データを読み込んで1行目とフォームの内容が同じの時にエラー表示させればいいんですよね?

946 名前:nobodyさん mailto:sage [2008/02/25(月) 01:29:27 ID:???]
>>945
そうだな。

947 名前:nobodyさん mailto:sage [2008/02/25(月) 01:33:39 ID:???]
連投防止のノウハウといったら、何があるかな?俺が思いつくものは・・・
・時間が近すぎる場合、IPアドレスが同一かをチェック
・投稿内容が(数回前までと)同じかをチェック

>>945の方法だと、二重投稿を防止することは出来ても、あらしの連投は防止出来ないよね。
ま、質問自体が二重投稿を防止する方法なので、特に言うことは無いと思うが。

948 名前:nobodyさん mailto:sage [2008/02/25(月) 06:27:19 ID:???]
print の出力をカンマで区切ると
画面出力命令のオンオフ切替が頻発し
連結してから纏めて出力した方が速い云々
ベンチマークしてないし本当かどうか知らんけどね



949 名前:nobodyさん mailto:sage [2008/02/25(月) 06:44:13 ID:???]
そんな事より、printでカンマ使ってると、
仕様変更でその場で出力じゃなく変数に代入とかになるとウザイ。

950 名前:nobodyさん mailto:sage [2008/02/25(月) 09:45:58 ID:???]
>>948
boobar.hp.infoseek.co.jp/bench/print.txt

951 名前:nobodyさん mailto:sage [2008/02/25(月) 22:07:36 ID:???]
大差ないってことか

952 名前:nobodyさん [2008/02/26(火) 22:28:43 ID:TAx5gJzC]
ファイルのMIME-Typeってどうやって取得するの?

PHPではmime_content_type()という関数があるみたいなんだけど、
Perlではどうやるの?

953 名前:nobodyさん [2008/02/27(水) 00:36:15 ID:NLm3jzH+]
掲示板で仮にログファイルを@LOGと置いて、それの最新の投稿を取り出すにはどうすれば良いの?
@LOG[0]でやったんですがどうも違ったみたいで


954 名前:nobodyさん mailto:sage [2008/02/27(水) 02:31:06 ID:???]
>>952
use CGI;
my $q = new CGI;
$q->uploadInfo($filename)->{'Content-Type'};

>>953
@LOG[@LOG-1]


955 名前:954 mailto:sage [2008/02/27(水) 02:37:08 ID:???]
>>954
use CGI;
my $q = new CGI;
my $filename = $q->param('uploaded_file');
$q->uploadInfo($filename)->{'Content-Type'};

1行書き忘れた。

956 名前:952,953 mailto:sage [2008/02/27(水) 03:43:32 ID:???]
馬鹿は無理に回答しなくていいよ

957 名前:nobodyさん mailto:sage [2008/02/27(水) 07:27:20 ID:???]
最新って・・・
一番最後の要素ってことなら
$LOG[$#LOG]

958 名前:nobodyさん mailto:sage [2008/02/27(水) 11:51:23 ID:???]
$LOG[-1]でよくね?



959 名前:nobodyさん mailto:sage [2008/02/27(水) 18:16:19 ID:???]
>>956
こういう質問するでも無く答えるでも無いゴミは何がしたいんだろうね?

960 名前:nobodyさん mailto:sage [2008/02/28(木) 04:40:38 ID:???]
君みたいな馬鹿を釣って遊ぶ

961 名前:952 [2008/02/28(木) 08:35:02 ID:5gTQ/iME]
>>954-955
レスありがとう

それはロダとかでファイルをアップロードした時の判別方法だよね?
書き忘れたんだけど、LWP::Simpleで外部画像を取得した時に判別する方法を教えてほしいです。

お願いします。

962 名前:nobodyさん mailto:sage [2008/02/28(木) 11:37:27 ID:???]
>>961
LWP::Simple はシンプル故に、レスポンスヘッダと
コンテントボディを同時には取得できない。
search.cpan.org/dist/libwww-perl/lib/LWP/Simple.pm

普通に LWP でリクエストを送って得たレスポンスからなら
同時に取得できる。
search.cpan.org/dist/libwww-perl/lwpcook.pod
search.cpan.org/dist/libwww-per/lib/HTTP/Headers.pm

PHP の Fileinfo() 相当のモジュールはこれ。
search.cpan.org/dist/File-MMagic-1.27/

963 名前:nobodyさん [2008/02/28(木) 17:15:11 ID:TKGGhpyN]
formが
<FORM ACTION="test.cgi" METHOD="POST"><INPUT TYPE="TEXT" NAME="f" cols="10"><INPUT TYPE="TEXT" NAME="id" cols="10"><INPUT TYPE="SUBMIT" VALUE="GO">
でtest.cgiが
#!/usr/local/bin/perl
use strict;
use CGI;
require"jcode.pl";
my $cgi=CGI::new();
my $f=$cgi->param('f');
my $id=$cgi->param('id');
@test = ($f,$id);
$role = int(rand 6);
my $html=<<"EOM";
<HTML>
<HEAD>
<TITLE>test</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=Shift-JIS">
</HEAD>
<BODY>
$test[$role]
EOM
print<<"EOM";
Content-type:text/html
$html
EOM
exit;
1;
という様に、formで受けた$fと$idをランダムで表示させたいのですがerror500
となってしまいます。パーミッションは合ってると思います。なぜなのでしょうか?

964 名前:nobodyさん [2008/02/28(木) 17:16:30 ID:TKGGhpyN]
すいません
$role = int(rand 2);
です


965 名前:nobodyさん mailto:sage [2008/02/28(木) 17:52:02 ID:???]
>>963-964
print<<"EOM";
Content-type:text/html

$html
EOM

966 名前:nobodyさん [2008/02/28(木) 17:58:13 ID:TKGGhpyN]
>>965
改行が多いと認識されたため、空行は省いて書き込みしました
ですので
print<<"EOM";
Content-type:text/html

$html
EOM
で書いてもerror500となります

967 名前:nobodyさん mailto:@testと$role sage [2008/02/28(木) 18:11:34 ID:???]
>>966
#!/usr/local/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use strict;

968 名前:nobodyさん mailto:sage [2008/02/28(木) 18:13:24 ID:???]
>>967 いい人だ



969 名前:nobodyさん mailto:sage [2008/02/28(木) 18:18:37 ID:???]
「くだすれ」の由来を教えてください

970 名前:nobodyさん mailto:sage [2008/02/28(木) 18:21:36 ID:???]
CGI::newってつい最近知り合いも書いてたんだけど
どっかのサイトか本でそんな紹介されてるのかな?

CGI.pmは問題ないんだけど、new CGI;かCGI->new;て書く癖つけとかないと
他のモジュールでクラスが渡らなくて泣きそうでない?


971 名前:nobodyさん mailto:sage [2008/02/28(木) 18:31:10 ID:???]
うむ。

972 名前:nobodyさん [2008/02/28(木) 18:56:16 ID:TKGGhpyN]
>>967でやって、KENTの文法チェッカー使ったら
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 6.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 7.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 8.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 9.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] newゥらは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。研修で散々言われたよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。

973 名前:nobodyさん mailto:sage [2008/03/02(日) 03:52:46 ID:???]
>>992
ためしに$LOG[1]を表示してみ。

974 名前:nobodyさん [2008/03/02(日) 07:56:37 ID:UDBaDi65]
>>994
>知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。
それを超初心者に教えてくれるのがこのスレッドの意義ですよね?
>社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
掲示板というコミュニケーションを介して聞いてますし、この内容は僕の持ってる2つのPerlに関する書籍にはありませんでした。
>猿だったら今頃とっくに死んでんだよお前。
猿じゃないです。人間です。人間と猿のDNAはたかが2%の違いといわれてますが、それは大きな差です。猿=人間という発想はおかしいかと。
>いい加減いつまで学生気分じゃ。
当て水量でモノを言わないでください。あなたの投稿からは僕があたかも社会人であるかのように見えますけど、僕まだ中学3年生です。
まあ態度という点では気をつけなきゃならないのかなとは思いましたが、あなたには>>1に書かれているような優しさや、このスレッドの意義を良く理解してもらいたいものです。

>>995
ありがとうございます!できました!
ただDATA[1]だけでは、すべてのフォームの内容が取り出されて、うまく$FORM{'comment'}の部分だけを抽出できません。。



975 名前:942=995 mailto:sage [2008/03/02(日) 16:20:53 ID:???]
>>996
なあ、ガキならガキらしく、オッサンには敬意を払えよ。
あと、試行錯誤の形跡が見れないと誰も相手してくれないぞ。
悩めるだけ悩め。そしてどう悩んだか見せろ。話はそれからだ。

ヒントは、元ソースの94行目 for から99行目 }まで。
ここで、$dateには日付、$textには内容が入ってるって事。
そっから先は自分で少し考えてみろ。

分からなくなったら、自分でどう考えてどこが分からないかを書けよ。
自分じゃ何も試さないようじゃ、漏れも付き合いきれない。

いい加減甘やかしすぎだと思えてきた。

976 名前:nobodyさん mailto:sage [2008/03/02(日) 16:39:55 ID:???]
>>997
お前、甘すぎ。バカガキは放置が基本。

977 名前:nobodyさん [2008/03/02(日) 17:44:58 ID:eMvpxgfI]
>>999
お前糞すぎワロタwww
>>998
神様すぎワロタwww

978 名前:nobodyさん mailto:sage [2008/03/02(日) 17:48:04 ID:???]
人類に平和が訪れますように



979 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef