1 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:01:21 BE:176880454-DIA(100004)] "The duct tape of the Internet" こと、Perlについての質問箱です。 "There's more than one way to do it" ということで、 Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 ( WEBプログラミング板 pc11.2ch.net/php/ ) CGIの質問は答えが Perlと全然関係ない話に帰着する場合が 多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2008/04/20 現在の最新版: 5.10.0 ● 2008/04/20 現在の開発版: 5.9.5 ▼ 前スレ Perlについての質問箱 34箱目 pc11.2ch.net/test/read.cgi/tech/1199977642/
357 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:08:14 ] forもforeachも一緒じゃないの?ただのシンタックスシュガーかと思ってたけど
358 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:17:35 ] >>357 それを前提として書いたつもり。 a) for my $n (0..9) {} b) foreach (my $n=0; $n<10; $n++) {} a は許容できるが、b は嫌かなってこと。
359 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:21:56 ] for しか使わね。それと、C type の for は使わね。
360 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:29:16 ] 俺も同じくforのみ
361 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:32:56 ] どうでもいい。 んで、暗黙のループカウンタなんてあったら言語仕様としてきもい
362 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:39:58 ] C言語の const 変数の様なのは定義できないでしょうか? perl 5.8です。
363 名前:356 mailto:sage [2008/06/06(金) 16:14:23 ] んー、やっぱforだけとかの人のほうが多いのね。 まさにPerlスタイル。 >362 use constantとかはー?
364 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:02:47 ] use Readonly ; >>361 $. は?w
365 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:07:46 ] つまりキモイってことですよPerlはw
366 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:19:32 ] 柔軟な頭を持ってない奴が負け惜しみを言ってますw
367 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:23:44 ] ゴミを美味いと思う自分の狂った味覚を「柔軟さ」と主張する人生ですかw
368 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:31:57 ] 君がゴミだと思って捨てていた部分は実は高値で取引される珍味でした。
369 名前:デフォルトの名無しさん [2008/06/06(金) 17:56:23 ] >>362 Cライクにやりたいなら use constant NAME => 'hoge'; ただし Perlでベアワードはメンドくさい。 "my name is NAME" とやっても展開されないから "my name is ".NAME とするしかない。 *NAME = \'hone'; これを使えば "my name is $NAME" で展開できる。 *C_STR = \'xxxx'; # 文字列定数。参照は $C_STR *C_NUM = \100; # 数値定数。参照は $C_NUM *C_ARRY = [1,2,3]; # 配列定数。参照は @C_ARRY *C_ASSOC = {k1 => v1,k2 => v2}; # ハッシュ定数。参照は %C_ASSOC
370 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:04:39 ] >>368 まぁ、珍の字はニュアンスぴったりだと思うよ。 Perlの仕様を漢字一字で表せといったら、珍・奇・醜・糞あたりが有力だろうし。
371 名前:デフォルトの名無しさん [2008/06/06(金) 18:44:43 ] forは数値カウンタのときやCライクな使い方のとき。 配列から読み取るってときはforeachにしてるな。こっちはPHPぽい方で
372 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:45:22 ] >>370 あれ?なんでわざわざこのスレに?
373 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:50:29 ] ・上にあがってるから ・Perlを盲目的に全肯定するキチガイだけが住人ではないから
374 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:03:32 ] 誰も全肯定なんてしとらんがな・・・
375 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:41:58 ] それを言ったら、誰も負け惜しみなんて言ってないよな。
376 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:34:35 ] >>373 ゲテモノだってのは認識しとる。
377 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:41:28 ] >>352 レスありがとうございます。 substを使ってうまくいきました。 ありがとうございました。
378 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:15:29 BE:477576296-DIA(100004)] まず匿名の臆病者は自分の (好きな|メインの) Lightweight Language を言えよ
379 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:52:56 ] BER圧縮された数値(オフセット値、ID)のビット列に対し、 二分探索法を行なっている実装例ってありませんかね?
380 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:02:59 ] そういうのはCでやった方が
381 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:17:18 ] >>378 できるよ。 以上。 ↓次どうぞ
382 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:21:35 ] ↑おつかれさまでした
383 名前:デフォルトの名無しさん [2008/06/08(日) 19:02:55 ] 他のファイルに変数を設定したファイルを用意し、 そのファイルを読み込み設定された変数を利用したいのですが、 どのようにすれば実現できますか?
384 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:05:01 ] そのようにすれば
385 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:13:01 ] そういうふうにプログラムすりゃいいでしょ
386 名前:383 mailto:sage [2008/06/08(日) 19:14:47 ] すみません。 サンプルコードなど頂けませんでしょうか?
387 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:16:05 ] do "configs";
388 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:17:30 ] D'OH !
389 名前:383 mailto:sage [2008/06/08(日) 19:19:09 ] reqireでできました。 阿呆しか答えてくれないので、聞く手間をかけずに調べれば良かったですね。
390 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:26:32 ] reqireなんてあったか?
391 名前:383 mailto:sage [2008/06/08(日) 19:26:33 ] >>389 は私ではありません。 requireも試してみたのですが、変数の値が継承されないようで うまくできませんでした。 >>387 ありがとうございます。 試してみたのですが、requireと同じように変数の値が継承されません。 doと言うものを調べたのですが、while文のdoしかなかなか見付からず 使い方が悪いのかも知れません。 すみませんが詳しく教えて頂けるとありがたいです。
392 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:28:41 ] まず自分で調べる手間をかけずにいきなり聞くという方法で何か学ぼうとするのもなんだかなあ…。 何かを知ろう学ぼうとするなら知る学ぶ為の正しい手段を取るべきだと思うけどなあ…。
393 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:42:06 ] >>391 perlfunc嫁
394 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:49:07 ] 何ができないと言っているのかがわからない
395 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:59:13 ] 1行ずつ読み込んでdoじゃだめなわけ?
396 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:18:32 ] doはファイル名を引数に取るわけだが
397 名前:デフォルトの名無しさん [2008/06/08(日) 22:03:27 ] open FILE, "unko.pl"; read FILE, my $unko, -s FILE; close FILE; eval $unko;
398 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:04:06 ] それならdoでいいだろ。
399 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:32:17 ] 関係ないけど do-dai っていい曲だよね
400 名前:デフォルトの名無しさん [2008/06/09(月) 01:10:43 ] WinXP、perl5.8.8、でPerl/Tkからボタンを押した時にthreadsを使ってバックグラウンド処理をしようと考えています。 バックグラウンド処理そのものは最後まで実行されますが、終了同期を取ろうとjoinを呼び出した時に、クラッシュして更に、Free from wrong pool during global… となります。 これを回避出来た猛者はいますか?
401 名前:有吉 ◆01z1p9gzeo mailto:sage [2008/06/09(月) 01:43:25 ] 子プロセスから親プロセスのTkウィジェットにアクセスするとactiveperlが落ちてしまいます。 $top = MainWindow->new(); $frame1=$top->Frame(-height=>25)->pack(-side=>top,-fill=>'x',-expand=>'no'); $listbox1 = $frame1->Scrolled('Listbox',-scrollbars=>'osoe')->pack(-fill=>'both',-expand=>'yes'); $listbox1_ref = \$listbox1; if ($pid = fork()) { MainLoop; } else { &refresh($listbox1_ref); } sub refresh { my $listbox1_ref = shift; $$listbox1_ref->delete(0,'end'); opendir(DIR,'mail/'); @file = sort readdir(DIR); @file = grep(!/^\.\.|^\./,@file); foreach(@file) { my $time = localtime((stat "mail/$_")[9]); $$listbox1_ref->insert('end',$time); } } ログには Free to wrong pool 1ec5020 not 274dc8 at C:/Perl/site/lib/Tk.pm line 250. と出て終わってるようです。refreshの処理中に落ちてるみたいです。 ググったところ、同じ症状の方もいるようですがこの場合の解決策が見つかりませんでした。 子プロセスから親プロセスのウィジェットにはアクセスできないのでしょうか?ご教授ください。OSはWinXP SP2です。
402 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:44:44 ] 改行が多すぎると怒られたので 色々はしょったら読みづらくなりました。 大変申し訳ないです。。
403 名前:デフォルトの名無しさん [2008/06/09(月) 11:00:13 ] >>398 キミ、シロウトだね。
404 名前: ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2008/06/09(月) 11:09:09 ] ,. -ー冖'⌒'ー-、 ,ノ \ / ,r‐へへく⌒'¬、 ヽ {ノ へ.._、 ,,/~` 〉 } ,r=-、 /ク ̄`y'¨Y´ ̄ヽ―}j=く /,ミ=/ ノ /ル'>-〈_ュ`ー‐' リ,イ} 〃 / / _勺 ミ;;∵r;==、、∴'∵; シ 〃 / ,/ └' ノ \ こ¨` ノ{ー--、〃__/ 人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\ . / |/ |::::::|、 〃 /:::::/ ヽ / | |::::::|\、_________/' /:::::/〃
405 名前:383 mailto:sage [2008/06/09(月) 11:24:22 ] すみません。私の書き込みが悪いとおもうので、再度書き込ませていただきます。 -- define.pl ------ my $hoge = "hoge"; -- body.pl ------ do "define.pl"; print $hoge; というファイルがあったとしても、body.plでdefine.plの変数が使えません。 どのようにすれば、他のファイルの変数を使えるようになりますか?
406 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 11:33:56 ] myしてやがる……
407 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 11:39:48 ] >>405 なんというオチ
408 名前:デフォルトの名無しさん [2008/06/09(月) 12:31:41 ] いぢわるしねいで、ちゃんと教えてやれよ。 my じゃなく、 our で宣言しろって事だよ。
409 名前:383 mailto:sage [2008/06/09(月) 13:03:46 ] そんなのがあったのですね・・。 簡単に本を読んだのですが、myとlocalがあってmyを普通使う。localはあまり使わない。 という説明でした・・。 リャマ本というのを簡単に確認したのですが。ourって載ってます? 見つけられなかったのですが。
410 名前:383 mailto:sage [2008/06/09(月) 13:04:12 ] お礼を言い忘れました。 お手数をおかけしてすみませんでした。 ありがとうございました。
411 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:22:51 ] 最初から405かいときゃ無駄なレスしなくていいのに jこれだから小出しするやつはうぜぇ
412 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:38:55 ] >>409 アルパカ本に載ってる。
413 名前:273 mailto:sage [2008/06/09(月) 13:41:12 ] >>273 自己レス いろいろと遠回りしたけど、ReadKey.pm入れ直しで スンナリ解決しました。 ハァ・・・、なんですぐにやらなかったのか。 自己嫌悪だわ。 何時間費やしとんねん!
414 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:43:11 ] >>410 こんな感じ↓ ttp://blog.livedoor.jp/dankogai/archives/50982802.html
415 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:46:16 ] 思うんだけど,この業界の人って,自分で調べたことに対して疑問を抱いた!みたいな 感じでブログとかに書いておくと,すげえ補足を書いてくれたりするよね。 俺はそういうところが好きだ。
416 名前:デフォルトの名無しさん [2008/06/09(月) 13:48:00 ] 質問です。Perlでクラスを使ってみたいのですが どのように書けばいいのでしょうか? 知らない用語ばかり出てきて、さっぱり答えにたどり着きません。。 例としてPHP版で書きます。これと同等の機能をPerlで書いてください。 お願いします。 class Hoge { private $var1 = 'A'; function var1() { return $this->var1; } function getValue() { return 1; } } class Hage extends Hoge { function getValue() { return 2; } } $hogehoge = new Hoge(); print $hogehoge->getValue(); $hagehage = new Hage(); print $hagehage->getValue();
417 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:10:53 ] #!/usr/bin/perl use strict; use warnings; { package Hoge; sub new { my $class = shift; my $self = {var1 => "A"}; bless $self, $class; return $self; } sub var1 { my $self = shift; return $self->{var1}; } sub getValue { my $self = shift; return 1; } } { package Hage; use base qw(Hoge); sub getValue { my $self = shift; return 2; } } my $hogehoge = Hoge->new(); print $hogehoge->getValue(), "\n"; my $hagehage = Hage->new(); print $hagehage->getValue(), "\n";
418 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:41:00 ] >>416 一度perltootをキチンと読んでみては? 和訳↓ ttp://perldoc.jp/docs/perl/5.10.0/perltoot.pod
419 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:35:06 ] ./にローカルインストールしたモジュールを使うことができません。 使おうとしているものはCurses.pm search.cpan.org/src/WPS/Curses-1.06/Curses.pm です。もしよろしければご教授ください。 $ ls Curses.pm* test.pl* $ cat test.pl #!perl unshift @INC, "."; use Curses; exit; $ perl -w test.pl Can't locate loadable object for module Curses in @INC (@INC contains: 略 .) at test.pl line 4 Compilation failed in require at test.pl line 4. BEGIN failed--compilation aborted at test.pl line 4. $
420 名前:デフォルトの名無しさん [2008/06/09(月) 15:48:35 ] use lib '.';
421 名前:デフォルトの名無しさん [2008/06/09(月) 15:54:07 ] ba5.txtには以下になってます。 4131048 4131053 x x 4850328 x x x x 3870357 3870369 x x 4131038 4131045 x x x この場合にxの行を一番最後の行の数値に置き換えたい場合 perlだとどのようにすればいいんでしょうか。 シェルでやろうとしたんですけどシェルだとちょっと難しいみたいなので perlでやりたいと思ってます。誰かいいスクリプトを教えて下さい。 宜しくお願いします。
422 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:07:39 ] >>420 use lib '.'やuse lib qw(.)を試してはいるんですが、>>419 と同じエラーが出てしまいます。 また、use Curses;をuse ::Curses;として実行すると、>>419 のCompilation failed in require at test.pl line 4.が消え、 Can't locate loadable object for module CursesもCan't locate /Curses.pmと表記が変わります。
423 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:51:43 ] >>419 本当にCurcesモジュールをインストールしたのか? Curses.pmをコピーしただけじゃないのか?
424 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:52:54 ] >>417 ありがとうございます。 継承するときは、 use base qw(Hoge); なんて書くんですね。 sub newってなんなんでしょう? なんでそんな関数が必要なのですか?
425 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:55:17 ] >>423 >コピーしただけ はい。アクセス権の関係でインストールが出来ないので、 test.plと同じディレクトリにCurses.pmを配置し利用したいと思っています。
426 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:59:36 ] >>425 だから、Cursesモジュールは、C言語で書かれたバイナリがメインで、 Curses.pmはそのインターフェイスでしかない。 ちゃんとコンパイルしてインストールしないとだめ。 エラーメッセージにある "loadable object" っていうのがそれ。 アクセス権の関係ってどういうこと? インストール過程で、 インストール先を指定できるぞ。 コンパイラも使えないのか?
427 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:00:37 ] >>424 コンストラクタ 不精しないできちんとperltootを読め。 >>418
428 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:03:00 ] >>421 聊かエスパーぎみにレス。↓こういう事がしたいのか? $ perl -pe '$_=$t if/^x/; $t=$_' ba5.txt 4131048 4131053 4131053 4131053 4850328 4850328 4850328 4850328 4850328 3870357 3870369 3870369 3870369 4131038 4131045 4131045 4131045 4131045
429 名前:421 [2008/06/09(月) 17:16:09 ] >>428 さん そのとおりです! ありがとうございます!
430 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:17:17 ] >>426 ありがとうございます。何か大きな勘違いをしていたようです。 Cの方でcurses/ncursesを使っていたので、システム上にcurses環境があると救いようの無いいい加減な誤認があり、 また、@INCサーチパス上にCurses.pmを置くことが出来ないのでアクセス権という的外れも甚だしい話をしてしまいました。 現在make中です。今のところエラーは吐いていません。 wget search.cpan.org/CPAN/authors/id/G/GI/GIRAFFED/Curses-1.23.tgz tar xvf Curses-1.23.tgz cd Curses-1.23 #Makefileの生成 perl Makefile.PL GEN PANELS MENUS FORMS #コンパイル make
431 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:28:19 ] >>427 コンストラクタなんですか? 普通、コンストラクタは必要がある場合を除いて 書かないと思うのですが? 書かないとまずいですか?
432 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:16:16 ] 釣れますか?
433 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:24:44 ] >>427 初心者には perltoot を読むのを薦めるよりも perlboot を読むのを薦めた方が良いと思うよ なんとなく読む気が無さそうな気配ではあるけども 5.8 なら以前どこかで perlboot の邦訳も見掛けたた気がするけど
434 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:43:23 ] >>428 すげー。そういう意味だったのか。 そこまで読めなかったよ。
435 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:30:01 ] 5.005の頃、よくXS書いてたんだけど その後、Perlはワンライナーでしか使わなくなってしまった。 その頃のXSの知識ってまだ使えるのかな。
436 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:06:37 ] oshiete1.goo.ne.jp/qa4087225.html
437 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:02:57 ] おや、なんだかどこかで見たような……。
438 名前:デフォルトの名無しさん [2008/06/10(火) 11:24:14 ] マルチ死ねよwwwwwwwwww
439 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:02:49 ] HTML::FillInForm を使用しているのですが、出力されるhtmlから DOCTYPE 宣言が消えてしまいます。 対処法がありましたら教えて下さい。
440 名前:439 mailto:sage [2008/06/10(火) 13:58:23 ] ここ(↓)を参考にして自己解決しました。 www.geocities.co.jp/SiliconValley-Sunnyvale/6128/perl/htmlpaser.html use HTML::FillInForm; use base qw(HTML::FillInForm); sub comment { my($self, $text) = @_; $self->{output} .= "<!--$text-->"; } sub declation { my($self, $text) = @_; $self->{output} .= "<!$text>"; }
441 名前:439 mailto:sage [2008/06/10(火) 14:05:33 ] >>440 × sub declation { ○ sub declaration {
442 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:39:31 ] ロード済みのサブルーチンと同じpackageかつ同じ名前のサブルーチンを含む外部plファイルを requireすると、後の内容で上書きされてしまいますが、元のサブルーチンを壊さないですむ 方法はないでしょうか。
443 名前:デフォルトの名無しさん [2008/06/11(水) 18:07:18 ] 皆さん、エスパーでよろ。 意図した挙動にならず、どこが問題かのきっかけも掴めずにかなり時間をかけてしまったが、 ようやくやりたいこと出来た。が、どうにも腑に落ちない。 DB(mysql)からデータとってきて、Scraperに渡して・・・と、こんな感じで組んでいたんだけど、 レコード数は3とします。 パターン1------------------------------------ $rows = $sth->rows; print "hajimari"; while(my $ref=$sth->fetchrow_hashref()){ $scraper->scrape($ref->{url}); print "roop dayo"; } print "owari"; このような感じでやっていたんだが、ループが1回しか回らない!?なんで? てなことで、webで情報あさったり、モジュールのソース眺めてもわからんし。
444 名前:デフォルトの名無しさん [2008/06/11(水) 18:07:56 ] パターン2------------------------------------ $rows = $sth->rows; print "hajimari"; while(my $ref=$sth->fetchrow_hashref()){ print "roop dayo"; } print "owari"; と、Scraperになげなかったら、ちゃんと3回ループするんだよね。 でScraperでこけてんのかと思いきや、これも特に見当たんない。 問題なさそうだ・・・。
445 名前:デフォルトの名無しさん [2008/06/11(水) 18:08:25 ] パターン3------------------------------------ $rows = $sth->rows; print "hajimari"; $i = 0; while(my $ref=$sth->fetchrow_hashref()){ $url[$z] = $ref->{url}; $i++; } for($z = 0;$z < $rows;$z++){ $scraper->scrape($url[$z]); } print "owari"; ちょいと思うところがあり、一旦配列にほりこんでみる・・・。 キター!!!3回まわったじゃんか! ふむ、思うところというのは、Scraperでこけないでループ1週目は ちゃんとループしているということ。 で、結局ちゃんとした原因が解ってないんだけど、メモリ制限とか あるのかな? アドバイス下さい。 (もしかしたら、CGIまわりの問題?) OS:FreeBSD Perl:5.8.3
446 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:44:14 ] デバッグしろよ
447 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:47:02 ] またきたのか
448 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:48:59 ] Dump吐いてみたら?
449 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:52:18 ] 内部状態をインスペクトしたら
450 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:56:50 ] printf だ! printf を挟め!
451 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:59:07 ] if(!$hoge->{'hoged'}){ $hoge->{'hoged'} = []; } push(@{$hoge->{'hoged'}}, $hoging); これをスマートに書く方法ありませんか? ちなみに$hogingは2箇所以上に書くなら一時変数必要です。
452 名前:デフォルトの名無しさん [2008/06/11(水) 19:04:06 ] 少し説明がヘタだとは思いますが以下の処理をしたいです。お願いします。 ★処理の方法 行の先頭が [ の場合には、行の先頭が 20 の行の先頭にそれを加える 行の先頭が 空白の場合には一旦処理を終えて再度行の先頭の [ を読む 行の先頭に < がきた場合にはその処理を終えて再度行の先頭の [ を読む 結合した場合、その文字列の最後に必ず区切り文字としてタブを挟む ●処理前のabc.txt <100100> [1044]あいうえお 20321 1137 4850328 60 20321 1137 4850328 60 20321 1137 4850328 60 【合計1044】 [1047]かきくけこ 20319 1090 3870357 20319 1101 3870369 【合計1047】 [1051]さしすせそ 20328 1206 4131038 52 20328 1206 4131045 52 20328 1206 4131045 52 【合計1047】 【累計】 <100200> [1057]たちつてと 20328 1206 4131045 52 20328 1206 4131045 52
453 名前:デフォルトの名無しさん [2008/06/11(水) 19:04:54 ] ●処理後のabc.txt <100100> [1044]あいうえお 20321 1137 4850328 60 [1044]あいうえお 20321 1137 4850328 60 [1044]あいうえお 20321 1137 4850328 60 【合計1044】 [1047]かきくけこ 20319 1090 3870357 [1047]かきくけこ 20319 1101 3870369 【合計1047】 [1051]さしすせそ 20328 1206 4131038 52 [1051]さしすせそ 20328 1206 4131045 52 [1051]さしすせそ 20328 1206 4131045 52 【合計1047】 【累計】 <100200> [1057]たちつてと 20328 1206 4131045 52 [1057]たちつてと 20328 1206 4131045 52 どうかよろしくお願いします。
454 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:15:23 ] >>452 宿題を肩代わりするスレじゃないんだけど。 少しはperl文を書いてから出なおせ。
455 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:33:31 ] たしかに最近どうみても入門者向けの課題を回答させようとする連中が多いような?
456 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:39:49 ] >>451 push(@{$hoge->{'hoged'}}, $hoging);
457 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:55:00 ] 宿題を人に頼む奴は大学やめればいい 学部生いわく。