トップページ⇒php
1001コメント322KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/25(月) 19:25:51ID:???
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0421nobodyさん2008/05/02(金) 12:37:17ID:???
>>420
はぁ?俺か?
ちゃうっちゅーねん
あほか
0422nobodyさん2008/05/02(金) 13:12:28ID:???
ノリが一緒でわろたwww
0423nobodyさん2008/05/02(金) 13:34:20ID:???
お前の粘着っぷりのほうがおもろい
医者いったほうがええんちゃうかw
リアルでアレかw
0424nobodyさん2008/05/02(金) 13:43:58ID:???
日本語が変でござるよ
0425nobodyさん2008/05/02(金) 14:15:25ID:???
ネット上での似非関西弁って餓鬼が凄む時に巻き舌になるのに似てる
0426nobodyさん2008/05/02(金) 14:47:41ID:???
それは言わないのが優しさだったのに・・・
0427nobodyさん2008/05/02(金) 15:08:52ID:???
質問者以外が必死になる理由が見つからない
0428nobodyさん2008/05/02(金) 18:44:35ID:???
ぼくが一番、perlをうまく操れるんだ!
0429nobodyさん2008/05/02(金) 23:07:56ID:???
>>427
思い込み激しいとか言われへん?
回りに迷惑かけても気づかないタイプだな
回答もしないのに罵倒するのはお前だけやろ
頭変すぎてわからんかw
0430nobodyさん2008/05/02(金) 23:28:43ID:???
>>429
そんならお前が回答してやれよ。 出来るもんなら。www
0431nobodyさん2008/05/02(金) 23:45:27ID:???
>>429
なんでそんなに必死なん?
0432nobodyさん2008/05/02(金) 23:59:11ID:???
GWで暇なんだろ
0433nobodyさん2008/05/03(土) 02:50:47ID:???
GW、通勤とか会社の中とか人が少なくていいよね。
0434nobodyさん2008/05/03(土) 03:07:39ID:???
いいですよね。客からの電話も鳴りませんし。
0435nobodyさん2008/05/03(土) 10:04:09ID:???
泣いてませんか?
0436nobodyさん2008/05/03(土) 18:44:15ID:???
内線もならないよね。
0437nobodyさん2008/05/03(土) 19:02:10ID:???
でもトイレに花子さん居るよね。
0438フー子2008/05/04(日) 19:36:48ID:798fbSDd
Perl の CGI::Base とか CGI::Request モジュールって、
何のためにあるの?どうやって使うの?
0439nobodyさん2008/05/04(日) 19:50:31ID:???
>>398
初心者質問スレで何言ってるんだ。
0440 ◆TWARamEjuA 2008/05/04(日) 20:01:51ID:????2BP(7082)
>>438
君かわいいね。

・・・ぶつ森のスレかとオモタorz...

ttp://search.cpan.org/~mrjc/cvswebedit-v2.0b1/cvs-web/lib/CGI/Base.pm
ttp://search.cpan.org/~mrjc/cvswebedit-v2.0b1/cvs-web/lib/CGI/Request.pm
を眺めてみればよろしいかと。

例文を眺めればだいたい何がしたいのかが見えてくるかと。
英文は無理に読まなくてもよろしいかと。
0441nobodyさん2008/05/04(日) 20:22:15ID:???
pmという拡張子、ガクブル
0442nobodyさん2008/05/05(月) 14:08:42ID:GD7pTJpy
CGI掲示板を自作していますが、書き込み送信メールのSendmailによる送信処理でつまづきました。

以下のように記述すると、管理人である自分には登録メールが送られますが、
管理人以外に、書き込みした人にも登録確認メールが送られるようにしたいんです。

#Sendmailによる送信処理
if (open(MAIL,"| $sendmail -t")){
print MAIL "X-Mailer:legend2\n";
print MAIL "To: $administrator\n";
print MAIL "Errors-To: $administrator\n";
print MAIL "From: $administrator\n";
print MAIL "Subject: $subject\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "$mail_comment\n";
print MAIL "\n";
close(MAIL);
}
}

