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


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

Perlコーディング初心者質問スレ Part 57



1 名前:nobodyさん mailto:sage [2008/02/25(月) 19:25:51 ID:???]
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/


453 名前:nobodyさん mailto:sage [2008/05/05(月) 22:44:54 ID:???]
ハァハァするんじゃないかな。

454 名前:nobodyさん [2008/05/05(月) 23:21:45 ID:V/xhfGfA]
ftpで接続しないとスクリプトは抜けないでしょう

455 名前:BEET mailto:BEET [2008/05/06(火) 00:42:09 ID:???]
回答ありがとう。 ハッキングって.. 簡単なのかな? ソフトはできるだけ使いたくないな

456 名前:BEET mailto:progammer.co.jp [2008/05/06(火) 00:45:09 ID:???]
追記なんですけど
このレンタル掲示板の管理パスをクラックされて、改竄されたんだけど、どうやってクラックしてるのかな?


457 名前:nobodyさん [2008/05/06(火) 00:49:33 ID:fJq/GBDg]
(`・ω・´)??

458 名前:nobodyさん mailto:sage [2008/05/06(火) 00:50:15 ID:???]
>>455-456
>>1を100回声を出して読め。
読み終わったら610と三ポールのミックスカクテル飲め。

459 名前:nobodyさん [2008/05/06(火) 00:51:09 ID:fJq/GBDg]
(`・ω・´)ソフト使ってるだろww

460 名前:nobodyさん mailto:sage [2008/05/06(火) 09:09:26 ID:???]
Windowsローカルに入れたActivePerlで
cpan > install XML::ATOM::Feed
したのに、それを500エラーになってしまいます
(useしてるところをコメントアウトすると通る)
moduschで見たら「存在しないか、ロード出来ない」っぽい
なぜでしょうか…?

461 名前:nobodyさん mailto:sage [2008/05/06(火) 16:59:23 ID:???]
>>442
BCCで目的は達成できると思うけど、
自分のメールアドレスを、スパムを送りたい先などにされると
簡単にスパムの踏み台になるから気をつけてね。



462 名前:nobodyさん [2008/05/06(火) 22:50:17 ID:wGWcI8Lv]
AUTOLOADってのを初めて使ってみたんです。
未定義の関数を読んだら無事AUTOLOADが呼ばれたんですが、
変数$AUTOLOADを参照するとGlobal symbol〜っていうエラーが出てしまいます。
AUTOLOADを使う場合はno strictしていいものでしょうか。

463 名前:nobodyさん mailto:sage [2008/05/07(水) 00:05:35 ID:???]
use strict;
use warnings;

sub AUTOLOAD {
  our $AUTOLOAD;
  print $AUTOLOAD;
}

foo();


464 名前:nobodyさん mailto:sage [2008/05/10(土) 23:18:32 ID:???]
URL転送なんだけど今こうしてます↓

#!/usr/bin/perl
print "Location: *****\n\n";

これに転送するまでHTMLの<meta content="x">みたいに
一定時間ウェイトかける事って出来るのでしょうか?

465 名前:nobodyさん mailto:sage [2008/05/10(土) 23:19:01 ID:???]
いいえ

466 名前: ◆TWARamEjuA mailto:sage [2008/05/11(日) 01:16:36 ID:???]
転送するまでひと寝入りする。

467 名前:nobodyさん mailto:sage [2008/05/11(日) 02:11:14 ID:???]
>>464
いい事いうじゃねえか。
出来るんだな?
今すぐ頼むぞ。

468 名前:nobodyさん [2008/05/11(日) 13:18:10 ID:yMOlxpUv]
print qq{あいうえお @{[1+1]} かきくけこ };

無名配列のリファレンスとデリファレンスを使ってクォート内に式を埋め込めます。
これ気に入っててよく使うんですが、これのスカラーリファレンス版ってできませんか?

\$()
無名スカラーって存在しないんですかね。
いやそもそも@{[]}に式を埋め込めるのはそこをクォート内ではないと認識するからなわけで。
いや、う〜ん。確かこれなんかいい方法があったような期がするんですが。

469 名前:nobodyさん [2008/05/11(日) 23:02:44 ID:Vy6R2X5C]
Perlスクリプトの処理が全て完了する前に
クライアントとの接続を明示的にクローズする方法は
ありませんでしょうか?

以下のようなことが実施したいです。
どなたかよろしくお願いします。


#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html><body>なんちゃら</body></html>";

## ここで明示的にクライアントとのConnectionをクローズしたい。

## ここからクライアント側に影響がない時間がかかる別の処理を実施したい。
&HokaNoShori();

exit;


470 名前:nobodyさん [2008/05/12(月) 01:08:40 ID:CYOIx0A2]
perlで重い処理をさせるのが困ります。
例えばパソコンの30%の能力だけ使わせるとかってできませんか?

471 名前:nobodyさん mailto:sage [2008/05/12(月) 01:16:51 ID:???]
>>470
それは知らないけど、nice付けて起動とかしてみては?



472 名前:nobodyさん mailto:sage [2008/05/12(月) 03:09:36 ID:???]
>>468

qq{  ${\do {1+3}}  }


473 名前:nobodyさん mailto:sage [2008/05/12(月) 04:50:44 ID:???]
>>469
close(STDOUT);

474 名前:nobodyさん mailto:sage [2008/05/12(月) 10:21:48 ID:???]
>>469
fork

475 名前:nobodyさん mailto:sage [2008/05/12(月) 16:03:50 ID:???]
WindowsXPでActivePerlを使って
クリップボードにあるテキストに処理を加えて
クリップボードに戻すプログラムを作ろうとしています。
Win32::Clipboardを使用しているのですが、Unicodeだと化けてしまいます。
Unicodeでも化けないで処理できる方法はあるでしょうか?

476 名前:nobodyさん [2008/05/12(月) 16:08:19 ID:CYOIx0A2]
>>472
思い出した!

print qq{ ${ \(1+1)} };
でしたね。
なるほどなるほど。${}これでデリファレンスができるというわけだ。

477 名前:nobodyさん mailto:sage [2008/05/12(月) 17:20:30 ID:???]
Win32::Clipboard が受け取るのは Shift_JIS 固定っぽいです
Encode でShift_JIS にして渡してみたらどうりますか?

478 名前:nobodyさん mailto:sage [2008/05/12(月) 18:00:21 ID:???]
>>477
回答ありがとうございます。
Shift_JISにない文字も処理したかったので
Win32::Clipboardでは無理と言うことですね。
Win32::Clipboard以外でクリップボードを利用できるものはありますか?

479 名前:nobodyさん mailto:sage [2008/05/12(月) 20:22:51 ID:???]
文字化けしないようにする方法教えてください
use LWP::Simple;
my $page = get('hogehogehoge.jp/');
getprint('hogehogehoge.jp/');
print $page


480 名前:nobodyさん mailto:sage [2008/05/12(月) 21:36:53 ID:???]
>>479
ヒント:Jcode

481 名前:nobodyさん mailto:sage [2008/05/13(火) 01:04:45 ID:???]
perl 文字化け でググれカス



482 名前:479 mailto:sage [2008/05/13(火) 03:44:42 ID:???]
エスジス保存しておいたソースファイルをEUCに変更保存してみたけど
何も変わんないですよ

483 名前:nobodyさん mailto:sage [2008/05/13(火) 06:45:22 ID:???]
>>482
「ソースファイル」ってのが上の us-ascii で足りそうなコードのことだったら
SJIS → EUC しても何も変わんないですよ。

環境その他も書かれてないし、変換に興味なさそうなので
perl hoge.pl > test.html
して「まともなエディタで見れば文字化けしない」でいいのかも。

484 名前:nobodyさん mailto:sage [2008/05/13(火) 13:57:38 ID:???]
>>464
Location:を表示する前にwaitをいれればおk

485 名前:nobodyさん mailto:sage [2008/05/17(土) 19:31:00 ID:???]
$obj = new Class;
$obj = Class->new();

この二つの違いは何ですか?

486 名前:nobodyさん mailto:sage [2008/05/17(土) 20:03:56 ID:???]
おんなじ。どっちのClassクラスのコンストラクタを呼んでるだけ。
Classってサブルーチンが定義されてるときに問題がおきることがあるので、
$obj = Class->new;
の形式のほうが推奨されるけど。

487 名前:nobodyさん mailto:sage [2008/05/17(土) 23:09:13 ID:???]
>486
ありがとんです

488 名前:nobodyさん mailto:sage [2008/05/18(日) 11:25:25 ID:???]
俺はコンストラクタを呼び出すときだけはnew Classってしてあとはぜんぶ$obj->sub()ってするかな。

489 名前:nobodyさん mailto:sage [2008/05/19(月) 06:36:14 ID:???]
なんだか、急にCPANでエラーで全く動かなくなったので、いろいろ調べてみたら、
ERRNO.pmが、MSWin32-x86-multi-thread-5.00(Windows Updateでいつの間にか変わってた)を弾いてた。

とりあえず、ERRNO.pmを書き換える(!)ことで対処したんだけど、
他に同じトラブルあってる人いません?

490 名前:がんちゃん mailto:sage [2008/05/19(月) 10:02:27 ID:???]
perlでImage::MagickのAnnotateを使って画像と文字を合成できたのですが
出来上がった画像を右クリックして保存しましたが
そのファイルが開けません。
何が原因でしょうか。宜しくお願いします。

491 名前:nobodyさん mailto:sage [2008/05/19(月) 11:27:27 ID:???]
>>490
開けないとは具体的にどういうこと?
単に、変なファイル名(拡張子)で保存してしまって、ダブルクリックしても関連づけの問題で開けないってことではなくて?




492 名前:がんちゃん mailto:sage [2008/05/19(月) 12:15:34 ID:???]
うっせーよ!それぐらい分かるっての!腐った回答してんじゃねぇよwww

493 名前:がんちゃん mailto:sage [2008/05/19(月) 12:29:05 ID:???]
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *

494 名前:がんちゃん mailto:sage [2008/05/19(月) 12:32:08 ID:???]
なんだここの人たちはこれぐらいの質問も答えられないの?
回答者が初心者のスレだったのか・・・

495 名前:がんちゃん mailto:sage [2008/05/19(月) 12:35:01 ID:???]
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *

496 名前:nobodyさん mailto:sage [2008/05/19(月) 14:06:12 ID:???]
print "Content-type: image/jpeg\n\n";
binmode STDOUT;
$image->Write('jpeg:-');

ソース晒せや。

497 名前:nobodyさん mailto:sage [2008/05/19(月) 14:11:40 ID:???]
なにこの流れ・・・

498 名前:nobodyさん mailto:sage [2008/05/19(月) 15:48:41 ID:???]
質問の仕方も知らないというか、質問の文章すら正しく書けない馬鹿が多すぎ
Perl云々の前に日本語学校行け

499 名前:nobodyさん mailto:sage [2008/05/19(月) 15:59:52 ID:???]
\E

500 名前:nobodyさん mailto:sage [2008/05/19(月) 16:39:50 ID:???]
はい、次

501 名前:nobodyさん mailto:sage [2008/05/19(月) 16:41:56 ID:???]
>>498
お前の文章が一番変だわ



502 名前:nobodyさん [2008/05/19(月) 18:36:38 ID:82E4EJS9]
すみません。ド素人です。
質問です。
Can't locate GD/Image.pm in @INC (@INC contains: C:/perl/site/lib C:/perl/lib .)
というソフトウェアエラーが出て、CGIを実行できません。
どうかどうか、教えてください。

503 名前:nobodyさん mailto:sage [2008/05/19(月) 18:38:59 ID:???]
GD を入れてください

はい次

504 名前:nobodyさん [2008/05/19(月) 18:39:34 ID:82E4EJS9]
GDは入れてるんですけど、image.pmってのがなにか、わかんないんです。。。

505 名前:nobodyさん mailto:sage [2008/05/19(月) 18:44:49 ID:???]
GD-Image-Thumbnail でも居れておきゃえぇんとちゃうのん?

506 名前:nobodyさん [2008/05/19(月) 18:45:58 ID:82E4EJS9]
505さん ありがとうございますぅやってみます。

507 名前:nobodyさん mailto:sage [2008/05/19(月) 18:47:44 ID:???]
search.cpan.org/~lds/GD-2.39/GD/Image.pm.PLS

508 名前:nobodyさん [2008/05/19(月) 18:54:23 ID:82E4EJS9]
507さん。。ありがとうです。
けど、このページの、なにをどうすればいいのか。
わかりません
どうしようもない素人なので。。

509 名前:nobodyさん mailto:sage [2008/05/19(月) 19:12:16 ID:???]
*.pmってのはPerlモジュール
エラーの内容は「このモジュールがみつからないよパパ」
→インスコor場所確認
とりあえずモジュールが入ってるか確認する
→ぐぐる
入っていない場合、モジュールをインスコする
→ぐぐる
入っている場合、パスを確認する
→ぐぐる

