1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ] "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についての質問箱 29箱目 pc11.2ch.net/test/read.cgi/tech/1166708139/ リンク集は>>2-3 過去スレは>>4
231 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:39:48 ] その発想はなかったわ・・・
232 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:59:00 ] フォームへのスクリプト拒否してるからでしょ
233 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:55:09 ] >>232 んなもんどうでもなるやん。何の意味があるのかさっぱりわからん。
234 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:45:44 ] 2,3日で元のスパムの量に戻るに1ペリカ
235 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:26:47 ] 今更ながらどうもコマンドラインがよく飲み込めてないかもしれないので、 少しお尋ねします。 例えば perl -pi.bak -e "tr/A-Z/a-z/"*.html とか便利ですよね? これを.plとして使いたいのですが無理なのでしょうか? コマンドラインから打ち込むしか手がないのでしょうか?
236 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:40:03 ] >>235 perlrun(1)の-iオプションの説明のとこに例があるだろ。よく嫁。 From the shell, saying $ perl -p -i.orig -e "s/foo/bar/; ... " is the same as using the program: #!/usr/bin/perl -pi.orig s/foo/bar/; which is equivalent to #!/usr/bin/perl $extension = '.orig'; LINE: while (<>) { if ($ARGV ne $oldargv) { (改行大杉でおこられるので以下略)
237 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:40:50 ] pc11.2ch.net/test/read.cgi/php/1171102883/593 pc11.2ch.net/test/read.cgi/tech/1173880452/235
238 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:49:06 ] >>236 アリガトウございます。 なお、質問するスレが似つかわしくないと重い他スレにも同じ内容を質問させていただきましたが ご迷惑かけたようで申し訳ないです。
239 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 11:06:13 ] >>235 windowsだとどうも面倒なようなので他の手にします。お騒がせしました。
240 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 11:33:56 ] 手軽に使えるようになればいいだけなら、適切なオプション 与えたperlをsystemかexecで起動するようなスクリプト書く 手もあるよ。 病的に効率を気にする人にはお勧めしませんけど。
241 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:53:06 ] >>239 Windowsなら.batに書けばいいんじゃね? なんで.plにこだわるのかわからん
242 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:50:12 ] YAPC::Asia 2007 Tokyoのpodcastでてるけど、これは聞いとけってものある?
243 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:15:28 ] んだ
244 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:10:07 ] > YAPC::Asia 2007 Tokyoのpodcastでてるけど、これは聞いとけってものある? 馴れ合いなので、聞く必要なし
245 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:01:25 ] >>242 見事になんにもなし。
246 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 05:01:57 ] >>240 ありがとうございます。 >>241 いえ。こだわってないから他の手にするつもりです。 UNIX環境でないとなかなか不便なものなんですね。
247 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:58:40 ] >>246 >UNIX環境でないとなかなか不便なものなんですね。 この点は同意なんだけどね。 しかし、キミが不便だと言っている点についてオレは不便を感じたことはないな。
248 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:31:00 ] そんなに頻繁に使うようならスクリプトをちゃんと書けよ てかperlの質問じゃなくて、コマンドラインについての質問だよな・・・
249 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:30:37 ] >>247 >しかし、キミが不便だと言っている点についてオレは不便を感じたことはないな。 主観的且つ感情的な意味でしょうか?そうではないとしたら何か理由がおありですよね? 不便と思わない理由はなんでしょうか? >>248 スレ違いになるかもですね。 そろそろ退散したいと思います。
250 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:32:25 ] >そんなに頻繁に使うようならスクリプト ?
251 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 17:11:52 ] #!/usr/bin/perl # >>235 の望みを叶える夢のスクリプト: exec 'perl', '-pi.bak', '-e "tr/A-Z/a-z/"', shift; __END__
252 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:29:21 ] >>251 頭大丈夫?
253 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:41:39 ] 大丈夫な人も大丈夫じゃない人も大丈夫って答えるから 間抜けな質問というしかない。
254 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:55:57 ] >>184 @a = grep {/(foo|bar|baz)/} split /(foo|bar|baz)/ , $_;
255 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:30:26 ] こんばんは。 会社のHP作成を引き継いだのですが、わからないことがあるのでどなたか教えていただけないでしょうか。 コンボボックスを外部のテキストから読み込んでいるのですが、途中までしか表示されないのです。 0<>--<><> 1<>A<><> 2<>B<><> 3<>C<><> 4<>D<><> 5<>E<><> 6<>F<><> 7<>G<><> 8<>H<><> (中略) 14<>N<><> 上記が外部テキストの中身なのですが、コンボボックスには8までしか表示されないのです。 コンボボックスの方は #編集モード以外は表示するだけ、編集モード時はコンボボックスで表示 if (!$edit) {$html .= "<td align=\"center\"><table width=\"100%\">"; for ($l = 0; $l < $periods; $l++) { if ($showpname) { $html .= "<tr><td>$periodname[$l]</td>"; } $html .= "<td align=\"center\">$STATUSSTR[$stats[$l]]</td></tr>";} $html .= "</table></td>\n";} となっています。 全てを表示させるようにするにはどこを変えたらいいのでしょうか。 (これだけの情報では不十分でしたらすみません。 他にどんな情報が必要かも教えていただければ幸いです) Perl関連の本など読んでみたのですがわからなくて… 宜しくお願いします。
256 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:36:54 ] コンボボックスじゃなくて表で表示するコードに見えるが・・・。
257 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:48:58 ] >>256 さん あ、もしかしてここは関係なかったですかね… カレンダーの1日ごとにコンボボックスが入っているので、そのカレンダーの方のコードなんでしょうか… わからないことだらけのまま質問してしまってごめんなさい。 もう一度コードを見直してみます。
258 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:53:55 ] 読み込まれたテキストデータがコンボボックスのどの変数になってるのかがわからない。 perlコードの、$periods、$showpname・・・とやらが何なのかわからないと 何もアドバイス出来ないよ。
259 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:03:49 ] >>258 さん そうですか… $periodsなどなどは専門用語なのかなぁ、と思っていたのでそこから間違いだったのですね。 前任者とは全く連絡が取れず、初心者の私には何がなにやらさっぱりで… 失礼致しました。 もっと勉強して出直します!
260 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:23:13 ] periodつーたら何らかの「期間」じゃないのか?
261 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:39:39 ] >>260 さん 期間…カレンダー関係ですかねぇ。 日ごとにアルファベッドを選択して登録するんですけど、 何ヶ月か分をまとめて登録してそれをScriptで(?)違うページに呼び出すので、それですかねぇ… それにしても8番までしか出てこないのもどこかで指定してるんですかねぇ。 あまりにファイルが多すぎて、探すのに時間がかかりそうです…
262 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:52:49 ] >>255 本当にそのコードが該当コードなのかどうか怪しいね ありうるとすれば@STATUSSTRの中が"<select>…"といったhtmlになってるとか とりあえずPerlの配列変数は先頭の記号が $ だったり @ だったりするので それだけ注意して変数をさかのぼって行くとか お節介だけど$showpnameのif文、通らない場合に開始<tr>タグ欠けるよ
263 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:03:42 ] 俺なら解読するの諦めて書き直したくなるな
264 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:56:12 ] >>255 エスパーのおいらが予測するには、>>255 が挙げた箇所の次に } else { という行があり、その後の部分が問題の部分なんだろうな。
265 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:52:58 ] perlのソースコードの中に直接HTMLが書かれているなら 「type="select"」あたりで検索すれば、該当個所の近辺の コードに当たるんじゃないか?
266 名前:265 mailto:sage [2007/04/15(日) 06:55:31 ] 間違えた。「type="select"」じゃなくて「<select」だな。
267 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 23:51:49 ] >>255 さんには内緒で、実はその前任者さんをこのスレにお呼びしています^^。 実は前任者さん、その書き込みの様子をモニターを通して見ておりました。 では、心に引っかかっていた辛い過去。 あの時、伝えられなかった想いを今、、、
268 名前:デフォルトの名無しさん [2007/04/16(月) 00:50:06 ] perlの時代は終わった・・・ これからの初心者は、今の時代に合った言語を使ってくれ・・・ ・・以上
269 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 00:53:48 ] ruby?python?
270 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 01:04:26 ] 情報保護の時代だからな。 Whitespaceだろ。
271 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 04:53:46 ] 仕事をPHPいじってから、Perlを汚い言語だなんて言ってた自分の愚かさに気づいた。 Perlは消えなくていい。PHP、頼むから消滅してくれ。
272 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 04:56:25 ] s/(?<=仕事)を/で/
273 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 06:08:15 ] 255です。 皆さんどうもありがとうございます。参考になりました! ここで皆さんにお聞きするにはあまりにも自分が無知すぎて申し訳ないです。 更新は休みの土日しかできないので、来週までに色々調べてまた挑戦します。 >>262 さん なるほど… <tr>タグの件、ご指摘ありがとうございます! >>263 さん 書き直すなんて絶対無理ですので頑張って解読したいと思います… >>264 さん } else { って部分あります!! その部分に注意してみます。 >>265 さん 検索ですね。htmlがperlの中にあるので試してみます! >>267 さん 実は前任者とは全く面識がないので、あの時も何もあったもんじゃない、って感じなのですが…
274 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:16:33 ] >>225 すんげー今更だな google出来た頃から規約に書いてあるし www.google.co.jp/accounts/TOS
275 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 06:50:02 ] まさかLWP使ったらすべて自動クエリだとか思ってる訳じゃないよな。
276 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 06:59:52 ] >検索結果ページに対して ってあるからなぁ
277 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:36:22 ] 質問です $var = 010203 とあります これを $var = 01/02/03 このように2桁ごとにスラッシュを入れるにはどうしたらよいでしょうか? 0102 や 01、01020304 の場合などどの桁数にも対応したいです
278 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:43:51 ] perl -e '$var="010203"; $var=~s/([0-9]{2})/$1\//g;print $var;'
279 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 15:07:07 ] ありがとうございます できました
280 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 15:48:19 ] 正規表現の中にスラッシュがあるときはエスケープするより s{([0-9]{2})}{$1/}g とかの方が良い気がする
281 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:06:26 ] 0-9より\dのがいい気がする
282 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:11:38 ] '010203' のとき '01/02/03/' になる気がする
283 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:44:03 ] s{\d{2}(?=\d)}{$&/}g; かな
284 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:15:38 ] $& 使うくらいだったら普通に join したくなるなあ、俺は。 perl -le '$var = qq{010203} ; print join q{/}, ( $var =~ /(\d{2})/g )'
285 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:37:56 ] まあ一般には \d は 0-9 の必要条件であって同値ではないけどな。
286 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:46:31 ] こういうことか $ perl -e 'use utf8; print q[0] =~ /\d/' 1
287 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:03:19 ] J2EEの方がいい気がする
288 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:40:33 ] >>277 3桁区切りにカンマをつけるというのがよくあるから それを参考に好きなの使えば?
289 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:57:26 ] >>282 答えはそれでいいんだろ?
290 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 23:59:03 ] >>289 質問者の出してる例はそうは言ってないぞ。
291 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 03:02:24 ] >>277 Date::Manipでできんじゃね?
292 名前:壁| x ・)つ○ mailto:sage [2007/04/18(水) 03:09:07 ] こういうのは こうりつわるいですか? for ($i = 2; $i < rindex($var, ""); $i += 3) { substr($var, $i, 0) = "/"; }
293 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:07:56 ] $var = reverse( ( $var = reverse $var ) =~ s{(\d\d)(?=\d\d)}{$1/}g );
294 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:18:50 ] 近頃はs#・・・#・・・#って書き方見なくなったな
295 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 13:07:55 ] >>292 人間の読み書きの部分で効率悪いと思う
296 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:36:58 ] 1 while $var =~ s/(\d{2})(\d{2})/$1\/$2/g;
297 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:43:01 ] s/(\d{2})(?=\d{2})/$1\/$2/g
298 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:53:45 ] >>297 $2なんてないじゃん
299 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:11:53 ] >298 なにを言っているんだお前は。
300 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:40:37 ] いやさ、 (?= ) は後方参照を生成しないだろう? > perl -e "q/123/ =~ /(\d)(?=\d)(\d\d)/; print $2;" 23 そもそも、(?= )はゼロ幅先読みだろう。 > perl -e "q/123/ =~ /(\d)((?=\d))/; print $2;" (出力なし)
301 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:54:57 ] >>295 なるほど ワンライナーでさらっとかけるよう しょうじんいたします ・)つ● ←おれいのしな
302 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 10:56:55 ] >>300 そのとおり。適切な指摘ありがと。書いてから気がついた。 >>283 か、 s|(\d\d)(?=\d)|$1/|g みたいな感じで。
303 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:59:05 ] ファイル出力の質問です open IN , ">$failename"; print IN , "test; close IN; で、$filenameに絶対パスを入れたいんですが、なんかうまく言ってくれないんです Orz 助けてエロい人
304 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:02:26 ] >>303 > で、$filenameに絶対パスを入れたいんですが、なんかうまく言ってくれないんです Orz さあ、「なんかうまく言ってくれないんです」の「なんか」を推定するクイズです!!
305 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:08:28 ] これは流石に釣りだろう
306 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:11:10 ] エスパーの私がお答えしよう。 Windows で \ 記号がディレクトリ名の区切りなもんだから ダブルクォーテーションで括っただけだとエスケープと 解釈されちゃって変な文字列完成。→オープン→エラー。 そんなファイルはねえよヴォケと $! に入っている。
307 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:34:21 ] $failename (フェイルエネーム?) だからではないか・・・なんてことはないか。 そもそも IN じゃなくて OUT だろうと use Fatal qw(open close); open my $out, '>', $filename; print {$out}, "test"; close $out;
308 名前:307 mailto:sage [2007/04/19(木) 23:39:40 ] - print {$out}, "test"; + print {$out} "test";
309 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:40:55 ] {$out}
310 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:54:37 ] {$safe}
311 名前:265 mailto:sage [2007/04/19(木) 23:58:02 ] $failename =~ s/^/zettaipath\/;
312 名前:303 mailto:sage [2007/04/20(金) 00:05:38 ] みなさま マジでありがとうです こんな初心者をささえてくれてありがとお つω;
313 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 01:32:59 ] なんかうまく言えました
314 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:42:05 ] うまく言えないけれど宝物だよ
315 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:53:44 ] 僕たちはできる!! できるんだ!!
316 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 03:54:26 ] 最高ですか!!? 最高です!!!
317 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:14:51 ] プラス思考のスレはここですか?
318 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 15:30:27 ] プラス指向プログラミング POP
319 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:25:20 ] @http = $_ =~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/g; print FILEA @http; このような記述をしたら、 Variable "@http" is not imported at http-client.pl line 53. Variable "@http" is not imported at http-client.pl line 54. Global symbol "@http" requires explicit package name at http-client.pl line 53. Global symbol "@http" requires explicit package name at http-client.pl line 54. と言われました。 これは何のエラーですか!?
320 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 22:19:47 ] @httpを括弧でくくってください
321 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 23:21:12 ] >>319 Variable "@http" is not imported については、perldiagをどうぞ。 というか、「何の」もなにもperlが出しているエラーなんだからまずはここで調べるべし。 つ perldoc.jp/docs/perl/5.6.1/perldiag.pod とりあえず、use strictなのに @http が生で使われているのが原因ですので、パッケージを明示的に 指定して使うか、my宣言すればいいのでは。
322 名前:デフォルトの名無しさん [2007/04/21(土) 23:17:55 ] PDFを解析したいんですが、どのような方法で読み込んでいったらいいと思いますか? ちなみに、PDFの仕様として: ・改行文字はCR,LF,CRLF,のどれでもよい。 ・文字列内での改行文字はそのままのかたちで残さなければならない。 ・文字列内で(見た目のために)改行したいときは \改行文字 とする。 read(FILE, $buf, 512) ってのもめんどくさそうだし、できれば while(<FILE>) で 済ましたいんですが、意味のある改行もあるしなぁ。。。
323 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:20:39 ] >>322 何をしたいのか知らんが、まずCPANでPDF関係のモジュールを サーチしたほうがいいね。 あなたがしたいことを既に実現しているモジュールがあるかもしれないし、 少なくとも、改行文字の扱い方については、ソースの中にお手本が あると思うし。
324 名前:303 [2007/04/22(日) 04:50:29 ] 303ですが またまた超初心者な質問です。 requier './jcode.pl'; sub jis { $msg = $_[0]; &jcode'convert(*msg, 'jis'); } ってコードがあったのですが &jcode の後ろについている ' の意味がわかりません。 もしかして &jcode::convert(*msg,'jis'); と同義ですか? エディターの色分けが気持ち悪くなるので直したいです。教えてエロい人 Orz
325 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 05:35:13 ] Perl4
326 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 05:37:45 ] >>324 エロい人よりマニュアルに頼ろうよ。 <q cite="www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html"> 古いパッケージ区切り子はシングルクォートでしたが、 現在はダブルコロンを使うのが推奨されています。 </q> mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html#h2-2
327 名前:324 mailto:sage [2007/04/22(日) 11:13:18 ] なるほど! ありがとうございました >< Jcodeの使い方も含めて勉強してきます ><ノ
328 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:43:25 ] CPAN でインストールする際に以下のようなメッセージが出て失敗します。 Undefined subroutine &Compress::Zlib::gzopen called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 5721. 何をインストールしても大体このエラーが出て失敗します。 Zlib は、 /usr/local/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm にあって、サブルーチン gzopen もありました。 また、@INC に /usr/local/lib/perl5/site_perl/5.8.8 は含まれていました。 どこに問題があるか分からないのですが、教えてもらえないでしょうか。 環境は、 OSX 10.4.9 で Perl 5.8.8 を /usr/local/bin にインストールしました。
329 名前:デフォルトの名無しさん [2007/04/22(日) 16:09:08 ] >>328 あえて /usr/bin/perl ではなく /usr/local/bin/perl を使いたいわけね? で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、 /usr/local/bin/perl ってことに間違いはない?
330 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:35:51 ] >>329 レスありがとうございます。 >あえて /usr/bin/perl ではなく /usr/local/bin/perl を使いたいわけね? はい。ソースコードからインストールしたらそこにインストールされたので、 /usr/local/bin/perl を使っています。 >で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、 >/usr/local/bin/perl ってことに間違いはない? 間違いないはずです。 which perl で確認しました。 CPAN.pm の該当箇所をみると、 $CPAN::META->has_inst("Compress::Zlib") で判定した後に、 Compress::Zlib::gzopen を呼び出していました。 そこで gopen がないとなる理由がよく分かりません。
331 名前: ◆TWARamEjuA mailto:sage [2007/04/22(日) 17:40:08 BE:2287837-2BP(6823)] >>330 > >で、実際に使ってる(環境変数 PATH で優先的に参照される)のは /usr/bin/perl ではなく、 > >/usr/local/bin/perl ってことに間違いはない? > 間違いないはずです。 > which perl で確認しました。 $env してみると判るけれども標準ではpathが通っていないと思うですです。 PATH=/bin:/sbin:/usr/bin:/usr/sbin @MacOSX 10.4.9 もっぺん確認してみよう♪ ♯tu-ka未だに5.8.6のままなんだよなぁ。。。(´・ω・`) $ perl -v This is perl, v5.8.6 built for darwin-thread-multi-2level (with 3 registered patches, see perl -V for more detail)