以下のどれかを使うのでしょうか?

print SENDMAIL "From: $sender <$from>\n";
print SENDMAIL "To: $to\n";
print SENDMAIL "Cc: $cc\n";
print SENDMAIL "Bcc: $bcc\n";


どうすれば良いか御教授下さい。宜しくお願いします。

0443nobodyさん2008/05/05(月) 14:20:17ID:???
>>442
# CGIは板違いだが、この処理自体はCGIと関係がないので。
if文のブロックを、Toヘッダだけ「書き込みした人」のアドレスにしてもう一度処理するか、
Toを「書き込みした人」のアドレス、CcまたはBccを「管理人」のアドレスにするか。

Errors-Toヘッダはobsoluteだった気がします。
envelopeアドレスを指定するべし。sendmailに-fオプションに続けてアドレスを指定する。
ttp://sonic64.com/2004-11-07.html
0444nobodyさん2008/05/05(月) 16:36:56ID:???
つーか、今時、open(MAIL,"| $sendmail -t")やErrors-To:とか前世紀に
書かれた古文書を元にCGI作るな。めーわくだ。
0445nobodyさん2008/05/05(月) 18:19:44ID:???
批判だけならゾウリムシにもできる
例文または参考 URL ぐらい提示すればいいじゃない
0446nobodyさん2008/05/05(月) 19:20:18ID:???
ただでは断る。
0447nobodyさん2008/05/05(月) 20:15:30ID:???
>>446
しね
0448nobodyさん2008/05/05(月) 21:17:57ID:???
役立たずなテキストに騙される処を指摘してやったのに随分な言い草だな。
0449BEET2008/05/05(月) 21:36:20ID:???
http://z-z.jp/index.cgi ここのスクリプト抜きたいんですけど、どうしたらいいのですか?
0450nobodyさん2008/05/05(月) 21:39:44ID:???
>>449
むり
0451nobodyさん2008/05/05(月) 21:57:12ID:???
>>449
ハッキングすればできるかもしれない。
0452nobodyさん2008/05/05(月) 22:16:06ID:???
スクリプト抜くってどういう意味なんですか?
0453nobodyさん2008/05/05(月) 22:44:54ID:???
ハァハァするんじゃないかな。
0454nobodyさん2008/05/05(月) 23:21:45ID:V/xhfGfA
ftpで接続しないとスクリプトは抜けないでしょう
0455BEET2008/05/06(火) 00:42:09ID:???
回答ありがとう。 ハッキングって.. 簡単なのかな? ソフトはできるだけ使いたくないな
0456BEET2008/05/06(火) 00:45:09ID:???
追記なんですけど
このレンタル掲示板の管理パスをクラックされて、改竄されたんだけど、どうやってクラックしてるのかな?
0457nobodyさん2008/05/06(火) 00:49:33ID:fJq/GBDg
(`・ω・´)??
0458nobodyさん2008/05/06(火) 00:50:15ID:???
>>455-456
>>1を100回声を出して読め。
読み終わったら610と三ポールのミックスカクテル飲め。
0459nobodyさん2008/05/06(火) 00:51:09ID:fJq/GBDg
(`・ω・´)ソフト使ってるだろww
0460nobodyさん2008/05/06(火) 09:09:26ID:???
Windowsローカルに入れたActivePerlで
cpan > install XML::ATOM::Feed
したのに、それを500エラーになってしまいます
(useしてるところをコメントアウトすると通る)
moduschで見たら「存在しないか、ロード出来ない」っぽい
なぜでしょうか…?
0461nobodyさん2008/05/06(火) 16:59:23ID:???
>>442
BCCで目的は達成できると思うけど、
自分のメールアドレスを、スパムを送りたい先などにされると
簡単にスパムの踏み台になるから気をつけてね。
0462nobodyさん2008/05/06(火) 22:50:17ID:wGWcI8Lv
AUTOLOADってのを初めて使ってみたんです。
未定義の関数を読んだら無事AUTOLOADが呼ばれたんですが、
変数$AUTOLOADを参照するとGlobal symbol〜っていうエラーが出てしまいます。
AUTOLOADを使う場合はno strictしていいものでしょうか。
0463nobodyさん2008/05/07(水) 00:05:35ID:???
use strict;
use warnings;

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

foo();
0464nobodyさん2008/05/10(土) 23:18:32ID:???
URL転送なんだけど今こうしてます↓

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

これに転送するまでHTMLの<meta content="x">みたいに
一定時間ウェイトかける事って出来るのでしょうか?
0465nobodyさん2008/05/10(土) 23:19:01ID:???
いいえ
0466 ◆TWARamEjuA 2008/05/11(日) 01:16:36ID:???
転送するまでひと寝入りする。
0467nobodyさん2008/05/11(日) 02:11:14ID:???
>>464
いい事いうじゃねえか。
出来るんだな?
今すぐ頼むぞ。
0468nobodyさん2008/05/11(日) 13:18:10ID:yMOlxpUv
print qq{あいうえお @{[1+1]} かきくけこ };

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

\$()
無名スカラーって存在しないんですかね。
いやそもそも@{[]}に式を埋め込めるのはそこをクォート内ではないと認識するからなわけで。
いや、う〜ん。確かこれなんかいい方法があったような期がするんですが。
0469nobodyさん2008/05/11(日) 23:02:44ID:Vy6R2X5C
Perlスクリプトの処理が全て完了する前に
クライアントとの接続を明示的にクローズする方法は
ありませんでしょうか?

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


#!/usr/bin/perl

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

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

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

exit;
0470nobodyさん2008/05/12(月) 01:08:40ID:CYOIx0A2
perlで重い処理をさせるのが困ります。
例えばパソコンの30%の能力だけ使わせるとかってできませんか?
0471nobodyさん2008/05/12(月) 01:16:51ID:???
>>470
それは知らないけど、nice付けて起動とかしてみては?
0472nobodyさん2008/05/12(月) 03:09:36ID:???
>>468

qq{  ${\do {1+3}}  }
0473nobodyさん2008/05/12(月) 04:50:44ID:???
>>469
close(STDOUT);
0474nobodyさん2008/05/12(月) 10:21:48ID:???
>>469
fork
0475nobodyさん2008/05/12(月) 16:03:50ID:???
WindowsXPでActivePerlを使って
クリップボードにあるテキストに処理を加えて
クリップボードに戻すプログラムを作ろうとしています。
Win32::Clipboardを使用しているのですが、Unicodeだと化けてしまいます。
Unicodeでも化けないで処理できる方法はあるでしょうか?
0476nobodyさん2008/05/12(月) 16:08:19ID:CYOIx0A2
>>472
思い出した!

print qq{ ${ \(1+1)} };
でしたね。
なるほどなるほど。${}これでデリファレンスができるというわけだ。
0477nobodyさん2008/05/12(月) 17:20:30ID:???
Win32::Clipboard が受け取るのは Shift_JIS 固定っぽいです
Encode でShift_JIS にして渡してみたらどうりますか?
0478nobodyさん2008/05/12(月) 18:00:21ID:???
>>477
回答ありがとうございます。
Shift_JISにない文字も処理したかったので
Win32::Clipboardでは無理と言うことですね。
Win32::Clipboard以外でクリップボードを利用できるものはありますか?
0479nobodyさん2008/05/12(月) 20:22:51ID:???
文字化けしないようにする方法教えてください
use LWP::Simple;
my $page = get('http://hogehogehoge.jp/');
getprint('http://hogehogehoge.jp/');
print $page
0480nobodyさん2008/05/12(月) 21:36:53ID:???
>>479
ヒント:Jcode
0481nobodyさん2008/05/13(火) 01:04:45ID:???
perl 文字化け でググれカス
04824792008/05/13(火) 03:44:42ID:???
エスジス保存しておいたソースファイルをEUCに変更保存してみたけど
何も変わんないですよ
0483nobodyさん2008/05/13(火) 06:45:22ID:???
>>482
「ソースファイル」ってのが上の us-ascii で足りそうなコードのことだったら
SJIS → EUC しても何も変わんないですよ。

環境その他も書かれてないし、変換に興味なさそうなので
perl hoge.pl > test.html
して「まともなエディタで見れば文字化けしない」でいいのかも。
0484nobodyさん2008/05/13(火) 13:57:38ID:???
>>464
Location:を表示する前にwaitをいれればおk
0485nobodyさん2008/05/17(土) 19:31:00ID:???
$obj = new Class;
$obj = Class->new();

この二つの違いは何ですか?
0486nobodyさん2008/05/17(土) 20:03:56ID:???
おんなじ。どっちのClassクラスのコンストラクタを呼んでるだけ。
Classってサブルーチンが定義されてるときに問題がおきることがあるので、
$obj = Class->new;
の形式のほうが推奨されるけど。
0487nobodyさん2008/05/17(土) 23:09:13ID:???
>486
ありがとんです
0488nobodyさん2008/05/18(日) 11:25:25ID:???
俺はコンストラクタを呼び出すときだけはnew Classってしてあとはぜんぶ$obj->sub()ってするかな。
0489nobodyさん2008/05/19(月) 06:36:14ID:???
なんだか、急にCPANでエラーで全く動かなくなったので、いろいろ調べてみたら、
ERRNO.pmが、MSWin32-x86-multi-thread-5.00(Windows Updateでいつの間にか変わってた)を弾いてた。

とりあえず、ERRNO.pmを書き換える(!)ことで対処したんだけど、
他に同じトラブルあってる人いません?
0490がんちゃん2008/05/19(月) 10:02:27ID:???
perlでImage::MagickのAnnotateを使って画像と文字を合成できたのですが
出来上がった画像を右クリックして保存しましたが
そのファイルが開けません。
何が原因でしょうか。宜しくお願いします。
0491nobodyさん2008/05/19(月) 11:27:27ID:???
>>490
開けないとは具体的にどういうこと?
単に、変なファイル名(拡張子)で保存してしまって、ダブルクリックしても関連づけの問題で開けないってことではなくて?
0492がんちゃん2008/05/19(月) 12:15:34ID:???
うっせーよ!それぐらい分かるっての!腐った回答してんじゃねぇよwww
0493がんちゃん2008/05/19(月) 12:29:05ID:???
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0494がんちゃん2008/05/19(月) 12:32:08ID:???
なんだここの人たちはこれぐらいの質問も答えられないの?
回答者が初心者のスレだったのか・・・
0495がんちゃん2008/05/19(月) 12:35:01ID:???
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0496nobodyさん2008/05/19(月) 14:06:12ID:???
print "Content-type: image/jpeg\n\n";
binmode STDOUT;
$image->Write('jpeg:-');

ソース晒せや。
0497nobodyさん2008/05/19(月) 14:11:40ID:???
なにこの流れ・・・
0498nobodyさん2008/05/19(月) 15:48:41ID:???
質問の仕方も知らないというか、質問の文章すら正しく書けない馬鹿が多すぎ
Perl云々の前に日本語学校行け
0499nobodyさん2008/05/19(月) 15:59:52ID:???
\E
0500nobodyさん2008/05/19(月) 16:39:50ID:???
はい、次
0501nobodyさん2008/05/19(月) 16:41:56ID:???
>>498
お前の文章が一番変だわ
0502nobodyさん2008/05/19(月) 18:36:38ID:82E4EJS9
すみません。ド素人です。
質問です。
Can't locate GD/Image.pm in @INC (@INC contains: C:/perl/site/lib C:/perl/lib .)
というソフトウェアエラーが出て、CGIを実行できません。
どうかどうか、教えてください。
0503nobodyさん2008/05/19(月) 18:38:59ID:???
GD を入れてください