510 名前:nobodyさん mailto:sage [2008/05/19(月) 19:26:15 ID:???]
GDのバージョンを2.39に上げれば解決。

511 名前:nobodyさん mailto:sage [2008/05/19(月) 19:58:48 ID:???]
「初心者」「素人」は分からないからフルサポートしてもらえる理由になりません。



512 名前:nobodyさん [2008/05/19(月) 20:03:39 ID:82E4EJS9]
GD2.39の中のGD.pmとGDフォルダを /perl/libの中にドラック&ドロップしてるんです。
これは、どこかのサイトに書いてあったので。しました。
そしたら、エラーがでて。GD/Image.pmがどうのこうのとなってまして。
505さん507さん509さん510さんの言葉も、正直、理解しきれてない状況です。
まず、インスコというのが、コマンドプロンプトでするらしいとどこかに書いてて、
してみたんですけど。まず、「ppm」とすると、perlpackagemanagerが起動して、
その中に、GDがなくて。どやってインストールしていいのかも、わかんない感じです。
すみません長々と。どうかお助け願います。。

513 名前:nobodyさん mailto:sage [2008/05/19(月) 20:03:43 ID:???]
ローカルで試そうとしてるやつが、
どうしようもない素人を名乗るなよ。
向上心ねぇのか

514 名前:nobodyさん mailto:sage [2008/05/19(月) 20:16:06 ID:???]
>>512
www.bribes.org/perl/ppmdir.html
ここへいってら。

それができたら、こっちも回っておくように。
theoryx5.uwinnipeg.ca/ppms/


515 名前:nobodyさん [2008/05/19(月) 20:18:47 ID:82E4EJS9]
514さんありがとうございます。
読んでます。

