1 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 22:35:39 ] "The duct tape of the Internet" こと、Perlについての質問箱です。 "There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 (WEBプログラミング板 pc8.2ch.net/php/ ) CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2006/12/21現在の最新版: 5.8.8 ● 2006/12/21現在の開発版: 5.9.3 前スレ Perlについての質問箱 28箱目 pc8.2ch.net/test/read.cgi/tech/1162273941/ リンク集は>>2-3 過去スレは>>4
697 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 21:11:30 ] とりあえず ・ファイルをperlに読み込んで各行をループさせる ・一行の中で、2列目の数値を取り出す といった操作が必要だけど、 ファイルの読み書きや、正規表現とか、まったく何も分からないの?
698 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:01:45 ] >>694 ちょうど最近それっぽい記事が出てた。 ttp://codezine.jp/a/article/aid/904.aspx 区切り記号が「,」か「;」の違いがあるとか微妙にちがうけど、 コレが理解できれば希望のスクリプトを書くのも出来るはず。 コピペだけですませようとしてるんなら無理だけど。
699 名前:デフォルトの名無しさん [2007/02/18(日) 22:02:02 ] >>697 一応、基礎的なことはサイトを見て勉強してきたんで 正規表現のことや ファイルを読み込んでコマンドプロンプトに内容を表示させたり ファイルの作成、書き込みなどは理解しているつもりです。 ただそれらのことを組み合わせてプログラムを作るとなると まだよくわからないんです。 もう明日中には完成させなきゃならないんで できればヒントだけでもお願いしたいです…
700 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:08:59 ] こんな感じじゃね?試してないけど。 my $sum = 0; my $i = 0; for my $file (qw(unko1.txt unko2.txt)) { open my $fh, $file or die "開けん"; while(<$fh>) { $sum += (/;\s*(-?\d\.\d);/)[0]; $i++; } } print "阿部怜治:", $sum / $i, $/;
701 名前:694 [2007/02/18(日) 23:30:17 ] >>698 .700 ありがとうございます。 もう少し頑張って明日試してみます。
702 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 00:43:52 ] じゃ模範的なperlで perl -pae "$l++;$s+=$F[1]}{$_=$s/$l" input.txt
703 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 00:58:40 ] perl -F";" -lane '$t+=$F[1]; END{print $t/$.}' input.txt
704 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 04:15:19 ] >>702 $F[1]}{ の }{ って何してるの?
705 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 04:59:09 ] >>704 $ perl -h -n assume "while (<>) { ... }" loop around program -p assume loop like -n but print line also, like sed -p は while (<>) { ... print; } で囲まれる。
706 名前:デフォルトの名無しさん [2007/02/19(月) 05:26:43 ] 挙動的に同じって意味だと思ってたら、 本当にプリプロセッサのように囲まれるのね
707 名前:デフォルトの名無しさん [2007/02/19(月) 18:41:27 ] if ($a) { print $a; } この書き方と print $a if $a; この書き方では何か違いはあるのでしょうか
708 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 18:44:48 ] 見た目
709 名前:デフォルトの名無しさん [2007/02/19(月) 20:24:07 ] すいません、質問です。 大体5万行くらいの大きさのテキストファイルから、 重複している行 (連続して重複してるわけでは無く、内容が同じ行が とびとびに存在してる)を一つのこして、残りは省く というスクリプトを書く場合、 1)1行目はそのまま書き出す 2)2行目は1行目と比較して、同じだったら書き出さない、違ったら書き出す 3)3行目は1行目と比較して、同じだったら書き出さない、違ったら2行目と比較して、、、 4)以下繰り替えし このようなスクリプトしか無いのでしょうか? 処理に非常に時間がかかるので、何か良い方法があったら、御教示下さい。
710 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:31:36 ] >>709 「perl 重複」でぐぐればいろいろテクニックが見つかる
711 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:36:03 ] >>709 5万行くらいなら全部ハッシュテーブルに詰め込んでも大丈夫そうだが 順序崩していいならソートしてから重複を除くのがいいだろう
712 名前: ◆TWARamEjuA mailto:sage [2007/02/19(月) 20:38:10 BE:2613683-2BP(6811)] 1. 1行目の内容をハシュのキーに詰め込む。 while (<$fh>) { $hash{$_} = 1; 2. 読み込みが終わったら、keyを書き出す。 print for keys %hash; 1-1. 読み込んだ順に書き出したい時。 my $line; while (<$fh>) { $hash{$_} = [$_, ++$line]; 1-2. 先に読み込んだ方を有効にしたい時。 $hash{$_} = [$_, ++$line] unless $hash{$_} ; 2-1. 読み込みが終わったら、sortしながらkeyを書き出す。 print for sort $hash{$a}->[1] <=> $hash{$b}->[1], keys %hash; 脳内妄想なので、補完よろしこ(照)
713 名前: ◆TWARamEjuA mailto:sage [2007/02/19(月) 20:39:43 BE:1742382-2BP(6811)] ん、、、リファレンスにしなくても良かったか(呆)
714 名前:709 mailto:sage [2007/02/19(月) 20:42:52 ] >>710-712 ありがとうございます。ハッシュテーブルを使う方法は、 全く考えてませんでした(というか今迄使ったことが無かったので) とりあえず、ハッシュテーブルの使い方を勉強してきます。
715 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:57:05 ] perl -ne 'print if not $seen{$_}++;' でいいだろ。 メモリ足りないようならtie()使ってDBMファイルをワークに使えばよし。
716 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:58:32 ] Perl やっててハッシュを使ったことが無いとな
717 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:07:13 ] 今までperlやってなかったんだろ
718 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:16:49 ] 無名(?)のBLOCKで、 {} ←中身が空だとエラーになるんだけど、素のBLOCKは使ってもいいのか、 使えるが推奨されてないのか、perl的でないのか、どんな感じなんでしょう?
719 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:28:43 ] WindowsでNMAKEが必要なモジュールのインストールについて質問。 Windows2000では問題がなかったのに、vistaになってDBIとかがインストールに失敗する。 どうすれば回避できる?
720 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:41:06 ] >>719 そのエラーメッセージで言われてるところを直せばインストールできるんじゃないか
721 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:46:44 ] >>718 $hoge = {}; 何か見えてこないかい? それからperlrefのMaking Referencesの3番辺りに目を通すといいと良いかと。 …スクリプティング言語資料室さんの訳、そこの所間違ってるかな > 一方、ハッシュではなくBLOCKへのリファレンスを返すのであれば、
722 名前:718 mailto:sage [2007/02/19(月) 23:08:43 ] >>721 おー、ありがとう。丁度良い書き方が見つかりました。 {}だけ書いて中身は後で書きたいときに、エラーになるのが気持ち悪かったのですが、 {;}という方法があったか!
723 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 16:33:08 ] 最近対策済みのスパムに漏れて書き込みが散見されるので if ($comment !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) {&er_("cannot write!","1");} ここを変えたいと思います。 ここをひらがなの「あ」〜「ん」が含まれていなければ、という意味にしたいのですが、 「あ」は 82A0 「ん」は 82F1 です。 (\x82[\x9F-\xF2])|(\x83[\x40-\x96]) これをどう治せばいいのでしょうか? ↑正規表現とマッチングを理解していないので、 これのはっきりとした意味がわかっていません。 たぶんカタカナまで含まれていると思うのですが・・。
724 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 16:51:19 ] >>723 sjisか。 | の左側がひらがなで、右側がカタカナでしょ。 ひらがなだけよけたいなら、 $comment !~ /\x82[\x9F-\xF1]/ でいいんじゃね?
725 名前:723 mailto:sage [2007/02/20(火) 17:04:41 ] >>724 ありがとうございます。 ひらがなのみのフィルタで無事動きました。
726 名前:中の人 mailto:sage [2007/02/21(水) 00:01:39 ] >>721 すまん確認した。 どこをどうすればこういう勘違いをするんだかわれながら不思議だ。 つーことで今週末までをめどに修正しておきます。
727 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 21:57:48 ] なるほどねぇ
728 名前:688 mailto:sage [2007/02/21(水) 22:09:52 ] >>690 自己解決しました。 my $CopyMemory=new Win32::API("kernel32", "RtlMoveMemory", "NPI", "V"); defined $CopyMemory or die "Cant find CopyMemory"; $CopyMemory->Call($lParam+48, $clrText, 8);
729 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:18:46 ] >>728 訂正688→686
730 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 23:31:13 ] >>728 substr( $lParam, 48, 8, $clrText); を $object->TextColor( (unpack('II',$clrText))[1] ); $object->TextBkColor( (unpack('II',$clrText))[0] ); にする方が楽だと思うけど、自己解決おめでと。
731 名前:686 mailto:sage [2007/02/22(木) 00:45:28 ] >>730 それじゃ、Selectすると全部色変わっちまうぜよ。
732 名前:690 mailto:sage [2007/02/22(木) 01:35:07 ] >>728 自己解決おめでとう。 >>689 の substr( $lParam, 48, 8, $clrText); の意味について考え直したのだが、以前のバージョンのActivePerl では 「裏仕様」として、「$lParam がポインタと考えられる場合は、間接指定 されたアドレスの文字列(バイト列)を操作し、そうでなければ$lParam そのものを操作する」というのがあったのではないだろうか。 >>689 のソースを読む限り、そうとしか思えない。 ところが、この「裏仕様」は危険であるし、安全確実な間接アドレス指定方法 が手当てされたから、いつかのバージョンで廃止されたんだろうね。
733 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 16:07:47 ] if( $ENV{REMOTE_ADDR} eq ’’ ) ってありえるのでしょうか?
734 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 16:26:33 ] >>733 CGIとかで動かしてるなら鯖の仕様次第だし 普通にコマンドラインから実行すれば空になる
735 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 19:59:42 ] $comment に http の文字が5つ以上あるとエラーを出したいのですが、 正規表現でのチェックはどうすればいいのでしょうか? if( $comment /~ (.*http.*http.*http,*http,*http) ) { error(); } こんな感じでしょうか?orz
736 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 20:46:31 ] if ($comment =~ /(.*http){5}/s) { error(); }
737 名前: ◆TWARamEjuA mailto:sage [2007/02/22(木) 21:22:57 BE:5227968-2BP(6811)] print "error" if $comment =~ /http/g > 4; だめだった。。。 print "error" if scalar @{[$comment =~ /http/g]} > 4; 桶だった。。。 詳しい人の解説キボンヌ(照)
738 名前:脱帽 mailto:sage [2007/02/22(木) 21:26:24 ] スカラーだと真か偽しか返さないから
739 名前:脱帽 mailto:sage [2007/02/22(木) 21:27:58 ] スカラーの場合は真か偽しか返さないからじゃ
740 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 21:44:26 ] スカラーコンテキストでマッチした数が返ってくるのは置換の s///g の場合。 なので、もしそういう風に書きたいのなら print "error" if $comment =~ s/http/http/g > 4; とか書くといいかも。
741 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 22:04:23 ] なるほどねぇ
742 名前:735 mailto:sage [2007/02/22(木) 22:24:08 ] if($comment =~ s/http/http/g > 4){ &er_('cannot write!');} これでいけました。 s/hogehoge/fugafuga/gの s と g の意味がわからなかったのですが、 調べて理解できました、ありがとうございます。
743 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 13:36:53 ] WindowsXP + ActivePerl 5.8.8 build 820 です こちらは初めてです、29箱目ということで既出質問だったらすみません 上記環境で モジュール Encode が threads と同時に上手く働きません perl素人の自分なりに調べた結果、Encode モジュールはスレッドセーフでは ないのではないかと思い始めたのですが、それで間違いないでしょうか? それとも私が何か大事なお約束や呪文を忘れているのでしょうか また、スレッドセーフで無かった場合、各スレッド内で文字コード変換を 行いたい場合、皆さんはどのようにしているでしょうか
744 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 14:04:52 ] >>743 適当にぐぐったらこういうのがあった。 ttp://www.nntp.perl.org/group/perl.perl5.porters/2007/02/msg120729.html 確かに試すとたまにおかしな結果になる。ちなみに手元のバージョンは v5.8.8 built for i486-linux-gnu-thread-multiだった。 マニュアル見てもthread-safeであるとは書いてないし、原則は明記されて なければunsafeと思えだから間違ってはいないのだろう。 で、俺はスレッドでEncode使った経験はないからなんともいえないのだが、 普通に考えたら適当なshared variableでlockかけてから使うぐらいしか ないのではないだろうか。
745 名前:743 mailto:sage [2007/02/23(金) 14:22:08 ] >>744 返信ありがとうございます 確実に再現性のある最小コードを続いて投稿…と思ったのですが上手くいかずorz 自分の考え違いだったかもと思っていたところでした URL 先のコードを試した結果、私の環境でもおかしな結果を不規則に起こしました 再入しないようにとりあえず自衛していく方向でいってみます ありがとうございました
746 名前:743 mailto:sage [2007/02/23(金) 16:42:34 ] 他のモジュール内でもEncode使っているのが多くありそうですね PerlIO layer での :encoding(〜) とか HTTP::Message の decoded_content とか便利だなーとガシガシ使っていたので どんどん泥沼のソースになっていきましたorz
747 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 16:45:17 ] よく使われる奴はthread safeにして欲しいね
748 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:14:02 ] 小飼氏(メーリングリスト)に投げてみたらいいんじゃないかな。 つーか投げてほしい。
749 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:54:10 ] blogの感じからするとすごく暇そうなので「直せやおら」とか言うといいんじゃね?>Encode メーリングリストはJcodeメーリングリストでok
750 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 02:14:26 ] あのヒゲモジャのことだからギブミーpatchでかえされるに200ペソ
751 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:03:22 ] それはひどい>ギブミーpatch
752 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 13:51:21 ] なんの解決にもならないw>ギブミーpatch
753 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 14:57:03 ] >>751-752 なにが「ひどく」て「解決にならない」なの? ライセンスがArtisticとGNU GPLのデュアルライセンスで、 どっちもソースが公開されているものなんだから不具合あったらソースを追って自分で改変するくらい当たり前じゃん。 おまえらはフリーライダーなの?それともそれをやるだけの能力がない低脳なの?
754 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:28:14 ] これは酷い混じれ酢だ
755 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:43:38 ] 少なくとも小飼氏よりは低能間違い無しです><
756 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:38:11 ] patchが作れるなら人に頼らないしメールも送らないってば。
757 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:55:47 ] 「ギブミーpatch」といわれたら、「無理!」って返事すればいいだけ。 キラクニヤレヤ〜♪
758 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:05:02 ] (´・ω・)
759 名前:デフォルトの名無しさん [2007/02/24(土) 23:26:36 ] 質問です。 浮動小数点計算をループでしていてその結果を出力したら、 あるタイミングから#INDというのが出力されました。 これは一体なんでしょうか、、、
760 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:35:56 ] 不定値(正負の無限大 or NaN) 0除算してるんじゃね?
761 名前:デフォルトの名無しさん [2007/02/24(土) 23:48:49 ] >>760 レスありがとうございます。 数値扱いされてないのでしょうか? 具体的なコードはこんなかんじなんですが、、 my $a = -0.1382 ** 0.000212494687632809; my $temp = -0.1382; my $b = $temp ** 0.000212494687632809; これだと$aはちゃんと出力されるんですが、$bは-1.#INDと出力されます。。
762 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:11:04 ] >>759 indefinite
763 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:27:05 ] >>761 "**"は"-"より強いので -0.1382 ** 0.000212494687632809 は -(0.1382 ** 0.000212494687632809)に等しい。
764 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:53:36 ] >>761 Math::BigFloat
765 名前:デフォルトの名無しさん [2007/02/25(日) 02:10:48 ] >>762 >>763 >>764 レスありがとうございます。明日にでも試してみたいと思います。
766 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 12:00:00 ] (´・ω・)12時
767 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:23:35 ] (´・ω・)時報スクリプトを作ってみました.. #!/usr/bin/perl use WWW::Mechanize; $mech = WWW::Mechanize->new(agent => 'Mozilla/4.0 (MSIE 6.0;)'); while(1){ my(@t) = localtime(time); unless( $t[1] == 59 && $t[0] > 20){sleep(30);next;} $mech->get($ARGV[0]); $mech->field("MESSAGE" => "時報"); $mech->click(); (@t) = localtime(time); sleep(60-$t[0]); $mech->click(); }
768 名前:デフォルトの名無しさん [2007/02/27(火) 20:41:51 ] 日本語PDF作るモジュールのお薦めってありますか? PDFJ?
769 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:40:04 ] PDFJ
770 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:10:35 ] $input=<STDIN>; $input=~s/\n//; print "$input"; コマンドラインから「\n\n」と入力した場合に 「\n\n」と出力されるのではなく、改行2個が出力されるようにしたいんですが どうすればいいですか?
771 名前:デフォルトの名無しさん [2007/02/28(水) 00:17:23 ] 自力でs/\\n/\n/g;とするかevalするか
772 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:24:39 ] >>771 わかりました。ありがとうございます。
773 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:52:29 ] >>771 ,772 evalは安易に使うとコマンド実行も出来ちゃうので正規表現にしとけ。 どうしてもeval使う場合は入力チェックしないと危険よ
774 名前:770 mailto:sage [2007/02/28(水) 01:14:01 ] >>773 アドバイスありがとうございます。 自分でちょっとしたテキスト処理をやりたいだけなので大丈夫です。 \< や \/ や \. などの入力が入った場合、その都度 s/\\\</\</; s/\\\./\./; を書かなければいけないのでevalにします。ありがとうございました。
775 名前:768 mailto:sage [2007/02/28(水) 13:05:37 ] >769 サンクス。 自由度がありすぎて面倒な部分もあるんだけど、 やっぱPDFJでいってみます。
776 名前:デフォルトの名無しさん [2007/02/28(水) 16:35:41 ] 質問です 頓珍漢だった笑ってください perlはCの #include に相当する機能はあるのでしょうか? 今、Perlで統計解析の処理をしています。解析手法ごとに異なったスクリプト を作っています。 入出力部分が複雑なんでここの部分と全体で使える共通サブルーチンだけ切り出して 別ソースにして、実行時に組み込んで使いたいのですが、どうも旨くゆきません。 ぐぐったりしてみましたが、Use、Requireの話しか検索できません。何か単純に Includeする方法は無いのでしょうか?
777 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:48:38 ] >>776 そう難しくないからモジュールにしてuse使うべきだな。
778 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:48:43 ] ァ ∧_∧ ァ,、 ,、'` ( ´∀`) ,、'` '` ( ⊃ ⊂) '`
779 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:49:14 ] ははは ∧_∧ もうダメ ( ´∀`) ∧_∧ モウ カンベン . ( つ ⊂ ) ヒヒヒヒ (´∀` ,,)、 あははは シテクダサイ .) ) ) ○ ∧_∧ , , へ,, へ⊂), ∧_∧ ○, (__)_)⊂ ´⌒つ´∀` )つ (_(__)_丿 ⊂(´∀`⊂ ⌒ヽつ
780 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:52:53 ] requireで問題なくできそうだけど駄目なんかな
781 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:02:56 ] 目線を高くしてオブジェクト指向にしたらどうだ?
782 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:07:13 ] 776はrequireやuseの説明を読んでないのではないのでは? includeとスペルが違うからって脊髄反射したのか? そうでないのなら、ますはrequireでは駄目だった点を質問文につけないと回答者は答えようがないぞ
783 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:08:32 ] すまん ×776はrequireやuseの説明を読んでないのではないのでは? ○776はrequireやuseの説明を読んでないのでは?
784 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:11:40 ] 名前空間の問題とかあるし、普通にモジュール作るのがいいと 思うけどな。よほどこったことやるんじゃなけりゃ、Exporter 使えば一発だし。
785 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:14:16 ] >>776 は最後に1;を入れ忘れてると見た
786 名前:笑われた 776 mailto:sage [2007/02/28(水) 17:22:05 ] すみません確かにRequireに関して真面目に読んでいないです Cの#includeのつもりだったので、 ------------ 今まで ------------ 初期の宣言など・・・ open(FP, $filename) or die($filename); while(<FP>) { $hash{$key} = hoge; } ------------ 変更 ------------ 初期の宣言など・・・ require 'other.pl'; &sub($filename, \%hash); と変更しただけなんですが・・・・実行時に
787 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:25:10 ] ワッフルワッフル!!
788 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:16:02 ] 単純に定数の扱いがやっかいかな。perlは。
789 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:53:41 ] use constant FOO => 'bar'; use Readonly; Readonly my $HOGE => 'fuga'; こういうのでいいじゃん。
790 名前:デフォルトの名無しさん [2007/03/01(木) 08:05:44 ] PerlでCPANによるモジュールのインストールが失敗します。 install LWP::Simple .... BEGIN failed--compilation aborted at /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level/HTML/TokeParser.pm line 12. Compilation failed in require at ../blib/lib/HTML/Form.pm line 116. html/form-param.......dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 1-24 Failed 24/24 tests, 0.00% okay .... どなたかお助けを。 環境:MacOS X 10.4 Tiger, perl 5.8.6