はい次
0504nobodyさん2008/05/19(月) 18:39:34ID:82E4EJS9
GDは入れてるんですけど、image.pmってのがなにか、わかんないんです。。。
0505nobodyさん2008/05/19(月) 18:44:49ID:???
GD-Image-Thumbnail でも居れておきゃえぇんとちゃうのん?
0506nobodyさん2008/05/19(月) 18:45:58ID:82E4EJS9
505さん ありがとうございますぅやってみます。
0507nobodyさん2008/05/19(月) 18:47:44ID:???
http://search.cpan.org/~lds/GD-2.39/GD/Image.pm.PLS
0508nobodyさん2008/05/19(月) 18:54:23ID:82E4EJS9
507さん。。ありがとうです。
けど、このページの、なにをどうすればいいのか。
わかりません
どうしようもない素人なので。。
0509nobodyさん2008/05/19(月) 19:12:16ID:???
*.pmってのはPerlモジュール
エラーの内容は「このモジュールがみつからないよパパ」
→インスコor場所確認
とりあえずモジュールが入ってるか確認する
→ぐぐる
入っていない場合、モジュールをインスコする
→ぐぐる
入っている場合、パスを確認する
→ぐぐる
0510nobodyさん2008/05/19(月) 19:26:15ID:???
GDのバージョンを2.39に上げれば解決。
0511nobodyさん2008/05/19(月) 19:58:48ID:???
「初心者」「素人」は分からないからフルサポートしてもらえる理由になりません。
0512nobodyさん2008/05/19(月) 20:03:39ID:82E4EJS9
GD2.39の中のGD.pmとGDフォルダを /perl/libの中にドラック&ドロップしてるんです。
これは、どこかのサイトに書いてあったので。しました。
そしたら、エラーがでて。GD/Image.pmがどうのこうのとなってまして。
505さん507さん509さん510さんの言葉も、正直、理解しきれてない状況です。
まず、インスコというのが、コマンドプロンプトでするらしいとどこかに書いてて、
してみたんですけど。まず、「ppm」とすると、perlpackagemanagerが起動して、
その中に、GDがなくて。どやってインストールしていいのかも、わかんない感じです。
すみません長々と。どうかお助け願います。。
0513nobodyさん2008/05/19(月) 20:03:43ID:???
ローカルで試そうとしてるやつが、
どうしようもない素人を名乗るなよ。
向上心ねぇのか
0514nobodyさん2008/05/19(月) 20:16:06ID:???
>>512
http://www.bribes.org/perl/ppmdir.html
ここへいってら。

それができたら、こっちも回っておくように。
http://theoryx5.uwinnipeg.ca/ppms/
0515nobodyさん2008/05/19(月) 20:18:47ID:82E4EJS9
514さんありがとうございます。
読んでます。
0516nobodyさん2008/05/19(月) 21:08:55ID:82E4EJS9
やっぱりエラーになります(涙
0517nobodyさん2008/05/19(月) 21:35:03ID:???
リポジトリを増やしたのだからインストールできるはずだが。

掲示板なんだから、レスに主語と述語をはっきり書いてくれ。
とりあえず、頭にエラーが出たのか?
0518nobodyさん2008/05/19(月) 22:17:16ID:???
良く読んでないけど、
スタート→すべてのプログラム→ActivePerl→Perl Package Managerで
必要なものをクリック、クリック!した方が楽で簡単だよ。
0519nobodyさん2008/05/19(月) 23:01:51ID:82E4EJS9
perl package managerの中に GDが見当たらないんです。
コマンドプロンプトで CPANから install GDってしても
できないんです。
GD/image.pmが@INCに無いっていうエラーが出るんです。517さん。
0520nobodyさん2008/05/19(月) 23:13:22ID:???
>>519
>>514サイトをよく読んでppmにリポジトリを追加すると、GD 2.39がインストールできるようになる。
ちゃんとリポジトリを追加したか?
それでも出ないというのなら、ppmに問題があることになる。
■ このスレッドは過去ログ倉庫に格納されています