516 名前:nobodyさん [2008/05/19(月) 21:08:55 ID:82E4EJS9]
やっぱりエラーになります(涙

517 名前:nobodyさん mailto:sage [2008/05/19(月) 21:35:03 ID:???]
リポジトリを増やしたのだからインストールできるはずだが。

掲示板なんだから、レスに主語と述語をはっきり書いてくれ。
とりあえず、頭にエラーが出たのか?

518 名前:nobodyさん mailto:sage [2008/05/19(月) 22:17:16 ID:???]
良く読んでないけど、
スタート→すべてのプログラム→ActivePerl→Perl Package Managerで
必要なものをクリック、クリック!した方が楽で簡単だよ。

519 名前:nobodyさん [2008/05/19(月) 23:01:51 ID:82E4EJS9]
perl package managerの中に GDが見当たらないんです。
コマンドプロンプトで CPANから install GDってしても
できないんです。
GD/image.pmが@INCに無いっていうエラーが出るんです。517さん。

520 名前:nobodyさん mailto:sage [2008/05/19(月) 23:13:22 ID:???]
>>519
>>514サイトをよく読んでppmにリポジトリを追加すると、GD 2.39がインストールできるようになる。
ちゃんとリポジトリを追加したか?
それでも出ないというのなら、ppmに問題があることになる。

521 名前:nobodyさん mailto:sage [2008/05/19(月) 23:23:58 ID:???]
ttp://mikiho.jp/memo/?log=20070111_141552

serach のとろを

s GD

としてくださいな

これでも出来なければ諦めてください
サポートしきれないです



522 名前:nobodyさん mailto:sage [2008/05/20(火) 01:25:53 ID:???]
pub.ne.jp/wakapon/?entry_id=82091
Perl 5.8ならなんか面倒そうなんだけどこれかな?

523 名前:nobodyさん [2008/05/20(火) 03:52:12 ID:U/T3y6km]
ここ見て、Win用のGD-2.39来てるのかと思い、threory58に行くも2.35しかないじゃないか!?ぷんぷん。
ふと、PPM-Repositoriesを0.14に上げて見るとbribesなるレポがあるので、これを見に行くと、
おおー、結構新しいの来てるじゃないか〜と、調子にのってperl areaのmoduleもUpしまくる。
しかし、Compress-ZlibをUpすると、Bandleされてたversionを上書きしてしまい、
それ以降ppmがtar.gzファイルを展開できなくなってしまった。(今まで見たことないエラーでPPMが落ちる)

とゆうことで、今やっと再インストールと、(自分のよく使う)各種モジュールのインストール、最新版へのUpデートが終わった。
なんとか、Compress-Zlibも2.010に上げる事ができた。
ふう、疲れたぜ・・・・。

524 名前:nobodyさん mailto:sage [2008/05/20(火) 04:15:25 ID:???]
そうなんだお疲れちゃん

525 名前:nobodyさん [2008/05/20(火) 14:16:09 ID:XrCi5l42]
519です。
いろいろサポートいただいて、できました。
ほんとに感謝してます。ありがとうです。

526 名前:nobodyさん mailto:sage [2008/05/21(水) 00:33:37 ID:???]
phpのexplodeみたいに、
正規表現を使わずに高速に動作するsplitの代わりはないでしょうか?

527 名前:nobodyさん mailto:sage [2008/05/21(水) 01:39:24 ID:???]
substrでループさせる自前の関数でも作れば?

528 名前:nobodyさん mailto:sage [2008/05/21(水) 01:41:57 ID:???]
それって速いのかな。。
indexとsubstrを併用してちょっと試してみるか。

529 名前:nobodyさん [2008/05/21(水) 11:18:20 ID:crauFAgn]
モジュールが一切入っていないレンタルサーバで、xmlを読み込もうとしています。
ググってみると、どこもXMLとLWPというモジュールを読み込む事が前提になっているようなのですが、
何も無い状態でXML

530 名前:529 mailto:sage [2008/05/21(水) 11:19:42 ID:???]
すみません途中で送信してしまいました…orz

モジュールが何も無い状態でXMLを読み込むために
参考になるようなサイトがありましたら、ご教示下さい。

宜しくお願いします。

531 名前:nobodyさん mailto:sage [2008/05/21(水) 12:00:10 ID:???]
ソケット使ってゴリゴリ書くしか無いんじゃないかな



532 名前:nobodyさん mailto:sage [2008/05/21(水) 12:06:34 ID:???]
モジュールが一切入っていないレンタルサーバでソケットが使えるようにインストールされてる
とはとても思えないが・・

533 名前:nobodyさん mailto:sage [2008/05/21(水) 12:14:45 ID:???]
xmlそのものについても調べてる状態なんですが、
どうも事実上無理っぽいということですかね…orz
お騒がせしました、ありがとうございました。

534 名前:nobodyさん mailto:sage [2008/05/21(水) 13:46:16 ID:???]
php が動くなら php 普通にネットワーク経由でファイル開けるので php も考慮してみれば?

535 名前:nobodyさん mailto:sage [2008/05/21(水) 23:33:50 ID:???]
>>529,530
XMLを読み込むだけなら、XML::TreePPでXMLが読める。
別サイト上にあるXMLを読むならLWP等が必要。


536 名前:nobodyさん mailto:sage [2008/05/22(木) 08:42:14 ID:???]
質問です。Snアップローダー(sugachan.dip.jp/obsolete/snup/)の
ファイル個別HTMLを作成する部分で

$buff = "<html><head><title>$filename</title></head><body>";
$buff .= qq|Download <a href="./$filename">$filename</a>|;
$buff .= '</body></html>';
(ソースの760行目付近です)

特定の拡張子のみ別のHTMLコードを書き出したいのですが
if文で$filename等試してみましたが上手く行きませんでした

どなたか分かる方宜しくお願いします

537 名前:nobodyさん mailto:sage [2008/05/22(木) 10:13:46 ID:???]
改造スレいけ

538 名前:nobodyさん mailto:sage [2008/05/22(木) 12:40:41 ID:???]
$buff .= qq|Download <a href="./$filename">$filename</a>|;

こういう書き方もあるんだ。勉強になったw

539 名前:nobodyさん mailto:sage [2008/05/22(木) 13:18:50 ID:???]
毎行クォート変えるくらいならヒアドキュメント使えよ

540 名前:nobodyさん mailto:sage [2008/05/22(木) 13:25:55 ID:???]
ヒアドキュメントもコーディングの桁揃えと、HTMLの桁揃えでタブを使うと、すっきりする方法
がなかなか見つからない。

541 名前:nobodyさん mailto:sage [2008/05/22(木) 13:40:38 ID:???]
>if文で$filename等試してみましたが上手く行きませんでした
どう試して、どういう結果になったのか書かないと。
基本だと思うが。



542 名前:nobodyさん mailto:sage [2008/05/22(木) 17:17:18 ID:???]
>>540
普通に cookbook にある解ではダメなのか?
ttp://www.unix.com.ua/orelly/perl/cookbook/ch01_12.htm


543 名前:nobodyさん [2008/05/24(土) 13:22:00 ID:CztaXqIN]
セッション変数の受け渡しについての質問です。

print <<EOT
<form action="localhost/cgi-bin/session.cgi" method="post">
<p>
<label for="nm">お名前:</label>
<input type="text" name="namae" id="nm"><br>
<label for="ma">メール:</label>
<input type="text" name="email" id="ma">
</p>
<p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</p>
</form>
EOT
;

これらのフォームデータをセッション変数としてsession.cgiに受け渡したい
のですが、どのようにすればよいでしょうか?
CGI::sessionモジュールを利用して、session.cgi側で
$hoge=$cgi->$session->param('namae');
などとすればセッション変数として受け取れる事は分かったのですが、
フォームからの受け渡し方が分かりません…。

よろしくお願いします。

544 名前:nobodyさん mailto:sage [2008/05/24(土) 13:38:27 ID:???]
hiddenで投げれ

545 名前:nobodyさん mailto:sage [2008/05/24(土) 13:41:36 ID:???]
>>543
どれがセッション変数なの?

546 名前:543 [2008/05/24(土) 13:47:45 ID:CztaXqIN]
>>544
hiddenフィールドを利用すればセッション変数として受け渡されるのでしょうか?

>>545
「お名前」や「メール」フォームに入力された文字列をセッション変数として
session.cgiで受け取りたいと考えています。

547 名前:nobodyさん mailto:sage [2008/05/24(土) 13:47:48 ID:???]
CGI.pmでデータを受け取るところから勉強を始めるべき。
セッションはその後。

548 名前:nobodyさん mailto:sage [2008/05/24(土) 13:49:52 ID:???]
・hidden
・GET
・cookie

わざわざCGI::session使うくらいなんだから、普通はcookie使うんじゃね?

549 名前:543 [2008/05/24(土) 13:53:40 ID:CztaXqIN]
>>547
すいません。>>543の書き込み微妙に間違っています。
$hoge=$cgi->$session->param('namae'); のところ

通常データの受け取りは
$hoge=$cgi->param('namae');
セッションでの受け取りは
$hoge=$session->param('namae');
の間違いです。


550 名前:nobodyさん mailto:sage [2008/05/24(土) 14:04:47 ID:???]
>>549
受け渡しの情報が知りたいって言ってるのに、
受け取りのソース書いてるから、それを指摘されてるんだよ。

>基本的にはセッション系モジュールの役割は、特定のキー=セッションIDに紐付けて、
>データを保存したり、読み込んだりといったことです。
>セッションIDの受渡しはCGI側でする必要があります。

ヒント:digit.que.ne.jp/work/wiki.cgi?Perl%e3%83%a1%e3%83%a2%2fCGI%3a%3aApplication%3a%3aPlugin%3a%3aSession%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab

551 名前:543 [2008/05/24(土) 14:05:03 ID:CztaXqIN]
cookieにセッションIDやもっておきたいデータ(今回の場合、お名前やメール)を記述しておき、
サーバ側から要求があった時点でクライアントはそのcookieのデータを受け渡す

といったイメージで良いのでしょうか。

うぅ、難しい。。。



552 名前:543 [2008/05/24(土) 14:13:48 ID:CztaXqIN]
>>550
>受け渡しの情報が知りたいって言ってるのに、
>受け取りのソース書いてるから、それを指摘されてるんだよ。

データを受け渡す側のソースが>>543で、受け取るソースがsession.cgiだと
認識してるのですが…。間違っているでしょうか。

もしかしたら私が勘違い?をしているのかも?



553 名前:nobodyさん mailto:sage [2008/05/24(土) 14:14:00 ID:???]
>>551
正直、目的に対して技術が足りなすぎる。イヤミじゃなくてね。
トラブル起こす前に、オライリーのCGIプログラミング読破オススメ。

554 名前:nobodyさん mailto:sage [2008/05/24(土) 14:18:21 ID:???]
>>552
>受け取るソースがsession.cgiだと認識してるのですが…。
少なくてもこのソース中でセッションIDはどこにも発行してないでしょ?
後は調べなさい。

555 名前:554 mailto:sage [2008/05/24(土) 14:19:15 ID:???]
ごめんミスった。

 × >受け取るソースがsession.cgiだと認識してるのですが…
 ○ >データを受け渡す側のソースが>>543

556 名前:543 [2008/05/24(土) 14:19:38 ID:CztaXqIN]
すいません。もう少し勉強しなおしてきます。
みなさん、有難うございましたー・・・

557 名前:543 [2008/05/24(土) 14:23:19 ID:CztaXqIN]
>>554
あ、ソースの一部分しか乗せてなかったためです!

use CGI::Session qw/-ip_match/;

my $session=CGI::Session->new(undef,undef,{Directory=>'./session'});
$session->expire('+1m'); #有効期限は1分間
$session->param('name','john'); #セッション経由で引き渡す項目と値

my $cgi=CGI->new;

print $cgi->header(-charset=>'UTF-8',
-cookie=>$cgi->cookie(-name=>'CGISESSID',
-value=>$session->id,
-expires => '+3M')),
#cookieにセッションidを保管
$cgi->start_html(-lang=>'ja',
-encoding=>'UTF-8',
-title=>'CGI.pm使用/cookie'),
$cgi->p('session id: '.$session->id.'<br/>',
'name: '.$session->param('name').'<br/>',




558 名前:543 [2008/05/24(土) 14:24:17 ID:CztaXqIN]
続き

print <<EOT
<form action="localhost/cgi-bin/session.cgi" method="post">
<p>
<label for="nm">お名前:</label>
<input type="text" name="namae" id="nm"><br>
<label for="ma">メール:</label>
<input type="text" name="email" id="ma">
</p>
<p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</p>
</form>
EOT
;
$cgi->end_html;
#end

すいません…!

559 名前:nobodyさん mailto:sage [2008/05/24(土) 14:27:18 ID:???]
めんどくさいし、合ってる保証ないけど、適当にフォローしてみる

追記 use CGI;
追記 my $cgi = new CGI;

× my $session=CGI::Session->new(undef,undef,{Directory=>'./session'});
○ my $session=CGI::Session->new(undef, $cgi, {Directory=>'./session'});

560 名前:nobodyさん mailto:sage [2008/05/25(日) 02:16:54 ID:???]
htmlのフォームデータをセッション変数に格納して利用するには

htmlのフォームデータをpost→受け取ったデータをセッション変数を格納するCGI
→それらのセッション変数にアクセス(利用する)CGI

の流れがいるのでは?




自信ないけど

561 名前:nobodyさん [2008/05/25(日) 19:58:56 ID:sAYmYKjS]
perlのセッション管理はphpに比べるとかなりめんどい
もちろん細かく制御するには向いてるんだが始めとっつきにくいかもなー



562 名前:nobodyさん mailto:sage [2008/05/26(月) 13:29:09 ID:???]
>>561
>>543の質問を分かりやすくPHPで説明すると、
$_REQUESTの内容を$_SESSIONで受け取るにはどうしたらいいんですか?
ということ。

563 名前:nobodyさん [2008/05/26(月) 19:00:45 ID:BXwqNwjP]
すみません。質問です。
Global symbol "%in" requires explicit package name at C:/ApacheGroup/〜〜.cgi line 375, <DATA> line 855.
というソフトウェアエラーが出続けてるんですが。
どうすればいいでしょう。
どなたか教えてください〜。

564 名前:nobodyさん [2008/05/26(月) 19:09:34 ID:fmVA2Qe8]
先生方! 質問よろしいでしょうか!

open(OUT,"+< log.txt");
eval{flock(OUT, 2);};
eval{truncate(OUT, 0);};
seek(OUT, 0, 0);
print OUT @log;
eval{flock(OUT, 8);};
close(OUT);

今はこのように通常のテキストでログの上書き保存をしているのですが、
私はgzipで圧縮して上書き保存をしたいのです!
しかしどれだけGoogle先生に訊いてもgzipでの保存方法を教えてもらえません! あの先生はケチです!
もう先生方だけが頼りなんです! 一体どうすればgzipでの保存が可能になるんでしょうか!

565 名前:nobodyさん mailto:sage [2008/05/26(月) 19:18:18 ID:???]
>>563
xn--lckja1b6r.jp/%47%6C%6F%62%61%6C%20%73%79%6D%62%6F%6C%20%20%72%65%71%75%69%72%65%73%20%65%78%70%6C%69%63%69%74%20%70%61%63%6B%61%67%65%20%6E%61%6D%65

>>564
xn--lckja1b6r.jp/%70%65%72%6C%20%67%7A%69%70

566 名前:nobodyさん mailto:sage [2008/05/26(月) 19:32:47 ID:???]
Archive perl でググればでてくるじゃないの

567 名前:nobodyさん mailto:sage [2008/05/26(月) 23:41:19 ID:???]
>>563
英語が読めないなら駱駝本を買うべきだ。

568 名前:nobodyさん mailto:sage [2008/05/27(火) 11:06:43 ID:???]
ラクダを漢字で書かれると困ります (><;)

569 名前:nobodyさん mailto:sage [2008/05/27(火) 19:27:42 ID:???]
{
$global_foo = $foo;
$global_bar = $bar;
my $foo;
my $bar;
$foo = $_[0];
$bar = $_[1];
$foo = $global_foo if $foo eq undef;
$bar = $global_bar if $bar eq undef;
}
をコンパクトにまとめたいが、バグが混入しそうでいやん。

570 名前:nobodyさん mailto:sage [2008/05/27(火) 19:44:24 ID:???]
{
my $global_foo = $foo;
my $global_bar = $bar;
$foo = shift || $global_foo;
$bar = shift || $global_bar;
}

571 名前:nobodyさん mailto:sage [2008/05/27(火) 19:55:45 ID:???]
>>569-570
$foo eq undef もたいがいだが
shift || $global_foo だと $_[0] が '0' の時に挙動変わるな。



572 名前:nobodyさん mailto:sage [2008/05/27(火) 20:06:24 ID:???]
{
my $global_foo = $foo;
my $global_bar = $bar;
$foo = defined( $_[0] ) ? $_[0] : $global_foo;
$bar = defined( $_[1] ) ? $_[1] : $global_bar;
}

こうか?

573 名前:nobodyさん mailto:sage [2008/05/27(火) 20:06:58 ID:???]
あ、三項演算子逆だ。すまん。

574 名前:nobodyさん mailto:sage [2008/05/27(火) 20:33:00 ID:???]
defined関数の存在が頭から抜けてたorz
$foo = $global_foo if $foo eq undef;
$bar = $global_foo if $bar eq undef;
ではなく
$foo = $global_foo unless defined $foo;
$bar = $global_foo unless defined $bar;
でお願いします。あと>>570-573サンクス、参考になります。

575 名前:nobodyさん mailto:sage [2008/05/27(火) 20:38:51 ID:???]
つーか、>>569だとまともに動かんよ。

初期化するためにmy使っちゃってるように見えるけど、
この場合、ブロックスコープになるから、
ブロック内の$foo, $barと、グローバル変数$foo, $barは別物になる。

576 名前:nobodyさん mailto:sage [2008/05/27(火) 20:54:18 ID:???]
myの仕様間違えて覚えてたか…
$global_foo = $foo;
$global_bar = $bar;
{
my $foo;
my $bar;
$foo = $_[0];
$bar = $_[1];
$foo = $global_foo unless defined $foo;
$bar = $global_foo unless defined $bar;
}
欲しい動作はこうかな…

577 名前:nobodyさん mailto:sage [2008/05/27(火) 20:56:48 ID:???]
いやいやいやいやw
「perl スコープ 変数」でググっみ。

578 名前:nobodyさん mailto:sage [2008/05/27(火) 21:53:15 ID:???]
全然わかってないわかってないwww

579 名前:nobodyさん mailto:sage [2008/05/27(火) 22:34:53 ID:???]
my $foo = 1;

sub func {
my $temp = $_[0];
return defined( $_[1] ) ? $_[1] : $temp;
}


ex :
$foo = func( $foo, 10 ); # $foo = 10
$foo = func( $foo ); $foo = 1

580 名前:nobodyさん mailto:sage [2008/05/28(水) 00:31:36 ID:???]
早くdefined-or演算子実装されないかな…


581 名前:nobodyさん mailto:sage [2008/05/28(水) 01:24:48 ID:???]
今日が今月の何週目か求めるにはどうしたらよいでしょうか



582 名前:576 mailto:sage [2008/05/28(水) 01:29:54 ID:???]
$global_foo = $foo = 1;
$global_bar = $bar = 2;
@_ = (3,4); #@_に値あり
{
my $foo;
my $bar;
$foo = $_[0];
$bar = $_[1];
$foo = $global_foo unless defined $foo;
$bar = $global_bar unless defined $bar;
print "point 1: foo=$foo bar=$bar\n";
}
print "point 2: foo=$foo bar=$bar\n";

出力結果
point 1: foo=3 bar=4
point 2: foo=1 bar=2

583 名前:576 mailto:sage [2008/05/28(水) 01:32:06 ID:???]
$global_foo = $foo = 1;
$global_bar = $bar = 2;
@_ = (3,4); #@_に値あり
{
my $foo;
my $bar;
$foo = $_[0];
$bar = $_[1];
$foo = $global_foo unless defined $foo;
$bar = $global_bar unless defined $bar;
print "point 1: foo=$foo bar=$bar\n";
}
print "point 2: foo=$foo bar=$bar\n";
出力結果
point 1: foo=1 bar=2
point 2: foo=1 bar=2
━━━━━━━━━━━━━━━━━━━━━━━
うん、欲しかった動作そのままだけど。
>>577-578が理解できず悩み中

584 名前:nobodyさん mailto:sage [2008/05/28(水) 01:34:02 ID:???]
ぎゃー、>>583張り間違えた

【誤】@_ = (3,4); #@_に値あり

【正】@_ = (); #@_に値無し

orz 120秒規制が若干きつい…

585 名前:nobodyさん mailto:sage [2008/05/28(水) 01:35:51 ID:???]
Date::Calc

586 名前:nobodyさん mailto:sage [2008/05/28(水) 01:46:51 ID:???]
>>576
目的が分からん。そもそも何がしたいの?
説明する気あるのか?

my $foo = 1;
my $bar = 2;

print $foo = func( $foo );
print $bar = func( $bar );
print $foo = func( $foo, 3 );
print $bar = func( $bar, 4 );
exit;

sub func {
return defined( $_[1] ) ? $_[1] : $_[0];
}


587 名前:nobodyさん mailto:sage [2008/05/28(水) 01:47:41 ID:???]
>>585
感動した ありがとう

588 名前:576 mailto:sage [2008/05/28(水) 01:58:37 ID:???]
>>586
サブルーチン冒頭にて、引数リスト > デフォルト値(グローバル変数の値とか)
の優先順でmy変数値を設定したいことはよくあるから、
perlなら… perlならきっとすごくスマートに書く方法があるに違いない…

という夢を見たけど、幻だったみたいですね…
変数ひとつずつシコシコとunless definedを当てることにします。

589 名前:nobodyさん mailto:sage [2008/05/28(水) 02:00:25 ID:???]
いや、日本語でおk
お前の望むようなことは確実にできると思うんだけど、
なにぶん言いたいことがよく分からんw

590 名前:nobodyさん mailto:sage [2008/05/28(水) 02:16:48 ID:???]
my $global_foo = my $foo = 1;
my $global_bar = my $bar = 2;

# @_ =( );
@_ =( 3, 4 );
{
my $foo = defined( $_[0] ) ? $_[0] : $global_foo;
my $bar = defined( $_[1] ) ? $_[1] : $global_bar;
print "point 1: foo=$foo bar=$bar\n";
}
print "point 2: foo=$foo bar=$bar\n";

結局、最初に提案されてる回答をアレンジすれば、
>>582-584をシンプルかつ可読性も保ったまま実現できるんだが。
これじゃいかんの?

591 名前:nobodyさん mailto:sage [2008/05/28(水) 02:25:18 ID:???]
>>590
そのへんが限界みたいですね…ありがとうございます。
私の欲求そのものが十分特殊だったのかな…

いま考えてる最善の形はサブルーチンを使うことです。
サブルーチンコールは負担かかりそうだからやりたくないんだけど…

sub merge_argument_and_default{
my ($argument, @default) = @_;
my @value;
while(1){
my ($a, $v) = (shift @$argument, shift @default);
my $c = ((defined $a) ? $a : $v);
last unless defined $c;
push @value, $c;
}
return @value;
}

sub foo{
my(@bar) = &merge_argument_and_default(\@_, @default_bar);
}

みなさんありがとうございました。



592 名前:nobodyさん mailto:sage [2008/05/28(水) 02:30:59 ID:???]
殺してぇ……。日記じゃねぇんだよ。

593 名前:nobodyさん mailto:sage [2008/05/28(水) 06:17:52 ID:???]
>>580
もう実装されてるよ?
search.cpan.org/dist/perl/pod/perl5100delta.pod#Defined-or_operator

594 名前:nobodyさん mailto:sage [2008/05/28(水) 06:40:31 ID:???]
>>576みたいに、自分のプライド保つために
当初の目的をすり替えて、自分は違うもの作ってました的な発言するやつは質問にくるなよ。

当初は「>>569をコンパクトにしたい」って言ってただけなのに、
どんな解が提示されても、
どんどん違う方向に勝手に転換して善意のレスすら流し読み。
こういう奴は、治らないから本当に放置すべきだと思うよ。

595 名前:nobodyさん mailto:sage [2008/05/28(水) 07:18:42 ID:???]
>>594
それは違うんだけど、あなたへの説得は無理かな。
ひどく機嫌を損ねてしまったのは悪いと思ってるが。

いただいたありがたいアドバイスから、例えば今回は、
「サブルーチン化でもしなければ相当コンパクトに収めるのは難しいらしい」
「そのサブルーチンはこういう形で書くのがよいのだろうか」
などと、自分の知識や興味対象は移り変わっていくことが多いです。

ただ、このスレッドにはしばらく書き込みを自粛します。さよなら。

596 名前:nobodyさん mailto:sage [2008/05/28(水) 10:11:34 ID:???]
典型的な"隠す人"だったか。

597 名前:590 mailto:sage [2008/05/28(水) 10:39:10 ID:???]
うわ、ちょっと離れたスキにすげぇ慇懃無礼なこと書いてやがる。
目的も明確にせず、そのへんが限界てw
そもそも次の疑問に移ったなら、その過程を説明するのが回答者への最低限の礼儀だろ。
社会出て苦労するよ。

ちなみに>>591は、俺ならこう書く。

sub merge_argument_and_default {
 my ($argument, @default) = @_;
 my %count;
 $count{$_} = $default[$_] for( 0..$#default );
 $count{$_} = ${ $argument }[$_] for( 0..$#{ $argument } );
 return map { $count{$_} } sort keys %count;
}

598 名前:nobodyさん mailto:sage [2008/05/28(水) 11:40:59 ID:???]
>595みたいなやつっているよね
言葉遣いが丁寧なだけで、いっぱしの大人だと思ってる人。

599 名前:nobodyさん mailto:sage [2008/05/28(水) 12:04:01 ID:???]
sub merge_argument_and_default { map{ defined $_[0][$_] ? $_[0][$_] : $_[$_ + 1] ;} 0 .. $#{$_[0]} ; }

>>598
ガキなの見え見えなんだよねw
ttp://www2.atpages.jp/mirror/2ch/perl/prog/read.php/1157874614/
の595を思い出した。

600 名前:nobodyさん mailto:sage [2008/05/28(水) 13:55:09 ID:???]
>>593
そいえば5.10でてるんだっけ(汗
RHELとCentOSしか使ってないからすっかり忘れてました。


601 名前:nobodyさん mailto:sage [2008/05/28(水) 15:44:58 ID:???]
5.10って絶対分かりづらいよw
5.8より昔のリリースだとしか思えない。



602 名前:nobodyさん mailto:sage [2008/05/28(水) 15:51:58 ID:???]
Ver 5.008008
Ver 5.010000
こう書けばよいのか?

603 名前:nobodyさん mailto:sage [2008/05/28(水) 16:09:29 ID:???]
5.1の方が新しいんですか?
知らなかったorz

604 名前:nobodyさん mailto:sage [2008/05/28(水) 16:21:25 ID:???]
5.10.0 > 5.9.5 > 5.8.8 >> 5.1.0
苦肉の策なんだろうな……。

605 名前:nobodyさん mailto:sage [2008/05/28(水) 17:55:49 ID:???]
perl6ってどうなったん?

606 名前:nobodyさん mailto:sage [2008/05/28(水) 19:03:22 ID:???]
>>605
parrotの新しいのが最近でた気が・・・

607 名前:nobodyさん mailto:sage [2008/05/28(水) 20:28:19 ID:???]
あるIPアドレスが変数$ipに格納してあります。
この$ipが存在するか、あるテキストファイル(ip.txt)を読んで
チェックしています。以下は例です。

$ipは"192.168.0.1"
ip.txtに192.168.0.1が記述してあります。

この場合マッチするようプログラムしてあります。

ip.txtに

192.168.0.0/24
または
192.168.0.0/255.255.255.0
と記述してあるものと
マッチさせたいのですが、
そういうサブルーチンは
ありますでしょうか?


簡単にいうと、あるIPアドレスが
サブネットマスクで指定してある
10進表記またはサイダー表記に
マッチするか判定したいのです。
ip.txtは10進表記でもサイダー表記の
どっちでも構いません。

608 名前:nobodyさん mailto:sage [2008/05/28(水) 20:34:04 ID:???]
ttp://pc11.2ch.net/test/read.cgi/tech/1086143976/491-590
の543-544及び「IP pack unpack perl」でググれ。

609 名前:607 mailto:sage [2008/05/28(水) 20:59:40 ID:???]
>>608
あり♪
明日、見てみるよん

610 名前:597 mailto:sage [2008/05/28(水) 21:17:34 ID:???]
>>599
終わった話題なんだけど、ちょっと気になった。
めんどくさかったら、スルーして。

提示してくれてるルーチンだと、

 引数1 @array1 = ();
 引数2 @array2 = ( 1,2 );

のとき、返り値が空になっちゃうよね。
配列1(引数1) > 配列2(引数2) という優先順位で、
配列3(返り値)を混ぜ合わせるというのが目的の処理だと思うんだけど、
配列1と配列2で要素数の大きい配列を、要素数だけループさせる処理にする場合、
キレイにまとめる方法ってないかなぁ?

 if( ( $#array1 <=> $#array2 ) == -1 ) {
  EXPR for( 0..$#array2 );
 } else {
  EXPR for( 0..$#array1 );
 }

みたいな、冗長な方法しか俺には思い浮かばなかった。

だから、「配列の重複値をハッシュを利用してマージ」の応用みたいなことを>>597でやってみたわけだ。
なんか美しい方法あればいいんだけどなぁ。

611 名前: ◆TWARamEjuA mailto:sage [2008/05/28(水) 21:20:10 ID:???]
(´-`).。oO(Net::CIDRでよさそうな。。。)



612 名前:597 mailto:sage [2008/05/28(水) 21:26:18 ID:???]
my @temp = ( $#array1 <=> $#array2 ) == -1 ) ? ( 0..$#array2 ) ; 0..$#array1;
こんな前処理してから、>>599のmap対象配列に、( 0..\$temp ) って感じかなぁ?

エレガントさには欠けるけど、これが可読性保つギリギリかな?

613 名前:597 mailto:sage [2008/05/28(水) 21:28:46 ID:???]
動作確認してないからtypoしまくり。まぁ分かるよね?(苦笑

614 名前:607 mailto:sage [2008/05/28(水) 21:31:18 ID:???]
>>611
私へのレスですね。
明日調べてみます

615 名前:599 mailto:sage [2008/05/28(水) 22:23:24 ID:???]
>>610
ああ、
@array1 = ( undef, undef ) ;
は考えてたけども、それは想定してなかったw
>>612の解で良いんじゃね? 助長を厭わないならば、
map{ 略 } 0 .. $#{$_[0]} , 0 .. $#_ - 1 ;
っつー荒技もw
自分のスクリプトじゃ絶対やんないけどね。

616 名前:599 mailto:sage [2008/05/28(水) 22:27:21 ID:???]
>>615
s/助長/冗長/

617 名前:nobodyさん mailto:sage [2008/05/29(木) 03:05:45 ID:???]
mapがいまいち理解し切れなくて使ってないんだが覚えとくべき?
覚えると便利そうだけど。

618 名前:nobodyさん mailto:sage [2008/05/29(木) 03:45:40 ID:???]
やってることは、forやforeachと変わらん。
違うっていえば、{}の中を、引数リストのそれぞれの要素で実行した結果をリストとして返すってとこか。
かなり便利な局面もある。覚えとくべきだとは思う。

@res = map{ $_ + 10 } (1,2,3,4,5) ;
print join("\n",@res);
---結果---
11
12
13
14
15

619 名前: ◆TWARamEjuA mailto:sage [2008/05/29(木) 07:02:31 ID:???]
my $Now_Date = sprintf qq|%04d/%02d/%02d %02d:%02d|, map {
$_->[0] += 1900;
$_->[1]++;
@$_;
}[(localtime)[5,4,3,2,1]];

2008/05/28 07:02
って出るかと思う。

620 名前:nobodyさん mailto:sage [2008/05/29(木) 08:23:18 ID:???]
>>617
シュワルツ変換という定番sort手法には必須だよ。
ぐぐって、foreach 文で書いてみたらありがたみが分ると思う。

>>619
お前さんの例は頻繁にとんでもなく斜め上を行くなあw
なんで一要素しかないと分りきってる無名配列を作って map の例にする?
do ならいざしらず
perl -le 'my $Now_Date = sprintf qq|%04d/%02d/%02d %02d:%02d|, do{
@_ = (localtime )[5,4,3,2,1] ;
$_[0] += 1900 ;
$_[1] ++ ;
@_ } ;
print $Now_Date ;'
それ以前に普通は↑こんな面倒な事しないだろ?
perl -MPOSIX=strftime -le '$str =strftime "%Y/%m/%d %H:%M", localtime; print $str, "\n"; '



621 名前:607 mailto:sage [2008/05/29(木) 17:51:57 ID:???]
Net::CIDR::cidrlookupでうまくいきそうなのですが、
IPアドレスのチェックを行いたいと思ってます。
ググると、以下の様な正規表現がありますが、
\d(バックスペース)の意味が分かりません。
どういう意味なんでしょうか?

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}



622 名前:nobodyさん mailto:sage [2008/05/29(木) 17:53:57 ID:???]
0-9

623 名前:607 mailto:sage [2008/05/29(木) 17:54:42 ID:???]
すみません。
\dは数字でした。
申し訳ない

624 名前:607 mailto:sage [2008/05/29(木) 18:10:05 ID:???]
またまたお願いします。

正規表現で/をマッチさせたいのですが、
以下であってますでしょうか?

$hoge =~ /\//

625 名前:607 mailto:sage [2008/05/29(木) 18:11:58 ID:???]
すんません

\/で、いけるみたいです。
お騒がせしました。

626 名前:nobodyさん mailto:sage [2008/05/29(木) 18:15:31 ID:???]
$hoge =~ m(/);

すこしは綺麗?


627 名前:nobodyさん mailto:sage [2008/05/29(木) 18:19:11 ID:???]
>>617だけどレスありがとう。
シュワルツ変換とかまだいまいち理解できないけど良さそうだね。
sortは結構使うから思い処理の部分で使うのはいいかも。
でも問題は後で読み直して何してるか理解できなくなりそうな所だな。

628 名前: ◆TWARamEjuA mailto:sage [2008/05/29(木) 20:45:58 ID:???]
>>620
つっこみおおきに♪
mapを覚えちゃってからどんどん斜め上に逝っちゃいました。

ひとまず車輪の再発明は大好き♪

629 名前:nobodyさん mailto:sage [2008/05/30(金) 02:09:30 ID:???]
曲芸はほどほどに

630 名前:nobodyさん mailto:sage [2008/05/30(金) 08:17:40 ID:???]
出来た物が車輪じゃない上に使えないのならただの無駄

631 名前:nobodyさん mailto:sage [2008/05/30(金) 10:14:07 ID:???]
車輪を作ろうとしたら鎖鎌が出来ちゃった感じだな



632 名前:nobodyさん mailto:sage [2008/05/30(金) 10:19:32 ID:???]
まーmapは便利だってことだ

633 名前:nobodyさん mailto:sage [2008/05/30(金) 11:57:18 ID:???]
XML::DOMを使ってXHTMLに広告を挿入するCGIを書いたのですが、use encoding "utf8";
を書くとローカルで文字化けしてしまいます。これをコメントアウトすると
XREA.COMのサーバ上でScript Errorが発生してしまいます(しかもエラーログが見られない)。

ローカルでもXREA.COM上でも動くようにしたいのですがどうすればいいでしょうか。
コードはこんな感じです。

#!/usr/bin/perl
use strict;
use XML::DOM;
use encoding "utf8";

my $xhtml_file = $ENV{'PATH_TRANSLATED'};
my $parser = new XML::DOM::Parser;
my $doc;
eval { $doc = $parser->parsefile($xhtml_file) };
if($@) {
print "Content-Type: text/plain;charset=utf-8\n\n";
print "parsing error occured: $@";
exit;
}

# 広告挿入処理

print "Content-type: application/xhtml+xml;charset=utf-8\n\n";
print $doc->toString;
$doc->dispose;

ローカルの環境はUbuntu 8.04 + Perl 5.8.8 + Apache 2.2.8、
XREA.COMはよくわかりません。

634 名前:nobodyさん mailto:sage [2008/05/30(金) 12:22:33 ID:???]
>>632
だれも「mapが不便」なんて言ってないがな
明らかにバッドノウハウなコードを曝してる奴をくさしてるだけで

635 名前:nobodyさん mailto:sage [2008/05/30(金) 12:23:13 ID:???]
すみません。自己解決しました。use encoding "utf8";をコメントアウトして
utf8::is_utf8($doc->toString) ? print encode('utf-8', $doc->toString) : print $doc->toString;
とすればいいみたいです。utf8フラグというのが関係しているみたいなので、
調べてみます。おさわがせしました。

636 名前:nobodyさん mailto:sage [2008/05/30(金) 12:40:26 ID:???]
>>635
これはマジメに調べまくった方がいい。
慣れるまでPerl5.8以降でハマる最大の原因。

637 名前:nobodyさん mailto:sage [2008/05/30(金) 12:50:11 ID:???]
BOM付けてたりして・・・

638 名前:nobodyさん mailto:sage [2008/06/01(日) 07:19:24 ID:???]
BOMBなら付いてますw

639 名前:nobodyさん mailto:sage [2008/06/02(月) 12:34:35 ID:???]
Wed, 12 Mar 2008 21:20:11 GMT
Last-Modified↑これをtimeの値に変換する方法を教えてください。
3600秒以内とかの判定に使いたいので。

640 名前:nobodyさん mailto:sage [2008/06/02(月) 12:49:16 ID:???]
>>639
timelocal

641 名前:nobodyさん mailto:sage [2008/06/02(月) 12:57:39 ID:???]
>>640
ありがとうございました!



642 名前:nobodyさん mailto:sage [2008/06/02(月) 13:51:21 ID:???]
こんな感じで出来たのですが凄く格好悪いです。
$mon = 1 if $mon eq 'Jan';とか。
スマートな例があったら参考の為に見せてください。

sub last_modified {
my $time = shift;
my($day, $mon, $year, $hour, $min, $sec);
if ($time =~ /\w+, (\d+) (\w+) (\d+) (\d+):(\d+):(\d+) GMT/) {
($day, $mon, $year, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6);
$mon = 1 if $mon eq 'Jan';
$mon = 2 if $mon eq 'Feb';
$mon = 3 if $mon eq 'Mar';
$mon = 4 if $mon eq 'Apr';
$mon = 5 if $mon eq 'May';
$mon = 6 if $mon eq 'Jun';
$mon = 7 if $mon eq 'Jul';
$mon = 8 if $mon eq 'Aug';
$mon = 9 if $mon eq 'Sep';
$mon = 10 if $mon eq 'Oct';
$mon = 11 if $mon eq 'Nov';
$mon = 12 if $mon eq 'Dec';
} else {
die "Error: $time\n";
}
$time = timelocal($sec,$min,$hour,$day,$mon-1,$year);
return $time;
}


643 名前:nobodyさん mailto:sage [2008/06/02(月) 14:47:28 ID:???]
>>642
%mons = (
Jan => 1, Feb => 2, Mar => 3, Apr = 4, # ……以下省略
);
$mon = $mons{$mon};

とかどうよ?

644 名前:nobodyさん mailto:sage [2008/06/02(月) 15:22:18 ID:???]
>>643
ありがとうございます。
連想配列は普段全く使わないので、この機会に試してみます!

645 名前:nobodyさん mailto:sage [2008/06/02(月) 15:44:50 ID:???]
>>643は、どうせ後で1引くのに、どうしてわざわざ1足すのさ?w

646 名前:nobodyさん mailto:sage [2008/06/02(月) 16:15:30 ID:???]
>>645
ほんとだ><
お前頭いいな
すみません><

647 名前:nobodyさん [2008/06/02(月) 17:46:33 ID:VCfcjQkN]
CPANを使わずにモジュールを使いたいのですが、なかなかうまくいきません。
HTML::Template を使いたいのですが、

ローカルにインストールしている、
C:\Perl\cpan\build\HTML-Template-2.9\Template.pm
というファイルを、以下のcgiと同ディレクトリにコピーしました。

#!/usr/local/bin/perl
use strict;
use lib qw(.);
use HTML::Template;
print "Content-type:text/html\n\n", "test";

ですが、うまくいかないようです。
use lib qw(.); の部分を、
unshift @INC, '.';
などとしても不可能でした。
ググっても上記の方法ぐらいしか出てこないんですが、何がいけないか教えていただけますでしょうか。
Perl のバージョンは 5.00503 です。

648 名前:nobodyさん mailto:sage [2008/06/02(月) 17:51:49 ID:???]
Template.pmをHTMLというディレクトリを作ってそこにいれる

649 名前:nobodyさん [2008/06/02(月) 18:08:23 ID:VCfcjQkN]
>>648
ありがとうございます。
助言どおりHTML ディレクトリにTemplate.pmを入れて、エラーが出たので、
Digest::MD5がどうだとかエラーが出ました。
同じ要領で、Digest ディレクトリを作り、MD5.pmを入れると、
次はXSLoader.pmが必要らしく、それもcgiと同ディレクトリに入れました。
次はDynaLoader.pmがどうとかエラーが出たので、それも同じディレクトリに入れたのですが、
今度はエラーが消えませんでした。。
最終的にCGI::Carpがはいたエラーは以下です。

[Mon Jun 2 18:01:45 2008] Template.pm:
[Mon Jun 2 18:01:45 2008] Template.pm:
[Mon Jun 2 18:01:45 2008] MD5.pm:
[Mon Jun 2 18:01:45 2008] MD5.pm:
[Mon Jun 2 18:01:45 2008] DynaLoader.pm: Can't locate loadable object for module Digest::MD5 in @INC
(@INC contains: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 .) at HTML/Template.pm line 915
[Mon Jun 2 18:01:45 2008] Template.pm:
[Mon Jun 2 18:01:45 2008] Template.pm: BEGIN failed--compilation aborted at HTML/Template.pm line 915. BEGIN failed--compilation aborted at test.cgi line 6.

650 名前:nobodyさん mailto:sage [2008/06/02(月) 18:17:18 ID:???]
CPAN にモジュールの関連性とか書いてなかったっけ?

651 名前:nobodyさん mailto:sage [2008/06/02(月) 18:18:22 ID:???]
関連性とかじゃなくて依存のこと



652 名前:nobodyさん [2008/06/02(月) 18:25:00 ID:VCfcjQkN]
q.hatena.ne.jp/mobile/1195733487
↑必要としているモジュールは違うものの、
この人と同じ状況なのかな、と思うんですがどう思いますか?

同じ状況だとすると、不可能ですよね
FTPであげることしかできませんので。。。

653 名前:nobodyさん mailto:sage [2008/06/02(月) 18:41:40 ID:???]
呼び出されてるDLLがWin用のコンパイル済みDynaLoader.pmを、Linuxにそのままコピーしたんでしょ? たぶん。
Linuxでコンパイルし直さないとムリ。よってムリ。

654 名前:nobodyさん [2008/06/02(月) 18:45:29 ID:VCfcjQkN]
あぁ・・・やはり無理ですか。

5.00503で使えるHTML::Templateの代わりのようなものがほしいんですが、
どこを探せばいいでしょうか。
何度も申し訳ありません。

655 名前:nobodyさん [2008/06/02(月) 18:52:18 ID:VCfcjQkN]
HTML::Templateの昔のバージョンとかなら5.00503でも動きますかね?

656 名前:nobodyさん mailto:sage [2008/06/02(月) 18:56:19 ID:???]
その知識だと、HTML::Templateなんて必要ないじゃん!的な使い方しかしてしないと予想されるので、
自前でテンプレート化した方が早い。

スキン対応と銘打ってる配布CGIのソース読んだ方が早い気がする。

657 名前:nobodyさん mailto:sage [2008/06/02(月) 18:59:25 ID:???]
HTML をテンプレート使って出力するようにすると病み付きになる

658 名前:nobodyさん mailto:sage [2008/06/02(月) 19:03:56 ID:???]
5.005のこと詳しくしらないけど、DynaLorderとかって、標準で入ってないの?
ってか、>>649の内容を見るに、DynaLorderでわなくて、Digest::MD5(.so)が無いんでないの?(これも標準でない?)

まあなければ、Digest::MD5はXSモジュール含んでるから、
そのサーバー上でコンパイルし直さないと実行できないのは、>>653と同じ意見だけど。

659 名前:nobodyさん [2008/06/02(月) 19:07:00 ID:VCfcjQkN]
PerlってHTMLと親和性ないですよね〜。
テンプレート使えないとなると、めんどくさくなるけど、まぁがんばります。
ありがとうございました。

660 名前:nobodyさん mailto:sage [2008/06/02(月) 19:49:04 ID:???]
自分の未熟さを言語のせいにするなよw
HTMLと最も親和性のある言語として、Perl/CGIが一世風靡しただろ。

661 名前:nobodyさん mailto:sage [2008/06/02(月) 19:51:49 ID:???]
>>657
kwsk



662 名前:nobodyさん mailto:sage [2008/06/02(月) 19:59:46 ID:???]
>>661
ちょっとかじった程度の人でもデザイナーとプログラマを切り分けられる利点がある

663 名前:nobodyさん [2008/06/03(火) 00:57:17 ID:etSjPPZK]
PostやGetで送られてきたURIエンコードをデコードしてハッシュに確保するような
プログラムを作ったのですが
HTMLのformでenctypeをmultipart/form-dataにすると
送られてくるデータの形式が変わってしまって
うまくハッシュに確保することができなくなっちゃいました。

送られてきたデータが
multipart/form-dataなのか
application/x-www-form-urlencodedなのか
調べる方法ってありますか?

ついでに、multipart/form-dataで送られてきたデータの扱い方を
まとめてあるサイトとかありましたら教えてほしいです。

664 名前:nobodyさん mailto:sage [2008/06/03(火) 01:01:53 ID:???]
multipart/form-data って文字があるのか application/x-www-form-urlencoded って文字があるのかで簡単に判別着く
multipart/form-data の処理は CGI.pm 使ってね♪

665 名前:nobodyさん mailto:sage [2008/06/03(火) 01:12:56 ID:???]
>>663
CGI.pm ならどちらの形式でも意識せず受け取れる。
perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod

自前実装したいのなら
www.studyinghttp.net/cgi-bin/rfc.cgi?3875#Sec8.2
www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.4.1
www.studyinghttp.net/cgi-bin/rfc.cgi?2388

666 名前:nobodyさん [2008/06/03(火) 01:24:31 ID:etSjPPZK]
>>665
ありがとう!

667 名前:nobodyさん mailto:sage [2008/06/03(火) 01:58:53 ID:???]
>>659
テンプレートエンジン、自分で作るという手もある。
そんなに難しくないよ。
Compositeパターンでも使えば。


668 名前:nobodyさん mailto:sage [2008/06/03(火) 09:41:38 ID:???]
>>659
HTML をふつうに書く
HTML なかに <%BODY%> とか、挿入場所を示す識別子をいくつか用意して書き込む
プログラムからテンプレート HTML を読み込む
正規表現で置換

たったこれだけです。


669 名前:nobodyさん mailto:sage [2008/06/03(火) 11:07:04 ID:???]
Template::Toolkitならともかく
HTML::Templateは単純な処理だしね
さくっと使いたい時には便利、無けりゃ無いでどうにでもなる

670 名前:nobodyさん [2008/06/03(火) 12:56:41 ID:K4KbdDUT]
Perlでindex.cgiを作って
そのCGIですべてを管理するような仕組みを作った場合
やっぱindex.cgiにアクセスが集中してよくなかったりするんですか?

671 名前:nobodyさん mailto:sage [2008/06/03(火) 13:31:41 ID:???]
index.cgi で処理させる内容を挙げてくれないとまったくわからない

自分は普通のエディタ (関数へのジャンプとか無くて色分けだけ) なので
まったく違う処理はファイル分けてる



672 名前:nobodyさん mailto:sage [2008/06/03(火) 17:01:51 ID:???]
多分聞きたい事って、hoge1.cgiとhoge2.cgi…hoge100.cgiとかあったら
それぞれ頭で同じ事やってるから、all.cgi(index.cgi?)に全て
まとめられないか?って事じゃないのかな?
 my $cgi = CGI->new();
 my $config = init();
 if( $cgi->param('mode')eq'hoge1' ) {
  require 'hoge1.pl';
  hoge1::main($config);
 } elsif( $cgi->param('mode')eq'hoge2' ) {
  require 'hoge2.pl';
  hoge2::main($config);
…って、感じで。漏れも昔、初心者だった時に同じ事を思った。

答えは、当然all.cgi(index.cgi?)の呼び出しのオーバーヘッドは
全CGIの呼び出し回数倍増えるよ。

そういう事じゃなくて??


673 名前:nobodyさん mailto:sage [2008/06/03(火) 17:44:51 ID:???]
>>670
俺それやってる
wikiみたいに書けるテキストファイルを自動で携帯/PCに最適化してValid XHTML出力する、みたいな。

674 名前:nobodyさん mailto:sage [2008/06/03(火) 17:56:29 ID:???]
bloxsomだっけ?

675 名前:nobodyさん mailto:sage [2008/06/03(火) 19:41:27 ID:???]
perl関連のプロジェクトは企画倒れが本当に多いね。
企画倒れというより、制作者が途中で飽きて、ブームになっても、そのまま放置……みたいな。
かのCPANだって、一部のモジュール以外は、姥捨山みたいになってる。
古いモジュールに、パッチ送ってもメール不達とか多すぎるんだよ!

676 名前:nobodyさん mailto:sage [2008/06/03(火) 20:52:43 ID:???]
tp://www.drk7.jp/weather/
ここの 東京の xml から加工を行っています。
最終的には明日の天気を出力したいのですが、以下のコードを書いたところ
気温や降水確率が出力されなくて悩んでいます。

================================================
use XML::TreePP;
use strict;

my $tpp = XML::TreePP->new();
my $tree = $tpp->parsefile( '13.xml' );

print $tree->{weatherforecast}->{pref}->{area}->[1]->{info}->[1]->{weather} , "\n";
print $tree->{weatherforecast}->{pref}->{area}->[1]->{info}->[1]->{temperature}->{range}->[1];
================================================

{range}->[1] で %hash と言われてしまうのはどうしてでしょうか。
その後に [1]->{-centigrade} をするとこの場合は min が出てくるのは判っています。

677 名前:nobodyさん mailto:sage [2008/06/03(火) 21:13:48 ID:???]
[1]->'#text'

ダンプしろよ

678 名前:nobodyさん mailto:sage [2008/06/03(火) 21:21:10 ID:???]
print $tree->{weatherforecast}{pref}{area}[1]{info}[1]{temperature}{range}[1]{#text}
manual嫁。
あと、XMLの中にareaやinfoやrangeの要素が1つしか無い場合に配列要素に
ならないのがTreePPの仕様なので、例えばinfoが1要素しか無い場合は
print $tree->{weatherforecast}{pref}{area}[1]{info}{temperature}{range}[1]{#text}
とアクセスしなくてはいけない。オプションで回避できるけど。


679 名前:670 [2008/06/03(火) 22:25:48 ID:etSjPPZK]
言葉が足りんでした。スミマセン。

>>673
ちょっと俺の勉強不足で言ってることがよくわからないけれど

例えばindex.cgi?page=homeだとhome.htmlをcgiプログラムが引っ張ってきて表示する
みたいな仕組みを作った場合、
どのユーザーがどのページを見てもindex.cgiに必ずアクセスするわけじゃない?
てことはページが1000ページとかできたとして
いろんな人がいろんなページを見出したらindex.cgiのアクセスが集中して
なんかまずいことになったりしないのかなって思ったの。

教えてLarry!!

680 名前:nobodyさん mailto:sage [2008/06/03(火) 22:40:04 ID:???]
つか、ほとんどのWEBアプリケーションは、特定ファイルに負荷集中するがな。

681 名前:670 [2008/06/04(水) 00:28:11 ID:KcodebuX]
>>680
あ、じゃあ余計な心配しなくて大丈夫かぁ



682 名前:nobodyさん mailto:sage [2008/06/04(水) 01:09:20 ID:???]
つ mod_perl

683 名前:nobodyさん mailto:sage [2008/06/04(水) 05:38:01 ID:???]

A:opendir でファイル一覧を取得する

B:予めファイル一覧をそれ用のメモファイルに書き出しておいてそれを読みこんで取得

AとBではどちらが負荷が少ないですか?



684 名前:nobodyさん mailto:sage [2008/06/04(水) 06:05:53 ID:???]
自分で調べられる手間を人に仮託するな。

685 名前:nobodyさん mailto:sage [2008/06/04(水) 08:14:25 ID:???]
>>670
>>672に答えが書いてあるのだが、何故それを無視する?

686 名前:nobodyさん mailto:sage [2008/06/04(水) 10:13:14 ID:???]
どなたか教えてください。

掲示板のタイトル一覧取得を現在作っています。
それでタイトルがもし長かった場合、最初の9byteだけを表示するようにしたいのですが・・・

if (length($title) > 9) { $get = substr($title[3],0,9); }


以上のようにしてしまうと、9byte目に全角文字が来た場合文字化けしてしまいます。
例えば、

$title = "testtesttest";  この場合は $get = testtestt

$title = "テストテスト"; これだと $get = テストテ爛


こういった文字化けを回避するような、いい方法は無いでしょうか?

687 名前:nobodyさん mailto:sage [2008/06/04(水) 10:15:53 ID:???]
jfold

688 名前:686 mailto:sage [2008/06/04(水) 10:27:56 ID:???]
2分での光速のお返事ありがとうございます。

調べてみたところ、Jcode.pmのモジュールみたいですね。
今までずっとjcode.plばっかだったので知らなかった…

さっそく試してみます。
どうもありがとうございました。

689 名前:670 [2008/06/04(水) 13:24:15 ID:44uKn/lk]
>>685
スミマセン基地外でした。

690 名前:nobodyさん [2008/06/05(木) 00:08:18 ID:S7Nj2GEO]
ところでさ…何故elsifなんだと思う?
どうせならifにあわせてelとefとか2文字にしてほしかったん

691 名前:nobodyさん mailto:sage [2008/06/05(木) 00:28:25 ID:???]
ごめんなさいごめんなさい



692 名前:nobodyさん mailto:sage [2008/06/05(木) 22:21:15 ID:???]
Cか何かでやってる人いたな。

693 名前:nobodyさん mailto:sage [2008/06/05(木) 23:21:13 ID:???]
最近5.10を使うようにしてんだけどgiven-whenが馴染めない
switch-caseでいいと思うのになんでgiven-whenにしたのかな?Switch.pmがあるから?

694 名前:nobodyさん mailto:sage [2008/06/06(金) 01:28:23 ID:???]
>>693
pc11.2ch.net/test/read.cgi/php/1008355270/85
Perl の自然言語的体裁には switch-case より given-when の方が
よりしっくりくるかもね。

695 名前:nobodyさん [2008/06/07(土) 20:54:21 ID:8brPzE2o]
www.vid-dl.net/

このサイトに
v.youku.com/v_show/id_ch00XMjc3MDQ1MzI=.html
を入力するとリンク先が4つほどでます。

これを自分でもPerlCGIで再現したいんですが、4つのリンク先をどうやって出してるのかわかりません。
HTMLのソースを見る限り4つないんです。
ないものを何かを元にして解析?してるようです。
4つの違いは以下です

f.youku.com/player/getFlvPath/sid/12008536434684686883/st/flv/fileid/までは一緒以下が

0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9
0200640401482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9
0200640402482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9
0200640403482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9

です。
<a charset="400-002-2-4" href="javascript:sendVideoLink('XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9');">??</a>
これが大本でこれを解析してるんでしょうか。
こういうのはどうやって解析すればいいのでしょうか?

よろしくお願いします。

696 名前:nobodyさん mailto:sage [2008/06/07(土) 21:00:16 ID:???]
一部の0に1足してるだけじゃないの?

697 名前:nobodyさん [2008/06/07(土) 21:25:47 ID:8brPzE2o]
>>696
ですが4つとは限らないんです。
このビデオは4つですが、者によっては8つとかになります。
それをどうやって特定してるのかがわかりません。

698 名前:nobodyさん mailto:sage [2008/06/07(土) 21:33:39 ID:???]
>>697
youkufireかなんかAPI使ってるんだろ。
Perlとは関係ないな。

699 名前:nobodyさん [2008/06/07(土) 21:43:36 ID:8brPzE2o]
>>698
???
それではyoukufireではどうやってやってるんでしょうか?

こういうのってどういうスレに行くと知ってる人がおられるのでしょうか?
フラッシュ関連なのでしょうか?
自分はPerlをかじる程度しか知らないのでついここに来てしまったのですが。


アドバイスお願いします

700 名前:nobodyさん mailto:sage [2008/06/07(土) 22:34:21 ID:???]
HTTPに関して勉強して下さい。
全くのスレ違いです。

701 名前:nobodyさん [2008/06/07(土) 22:55:37 ID:8brPzE2o]
http???
他で質問してみます。ありがとうございました。



702 名前:nobodyさん mailto:sage [2008/06/07(土) 23:03:35 ID:???]
いや、どこで質問しても無駄だと思うよ。
結局、HTTPレスポンスを解析する必要があるから。

そして、HTTPレスポンスの意味を把握するには、
sidなどユニークなIDのパターン解析と
youkuで使われてるファイル取得swfの内部解析も必要。

この意味が分からない次元じゃ、到底ムリ。

703 名前:nobodyさん [2008/06/07(土) 23:36:39 ID:8brPzE2o]
なるほど。
www.kasai.fm/perlHTTP/
www.kasai.fm/perlHTTP/decode.html
からとりあえずそのhttpレスポンスとやらを実際に見てみようと思いましたが。

どうもCan't locate BASE64 in @INC エラーがでまして。
このモジュールをactiveperl5.8.1のppm(リポジトリは初期状態のまま1つです)でいれようとしましたが
ない模様です。

MINE::Base64って自分でコンパイル?でしたっけができないとダメなものなのでしょうか。


704 名前:nobodyさん [2008/06/07(土) 23:53:12 ID:8brPzE2o]
すいません
getHTTPの

#use MIME::Base64;
require('BASE64');

use MIME::Base64;
#require('BASE64');
にしたらエラーが出ませんでした。動いてるかはわかりませんが。

705 名前:nobodyさん mailto:sage [2008/06/08(日) 00:05:22 ID:???]
MIME::Base64は標準モジュールだ。
というか、質問内容が初心者未満の単なる教えて君だぞ。
最低限、ドキュメント読むかググってから書き込め。

706 名前:nobodyさん [2008/06/08(日) 00:14:24 ID:Mcg1bojL]
そうなんですか。とりあえずperlでwebページを読み込む実験は成功しました。
そこからフラッシュのURLを抜き出すところまではできそうです。

>sidなどユニークなIDのパターン解析と
>youkuで使われてるファイル取得swfの内部解析も必要。

これを検索とか意味を探してきます。

707 名前:nobodyさん mailto:sage [2008/06/08(日) 14:55:02 ID:???]
オブジェクトにメソッドを足すにはどうしたらいいでしょうか?

package foo;
*{foo::hoge::bar} = sub {1};
$hoge = foo->hoge;
$hoge->bar();
Can't locate object method "hoge" via package "foo"

アレ?

708 名前:nobodyさん mailto:sage [2008/06/08(日) 16:56:29 ID:???]
>>707
基本から一通り勉強し直したらいいんじゃないかな。
www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html
www.kt.rim.or.jp/~kbk/perl5.005/perlobj.html

709 名前:nobodyさん mailto:sage [2008/06/08(日) 18:03:33 ID:???]
>>708
サンクス

最後のページ
Summary
なすべきこと。今、あなたは部屋を出てオブジェクト指向方法論に関する書籍を購入して、そして六ヶ月かそこらの間悩む必要があるでしょう。

ワロタ

710 名前:nobodyさん [2008/06/08(日) 18:41:29 ID:NYonUevm]
うーん継承させても
hoge {
$this = shift;
return $this;
}

bar{1}

hoge->bar()ってやったら呼べるんだけどbarはhogeと同じ空間にあるのが変というか
つまり単純化するとこんな感じ。

*{foo::hoge::bar} = sub {1};
print foo->hoge->bar(); エラー
print foo::hoge::bar->(); 動くが気もい

*{foo::hoge::bar} = sub {1}; #もっとキモイ
$top = foo::hoge;
print eval ($top ."::bar");

勉強してきます
しかしあんま資料ないっぽい

711 名前:nobodyさん mailto:sage [2008/06/08(日) 18:52:18 ID:???]
OOPじゃなくて、perlの基本からやり直しては。
*{foo::hoge::bar} じゃなくて *{foo::bar}
hogeなんていうpackage作ってないし。





712 名前:nobodyさん mailto:sage [2008/06/08(日) 19:09:16 ID:???]
> hogeなんていうpackage作ってないし。 !
それだ! ありがとうやっとわかったよ。
てっきり package a::b::c;
ってやると

a
a::b
a::b::c

ってのが自動的に生成されると思ってた。


713 名前:nobodyさん mailto:sage [2008/06/08(日) 20:02:49 ID:???]
パッケージじゃなくてオブジェクトに生やしたいの?
見かけ上はできるけだろうけどPerlのオブジェクトは名前空間に変数結び付けてるだけだからなあ

と思ったけどもう一度勉強した方が良さげだね

714 名前:nobodyさん mailto:sage [2008/06/08(日) 20:20:35 ID:???]
Perl DBI MySQL

CGIであるデータをホームページ上に表示することをやっています。
5000件ほどのデータをfetchrow_arrayで1行ずつフェッチしていますが
どうもフェッチ処理に時間がかかっているようです。
実際に必要なのは20件ほどで、他はページ送りで表示可能。
検索エンジンの検索結果ページなんかをイメージしていただければ。

そこで、不要なフェッチを無くすために、
複数行を飛ばしてフェッチすることってできますか?

もし他に改善策があれば教えてください。
一応、SELECTの段階で20件だけを取り出す方法を思いつきました。

715 名前:nobodyさん mailto:sage [2008/06/08(日) 20:39:35 ID:???]
>> 714 @array の展開はコスト食うのでやめたほうがいいかもね。
@arrayの高速操作が必要ならスライス操作とか調べてみると吉
SELECTで絞れるなら断然そっちのほうが早いと思うよ。





716 名前:nobodyさん mailto:sage [2008/06/08(日) 22:10:54 ID:???]
>>715
ありがとうございます。
スライス操作調べてみました。SELECTでLIMITつければいいんですかね?
これで必要な分だけのフェッチですみましたが、どうも時間がかかるようです。
ちょっと複雑なSQL文なんでそっちのほうがボトルネックのようですorz
SQL文のほうを考え直そうと思います。

717 名前:nobodyさん mailto:sage [2008/06/09(月) 12:35:45 ID:???]
SELECT SQL_CALC_FOUND_ROWS * FROM $table LIMIT ( $page*20+1 ), 20;
SELECT FOUND_ROWS();

>>715
>>716はSQLの話じゃなくて、
大規模の配列使うなって話で、
my @temp = splice( @array, 0, 20 );
的なことでしょ。

SQL文はスレ違い。

718 名前:nobodyさん mailto:sage [2008/06/09(月) 15:41:11 ID:???]
もうメンドクセーから、bind_columns()とfetch()にすれば?
生えーぞ。

719 名前:nobodyさん mailto:sage [2008/06/09(月) 16:00:10 ID:???]
生いいよね

720 名前:nobodyさん [2008/06/09(月) 19:29:41 ID:BYZvhcIN]
LIMITしらねーとか そんなレベルなら
其の都度ひっかかって質問するより勉強したほうがはやいよ
リファレンスページみっけてプリントアウトしとけ

721 名前:nobodyさん mailto:sage [2008/06/09(月) 23:24:50 ID:???]
122
11
11000
↑これをソートすると

11
11000
122
↑こんな風になってしまいます。

11
122
11000
↑こんな感じで大きい順にソートする方法を教えてください。



722 名前:nobodyさん mailto:sage [2008/06/09(月) 23:26:19 ID:???]
sort { $a <=> $b } ( 122, 11, 11000 ) ;

723 名前:nobodyさん mailto:sage [2008/06/09(月) 23:36:47 ID:???]
>>722さん、ありがとうございました。

724 名前:nobodyさん mailto:sage [2008/06/13(金) 02:38:01 ID:???]
ファイルのアップロードについて質問です

*** form.html ***
 <input type="file" name="gazou1">
 <input type=その他 ...>

*** form.cgi ***
use CGI;
$q = new CGI;
@names = $q->param();
foreach $name (@names) {
 $value = $q->param($name);
 if (input type が file だったら ) {
  ファイル受信処理
 }
 なんらかの配列に格納
}
と、したいのですが、
inputのtypeは調べられないのでしょうか?
inputのnameで判断するしかないのでしょうか?

725 名前:nobodyさん mailto:sage [2008/06/13(金) 09:17:11 ID:???]
>>724
ブラウザから渡されるデータ自体に type 属性の値が含まれて
いないのだから、CGI プログラム上から調べる事はできない。

ref $value でアタリを付ける事はできる。
perldoc.jp/docs/perl/5.10.0/perlfunc.pod#item_ref_EXPR_ref_reference
perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod
(「ファイル・アップロード・フィールドの作成」の項)

726 名前:nobodyさん mailto:sage [2008/06/13(金) 10:25:57 ID:???]
@id には ( '101','106','112','130','150') などと入っており
$unit->{101}->{point} = 2.5;
$unit->{130}->{point} = 6.2;
$unit->{150}->{point} = 3.2;

と代入してあります

このポイント(2.5、6.2等)を元にして@idをソートしたいのですが

@id = sort { $unit->{$_}->point <=>$unit->{$_}->point } @id

とまで考えて、$aや$bをどのように使ったら良いのか分らなくなりました
よろしかったらどのように表記したら良いのか教えてください


727 名前:nobodyさん mailto:sage [2008/06/13(金) 10:51:23 ID:???]
>>726
>>3

728 名前:726 mailto:sage [2008/06/13(金) 11:00:28 ID:???]
ありがとうございます
Perlメモはいつも参考にさせて頂いてまして
・複数の項目でソートする
・自分で決めた順番でソートする
の応用でなんとかなるかと思ったのですが
どうにも分らずこちらでお伺いしました次第です
どの辺りを応用すればよろしいでしょうか?

729 名前:726 mailto:sage [2008/06/13(金) 11:18:24 ID:???]
・複数の項目でソートするを応用して(まんまかも)
先にmapでポイントの配列を作る事でなんとか出来ました

@id = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [$_,$unit->{$_}->{point} ] } @id

ありがとうございました
そしてお騒がせ致しました


730 名前:nobodyさん mailto:sage [2008/06/13(金) 11:37:27 ID:???]
@id = sort { $unit->{$a}->{point} <=> $unit->{$b}->{point} } @id

731 名前:724 mailto:sage [2008/06/13(金) 12:09:38 ID:???]
>>725
やはりtypeは知りようがないのですね。
ご回答ありがとうございました。



732 名前:726 mailto:sage [2008/06/13(金) 12:41:47 ID:???]
なるほど、$_ がキーになる場合はそこが$a,$bの対象になるんですね
コードがすっきりしました
>>730さん、ありがとうございます


733 名前:nobodyさん mailto:sage [2008/06/13(金) 12:51:42 ID:???]
>>732
sortでなんで$_がでてくるのかわからない。$aと$bしかないだろ。
grepやmapと混乱してないか?

734 名前:726 mailto:sage [2008/06/13(金) 13:06:56 ID:???]
Perlメモのを応用しようとしていじくりまわして
>>726のソースに間違えて辿り付いたので勘違いしてました
てっきり配列の要素を引っ張り出したらそれが$_になるのかと・・・
で、$a,$bはそれが直接比較の対象にならないといけないのかと勘違いしてました orz


735 名前:nobodyさん mailto:sage [2008/06/14(土) 03:33:00 ID:???]
俺も今多次元ハッシュ使ってるけどコツがわかると便利で気に入ってる。

736 名前:nobodyさん mailto:sage [2008/06/15(日) 00:12:38 ID:???]
ちょっとした構造体風の物を作るのにいいよね
リファレンスで受け渡しも簡単だし


737 名前:nobodyさん mailto:sage [2008/06/15(日) 01:14:21 ID:???]
WinXPPro+Cygwin、iswebでperlを作成しています。
普段は問題なく動いているのですが、自宅で試したperlをiswebにアップロードする作業が面倒でたまりません。
そこで質問なのですが、
#!/usr/local/bin/perl
とかの表記を書き換えずとも、上記二つの環境の両方で動くように出来ないでしょうか。
毎度毎度アップロードするときに、全cgiを書き換えているので、そこだけでも何とかしたいんです。
もしくは、専用のFTPソフトみたいなので、アップと同時に書き換えてくれるような奴があると良いなぁって思ってます。

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

738 名前:nobodyさん mailto:sage [2008/06/15(日) 01:43:19 ID:???]
それこそローカルと同期させる専用FTPクライアントをPerlで作れよw
Net::FTP使えば、30分程度で作れるだろ。

739 名前:nobodyさん mailto:sage [2008/06/15(日) 01:43:42 ID:???]
っ coLinux
っ ActivePerl をC:\usr\local\以下にインストール

っ 「メンドクセーっ! 頭 #!perl に統一してやんよ。」(Path通ってなかったら知らん)

740 名前:738 mailto:sage [2008/06/15(日) 01:45:20 ID:???]
単純にPerlのパスが違うって問題なら、
XPでエイリアス作れるようにするソフト使って、iswebに合わせればいい。

741 名前:nobodyさん mailto:sage [2008/06/15(日) 01:52:33 ID:???]
>>737

■サーバー

#!/usr/local/bin/perl

require "example.cgi";

■ローカル

#!C:/perl/bin/perl

require "example.cgi";


これなら、example.cgi をアップするだけでOKです。
(意味が違うでしょうか??)




742 名前:nobodyさん mailto:sage [2008/06/15(日) 02:10:08 ID:???]
>>738-741
どうも、有難うございます。
>>741さんのが一番楽そうなので、それでいこうと思います。

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

743 名前:nobodyさん mailto:sage [2008/06/15(日) 14:41:47 ID:???]
Perlでコードを書き始めたばかりの物なのですが、基本が少し分からないので質問させて下さい。

PerlでCGIを作っているのですが、いくつかのフォームから入力を取ろうと考えています。
フォームが一箇所ではないので(検索や書き込み、削除等)、送られて来る処理が全く違うため、
送られて来たフォームによって処理を変えたいです。
例えば、検索ならこの関数、書き込みならこの関数、のように分けたいのですが、どのように
実装するのがスマートな方法でしょうか?
考えているのはhiddenで、フォーム別の値を持っておきその値によって分岐しようと思っている
のですが、他にスマートな方法があれば知りたいです。

宜しくお願いします。


744 名前:nobodyさん mailto:sage [2008/06/15(日) 14:43:16 ID:???]
>hiddenで、フォーム別の値を持っておきその値によって分岐
これが一番一般的で分かり易いと思うよ

745 名前:nobodyさん mailto:sage [2008/06/15(日) 15:43:06 ID:???]
ところでお前ら、
postとらgetを使うときのデバッグってどうしてる?
コマンドラインからPOSTを設定する方法とかあるの?

めちゃめちゃ大変なんだが

746 名前:nobodyさん mailto:sage [2008/06/15(日) 17:13:16 ID:???]
>>743

仕様によりますが、動作の種類によって、
スクリプトそのものを分けてしまうのはどうでしょう。


747 名前:nobodyさん mailto:sage [2008/06/15(日) 17:51:51 ID:???]
受け取った値も表示するようにするかテキストに吐かせてるだけだけど、
そんなに面倒?

748 名前:nobodyさん mailto:sage [2008/06/15(日) 17:55:33 ID:???]
何をやってるのかよくわかんないけど、どうやってコーディングするかという問題より、
postでもgetでも、与えられる引数をちゃんとチェックすることで、自然と動作の分岐が行えると思うんだけど

749 名前:nobodyさん mailto:sage [2008/06/16(月) 02:30:03 ID:???]
質問者の想定とは違うかもしれないが、


 | ̄ ̄ ̄ ̄| [検索] [管理] [ほげほげ]
   ̄ ̄ ̄ ̄

みたいな感じなら、submit に文字列を仕込むという方法が。

750 名前:nobodyさん mailto:sage [2008/06/16(月) 10:59:18 ID:???]
でも文字化けという問題が...
ラジオかセレクト使えばいいと思う。
それかAjaxか

751 名前:nobodyさん mailto:sage [2008/06/16(月) 11:58:23 ID:???]
>>745
普通はユニットテスト用のロボット作るんじゃね?
使ってないけど、モジュールも何種類かあるはず。



752 名前:nobodyさん mailto:sage [2008/06/16(月) 12:17:52 ID:???]
じゃあ、まずは画面を見て情報を処理しキーボード操作する
ロボットのAIの開発からしなきゃだな。

753 名前:nobodyさん mailto:sage [2008/06/16(月) 12:26:02 ID:???]
>>752
そのAIのデバッグはどうするんですか。


754 名前:nobodyさん mailto:sage [2008/06/16(月) 12:53:21 ID:???]
ニワトリが先か タマゴが先か

755 名前:nobodyさん mailto:sage [2008/06/16(月) 23:32:06 ID:???]
真ん中をとってヒヨコが先だ

756 名前:nobodyさん mailto:sage [2008/06/17(火) 00:45:20 ID:???]
>>745
CGI.pm を使うなら
use CGI qw(-debug);

757 名前:nobodyさん mailto:sage [2008/06/17(火) 10:41:46 ID:???]
>>745

実際に色々な条件でPOST、GETさせてみて、
おかしくなったらそのつど、修正します。

あとは、スクリプトをWEB上にアップしている場合、
ユーザーの方からのバグ報告フォームを設けておくと、
問題発見が早くなります。


コマンドライン POSTで検索:
www.google.co.jp/search?hl=ja&rls=GFRC%2CGFRC%3A2007-04%2CGFRC%3Aja&q=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%80POST&lr=

758 名前:nobodyさん mailto:sage [2008/06/17(火) 12:33:48 ID:???]
>>757
500が帰ってきたとき、どこが悪いかどう見当つけてるかってはなしでしょ

759 名前:nobodyさん mailto:sage [2008/06/17(火) 14:47:07 ID:???]
なんでTest関係のモジュール使わないの?マゾなの?

760 名前:nobodyさん mailto:sage [2008/06/17(火) 16:37:40 ID:???]
世の中には君の環境と違う環境の人もいるのだよ

761 名前:nobodyさん mailto:sage [2008/06/17(火) 18:26:54 ID:???]
> 世の中には君の環境と違う環境の人もいるのだよ

意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ



762 名前:nobodyさん mailto:sage [2008/06/17(火) 18:42:33 ID:???]
> 意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ

意地はってないで、「詳しいことはわかりません!!」っていうのがオトナだよ


763 名前:nobodyさん mailto:sage [2008/06/17(火) 18:53:23 ID:???]
www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GFRC,GFRC:2007-04,GFRC:ja&q=perl+%e3%83%81%e3%82%a7%e3%83%83%e3%82%af

764 名前:nobodyさん mailto:sage [2008/06/18(水) 12:33:38 ID:???]
つまらん('A`)1

765 名前:nobodyさん mailto:sage [2008/06/18(水) 14:54:32 ID:???]
Encode::guess_encoding の結果が shiftjis or euc-jp ってなったときで困ってます。
guess_encoding のあとに $utf8 = $enc->decode($inputkeyword); とやってるのですが、エラーとなります。
「 or 」 で split して
my $utf8 = Encode::decode($EncType[0], $inputkeyword);
のようにしたりするのが一般的なんでしょうか?

それとも Encode::decode する際に優先順位を決めたり出来て、それで decode できちゃったりするもんでしょうか?

766 名前:nobodyさん mailto:sage [2008/06/18(水) 15:02:39 ID:???]
>>765
一般的かどうかは知らんが、俺は JEncode::_func_getcode() みたいな
ラッパーを書いて使っている。
www.donzoko.net/source/JEncode/JEncode.pm

767 名前:nobodyさん mailto:sage [2008/06/18(水) 15:25:31 ID:???]
>>766
ありがとうございます。
_func_getcode と _ambiguous、_test_mojicode を見ながら実装します。

768 名前:nobodyさん mailto:sage [2008/06/20(金) 01:13:32 ID:???]
@X0(a,b,c);
@X1(d,e,f);
と二つリストを作って、
$Y = int(rand(2));
で$Yに0か1を入れて、それに対応したリストを使いたいのですが、どうすればいいですか?
print "$X"$Y"[1]";
のような感じにしたいのですが…。

769 名前:nobodyさん mailto:sage [2008/06/20(金) 01:41:21 ID:???]
print @{'X'.$Y};

770 名前:nobodyさん mailto:sage [2008/06/20(金) 01:43:48 ID:???]
あ、スライスか
print @{'X'.$Y}[1];

771 名前:nobodyさん mailto:sage [2008/06/20(金) 01:53:59 ID:???]
>>770
カッコイー

こんな風にしてた。
$Y = 'X'. int(rand(2));
print ${$Y}[1];

横からスマソ



772 名前:768 mailto:sage [2008/06/20(金) 02:20:58 ID:???]
>>769-771
素早い回答ありがとうございます。

773 名前:nobodyさん mailto:sage [2008/06/20(金) 08:10:04 ID:???]
>>769-771
今時シンボリックリファレンスはやめとけ。
use strict;
my @X = [[a,b,c], [d,e,f]];
print $X[0]->[1]; # ==b ($X[0][1] とも書ける)
print $X[1]->[2]; # ==f

774 名前:770 mailto:sage [2008/06/20(金) 12:31:24 ID:???]
>>773
>>768に言ってくれ
前提条件に合わせてわかりやすく書いただけだ

775 名前:768 mailto:sage [2008/06/21(土) 17:41:30 ID:???]
昔やってたEBSってゲームを引っ張り出して弄ってる初心者なので、
バカの一つ覚え状態でかいてます><
>>773の書き方は始めてみました。
ありがとうございます。

776 名前:nobodyさん mailto:sage [2008/06/21(土) 17:48:55 ID:???]
ここらへんにいる連中にへりくだる必要ないと思うよ。

777 名前:nobodyさん mailto:sage [2008/06/21(土) 23:46:21 ID:???]
配列やハッシュでリファレンスを使うことを覚えると、かな〜り違うよ。


778 名前:nobodyさん mailto:sage [2008/06/22(日) 01:48:39 ID:???]
>>773
s[\[\[.*\]\]][([$1])]

779 名前:778 mailto:sage [2008/06/22(日) 01:49:38 ID:???]
s[\[\[(.*)\]\]][([$1])] # キャプチャし忘れたorz


780 名前:nobodyさん mailto:sage [2008/06/22(日) 02:10:15 ID:???]
perlにjavaの.propertiesファイルみたいなのはないでしょうか?
ちょっとしたデータをファイルの中にまとめておければ便利だと思っているのですが、
そのような奴があれば、助かります。どなたかご教授ください。

781 名前:nobodyさん mailto:sage [2008/06/22(日) 02:24:11 ID:???]
>>780
Data::Properties



782 名前:nobodyさん mailto:sage [2008/06/22(日) 13:05:18 ID:???]
外部コマンドの出力結果の取り込みがうまくいきません、なぜなんでしょうか?

open(COM_RET, "ping -n 10 192.168.100.1 |");
while ($data_line = <COM_RET>) {
print $data_line;
};
close(COM_RET);


783 名前:nobodyさん mailto:sage [2008/06/22(日) 13:27:13 ID:???]
なにも表示されないってこと?
pingコマンドは存在する?
openの後に$|=1;したら表示される?
for (`ping -n 10 192.168.100.1`){print;}ではどう?



784 名前:782 mailto:sage [2008/06/22(日) 13:28:07 ID:???]
すみません。
プログラムの保存先を間違えていました。

785 名前:nobodyさん mailto:sage [2008/06/25(水) 22:01:59 ID:???]
Google Wireless Transcoder経由でアクセスされるとpostで送信されてくる
フォームのデータがおかしくなってたことありませんか?
たとえば、なにも入力しなかったinputフォームの値が全て文字列の"VALUE"に
なったり・・・

786 名前:rubi [2008/06/26(木) 00:32:36 ID:P35F8OvT]
system関数で外部コマンドを実行する際、その引数にプログラム内で使用しているスカラ変数の内容を指定するのにはどうすればいいのでしょうか?


787 名前:nobodyさん mailto:sage [2008/06/26(木) 00:55:50 ID:???]
system($cmd $arg1 $arg2 ・・・);

引数中にスペース等ある時は、
system qq($cmd "$arg1" "$arg2" ・・・);

788 名前:nobodyさん mailto:sage [2008/06/27(金) 16:35:38 ID:???]
すみません知恵を貸してください。
こんなファイルがあります → 項目\tデータ\n

中には同じ項目でデータ違いがあります。
100\t百\n
100\t百円\n
100\t百円玉\n

同じ項目は一つで良いので一番データの短い100\t百\nを残して
残りの長い二行を削除したいと考えています。
何か良い方法は無いでしょうか。
短いデータのみ残したいので配列の重複削除サンプルは
そのままでは利用不可でした。

789 名前:788 mailto:sage [2008/06/27(金) 16:38:10 ID:???]
…と、そもそも重複ではないですね。
重複サンプル〜以下は忘れてください。

790 名前:nobodyさん mailto:sage [2008/06/27(金) 17:02:39 ID:???]
とりあえず書いてみろ

791 名前:788 mailto:sage [2008/06/27(金) 17:30:24 ID:???]
普段はスカラーと配列くらいしか使ってません。
項目もデータもバラバラなので方法が思いつかなくて。



792 名前:nobodyさん mailto:sage [2008/06/27(金) 17:41:01 ID:???]
連想配列

793 名前:788 mailto:sage [2008/06/27(金) 17:59:26 ID:???]
初めは$DATA{項目} = データ; で一つだけ残そうと考えました。
そうじゃなくて、連想配列にしてデータサイズでソートとかあるんでしょうか?
分かりません(><)

794 名前:nobodyさん mailto:sage [2008/06/27(金) 18:21:02 ID:???]
連想配列にしてデータサイズでソートすりゃいいだろ

795 名前:nobodyさん mailto:sage [2008/06/27(金) 18:27:40 ID:???]
書かないってことはまだなにも書けない状態ってこと?
まずはopenでファイル開けるの解かる?

796 名前:788 mailto:sage [2008/06/27(金) 18:50:29 ID:???]
>>795
連想配列に入れてみました。

my %DATA;
open R, "koumoku.txt" or die;
while (<R>) {
chomp;
my ($key, $value) = split(/\t/);
$DATA{$key} = $value;
}
close R;

データサイズでソートは後でググってみます。
項目ごとに最短データだけ残す方法は今の時点で想像できません。。

797 名前:nobodyさん mailto:sage [2008/06/27(金) 19:15:25 ID:???]
そこまで出来てるならあとは場合わけでしょ

if (exists $DATA{$key}){
length($DATA{$key}) > length($value) and $DATA{$key}= $value;
} else {
$DATA{$key}= $value;
}

798 名前:nobodyさん mailto:sage [2008/06/27(金) 19:47:44 ID:???]
>>797
食事してて遅れました。
そのままコピペしたのですが望むとおりです完璧です。
項目ごとに一番小さいデータが残る。凄い考え付かない。
本当にありがとうございました。

799 名前:nobodyさん mailto:sage [2008/06/28(土) 13:36:15 ID:???]
◆◆◆◆◆◆◆◆◆毎日新聞社による日本人への誹謗中傷◆◆◆◆◆◆◆◆◆

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
 www8.atwiki.jp/mainichi-matome/

つまり日本人なら
www.vipper.net/vip552788.jpg

800 名前:nobodyさん [2008/06/29(日) 21:21:31 ID:ib7dTQ8m]
シンタックスハイライト用のモジュールでオススメってありますか?
Syntax::Highlight::Engine::Kateはちょっと好みじゃなかったのと、
Text::Highlightは今のところ使い方が分からないの。


801 名前:nobodyさん mailto:sage [2008/06/29(日) 21:37:01 ID:???]
Text::VimColor



802 名前:nobodyさん mailto:sage [2008/06/29(日) 23:14:30 ID:???]
ありがとう。日本語が上手くいかず。

803 名前:nobodyさん [2008/07/03(木) 04:34:06 ID:N0WlacZt]
日本人がイスラム過激派に狙われる可能性もあります

220 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:35:59 ID:???
イスラムや胡錦濤の記事にもhentai入ってて
ニュー速の連中がアルジャジーラとかにメールしようとして
鬼女が止めに入ったり、なかなかわかってるなぁと。

262 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:43:47 ID:???
つーか原理主義者は日本に入り込んでいるし組織もあるから
原理主義者によって白昼堂々人通りのある場所で首を掻き切られて
助教授が殺されて犯人が何も特定できていないわけで・・・

297 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:51:28 ID:???
>>272
いや・・・それが・・・
タレコミより前に韓国でコーランが焼かれたと報道されてて
アルジャジーラTVより韓国でコーランを燃やす映像が放映され、アラブ諸国でさまざまの反応が出ている。
・その映像を見た老人がショック死(サウジアラビア)
・その映像を見た青年ら十数人が韓国大使館に投石(シリア)

★祭り★ 「日本の母は息子の性処理係」毎日新聞が捏造記事41
human7.2ch.net/test/read.cgi/ms/1215003832/
★祭り★ 【毎日・変態報道】 毎日新聞、「2ちゃんねる」を名指し…「女性社員中傷書きこみで法的措置」で★26
mamono.2ch.net/test/read.cgi/newsplus/1215016627/
【記者】毎日新聞の英語版記事で日本を侮辱【豪人】
academy6.2ch.net/test/read.cgi/english/1213971760/
【Daily】毎日新聞英語版がひどすぎる 3【WaiWai】
society6.2ch.net/test/read.cgi/mass/1214603376/
【毎日新聞】 iチャネル解約スレ 【変態報道】
hobby11.2ch.net/test/read.cgi/keitai/1214802475/






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef