[表示 : 全て 最新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/


398 名前:nobodyさん mailto:sage [2008/04/30(水) 18:11:00 ID:???]
>>393の質問ではintなしの>>394が正解とすべきなんじゃないか?
質問者の質問が悪いところまでフォローして手取り足取りするのが役目?

399 名前:>>393 [2008/04/30(水) 18:26:54 ID:9OxUbc+M]
皆さんどうもありがとうございます。
確かに>>398さんの言うとおりです。わざわざフォローして下さった親切なお二方に感謝します。

400 名前:nobodyさん mailto:sage [2008/04/30(水) 18:38:47 ID:???]
すいません。
どうも下記例のforeachのループの中で、さらにwhileのループを
回せないのですが、たぶん簡単な理由だとは思うのですが、
お助け下さい。

他にもこのようなforeachのループの中で、foreachのループも回せないと
思います。

foreach $number(@number){


while (<F2>) {
print "$number\n";
if (/$number/)
{
print "マッチしました\n";
print F3;
}
}
}

401 名前:nobodyさん mailto:sage [2008/04/30(水) 19:09:01 ID:???]
>>400
<F2>で同じ行数を複数回とりだしたい感じ?
だとしたらヒント:seek

402 名前:nobodyさん mailto:sage [2008/04/30(水) 19:10:23 ID:???]
>>400
1回目のforeachが終わったときに<F2>が空になる

403 名前:nobodyさん mailto:sage [2008/04/30(水) 19:48:00 ID:???]
whileに入る前に開きなおすのも手だな

404 名前:nobodyさん [2008/04/30(水) 20:17:59 ID:GavbPT5W]
一回目のループで開いてるファイルのファイル位置が終端にあるため
2周目はファイルを読み込むループが発生しません

解決法は2つ
・While の直前でファイルを開くようにする
・While の直前で seek を使ってファイル位置を先頭に戻す
です。
負荷は後者の方が幾分か軽いです

405 名前:nobodyさん mailto:sage [2008/04/30(水) 20:28:06 ID:???]
my @lines = <F2>;

場合によってはこれもありかなと思った。無駄にメモリ食うけど。

406 名前:nobodyさん mailto:sage [2008/04/30(水) 20:47:41 ID:???]
whileの中でforeachじゃ駄目なん?



407 名前:400 mailto:sage [2008/04/30(水) 23:43:57 ID:???]
すいません。seekというのは初めて知りました。
1回目のforeachが終わったときに<F2>が空になる ってマジですか。
例のループにseekを追加して、動くようにしていただけませんか?
お願いします。

408 名前:nobodyさん mailto:sage [2008/05/01(木) 01:39:53 ID:???]
>>400
初めてのPerlと続・初めてのPerl買えばいいよ。

409 名前:nobodyさん mailto:sage [2008/05/01(木) 12:48:54 ID:???]
コストの高い I/O をメインにループさせたほうがいいっすね

open(F2, "hoge.txt");
while (<F2>) {
  foreach $number(@number){
    〜
  }
}

close(F2);


410 名前:nobodyさん mailto:sage [2008/05/01(木) 13:18:21 ID:???]
>>407
自分でやれ。
できないなら金払って業者つかえ。
代行するところじゃなく、自分で作るためのヒントを与えるところだ。
ここまでヒントがそろったらあとは調べながらできる。

411 名前:nobodyさん mailto:sage [2008/05/01(木) 13:51:56 ID:???]
あとね、初心者なんだから記述を略すな
ちゃんと意味がわかってから略すように汁

412 名前:400 mailto:sage [2008/05/01(木) 23:38:01 ID:???]
>409 Thx 明日試してみます。seek(F2, 0, 0)では動かなかった。
>410 GW中くらい、自宅警備を止めてみたら?
>411 省略ハァ? 汁?

413 名前:409,411 mailto:sage [2008/05/01(木) 23:46:36 ID:???]
そういう口調ならてめぇで解決しろよ能無しチンカス糞野郎

414 名前:nobodyさん mailto:sage [2008/05/02(金) 00:07:00 ID:???]
> 省略ハァ? 汁?
ワロタ

415 名前:nobodyさん mailto:sage [2008/05/02(金) 05:46:04 ID:???]
まあ、なんだ
「ものを学ぶ姿勢」ってやつを身に着けないと成長できないよね

416 名前:nobodyさん mailto:sage [2008/05/02(金) 08:12:32 ID:???]
きっとこの人はこれからさきの人生も困ったら自分の力で解決しようとせず人を頼りにして生きていくんだろうな。
これ10代だったら笑って流せるけど、20代以上で本気で言ってたら深刻ww



417 名前:nobodyさん mailto:sage [2008/05/02(金) 10:22:44 ID:???]
定期的に沸くから慣れろwww

418 名前:nobodyさん mailto:sage [2008/05/02(金) 10:32:20 ID:???]
自分の書いてるのが略記だって事すらも気がついてないんだろうな

あと、これはおそらくは宿題だなw

419 名前:nobodyさん mailto:sage [2008/05/02(金) 11:18:57 ID:???]
延々と質問者を叩く・・・キモッ
とっくに質問者は消えてることに気づけよ禿げ

420 名前:nobodyさん mailto:sage [2008/05/02(金) 12:28:02 ID:???]
>>419
僕の予想が確かなら、質問者なら君のパソコンのモニタの前に居るよ。

421 名前:nobodyさん mailto:sage [2008/05/02(金) 12:37:17 ID:???]
>>420
はぁ?俺か?
ちゃうっちゅーねん
あほか

422 名前:nobodyさん mailto:sage [2008/05/02(金) 13:12:28 ID:???]
ノリが一緒でわろたwww

423 名前:nobodyさん mailto:sage [2008/05/02(金) 13:34:20 ID:???]
お前の粘着っぷりのほうがおもろい
医者いったほうがええんちゃうかw
リアルでアレかw

424 名前:nobodyさん mailto:sage [2008/05/02(金) 13:43:58 ID:???]
日本語が変でござるよ

425 名前:nobodyさん mailto:sage [2008/05/02(金) 14:15:25 ID:???]
ネット上での似非関西弁って餓鬼が凄む時に巻き舌になるのに似てる

426 名前:nobodyさん mailto:sage [2008/05/02(金) 14:47:41 ID:???]
それは言わないのが優しさだったのに・・・



427 名前:nobodyさん mailto:sage [2008/05/02(金) 15:08:52 ID:???]
質問者以外が必死になる理由が見つからない

428 名前:nobodyさん mailto:sage [2008/05/02(金) 18:44:35 ID:???]
ぼくが一番、perlをうまく操れるんだ!

429 名前:nobodyさん mailto:sage [2008/05/02(金) 23:07:56 ID:???]
>>427
思い込み激しいとか言われへん?
回りに迷惑かけても気づかないタイプだな
回答もしないのに罵倒するのはお前だけやろ
頭変すぎてわからんかw

430 名前:nobodyさん mailto:sage [2008/05/02(金) 23:28:43 ID:???]
>>429
そんならお前が回答してやれよ。 出来るもんなら。www

431 名前:nobodyさん mailto:sage [2008/05/02(金) 23:45:27 ID:???]
>>429
なんでそんなに必死なん?

432 名前:nobodyさん mailto:sage [2008/05/02(金) 23:59:11 ID:???]
GWで暇なんだろ

433 名前:nobodyさん mailto:sage [2008/05/03(土) 02:50:47 ID:???]
GW、通勤とか会社の中とか人が少なくていいよね。

434 名前:nobodyさん mailto:sage [2008/05/03(土) 03:07:39 ID:???]
いいですよね。客からの電話も鳴りませんし。

435 名前:nobodyさん mailto:sage [2008/05/03(土) 10:04:09 ID:???]
泣いてませんか?

436 名前:nobodyさん mailto:sage [2008/05/03(土) 18:44:15 ID:???]
内線もならないよね。



437 名前:nobodyさん mailto:sage [2008/05/03(土) 19:02:10 ID:???]
でもトイレに花子さん居るよね。

438 名前:フー子 [2008/05/04(日) 19:36:48 ID:798fbSDd]
Perl の CGI::Base とか CGI::Request モジュールって、
何のためにあるの?どうやって使うの?

439 名前:nobodyさん mailto:sage [2008/05/04(日) 19:50:31 ID:???]
>>398
初心者質問スレで何言ってるんだ。

440 名前: ◆TWARamEjuA mailto:sage [2008/05/04(日) 20:01:51 ID:??? BE:3267465-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
を眺めてみればよろしいかと。

例文を眺めればだいたい何がしたいのかが見えてくるかと。
英文は無理に読まなくてもよろしいかと。

441 名前:nobodyさん mailto:sage [2008/05/04(日) 20:22:15 ID:???]
pmという拡張子、ガクブル

442 名前:nobodyさん [2008/05/05(月) 14:08:42 ID: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";


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



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

Errors-Toヘッダはobsoluteだった気がします。
envelopeアドレスを指定するべし。sendmailに-fオプションに続けてアドレスを指定する。
ttp://sonic64.com/2004-11-07.html

444 名前:nobodyさん mailto:sage [2008/05/05(月) 16:36:56 ID:???]
つーか、今時、open(MAIL,"| $sendmail -t")やErrors-To:とか前世紀に
書かれた古文書を元にCGI作るな。めーわくだ。

445 名前:nobodyさん mailto:sage [2008/05/05(月) 18:19:44 ID:???]
批判だけならゾウリムシにもできる
例文または参考 URL ぐらい提示すればいいじゃない

446 名前:nobodyさん mailto:sage [2008/05/05(月) 19:20:18 ID:???]
ただでは断る。



447 名前:nobodyさん mailto:sage [2008/05/05(月) 20:15:30 ID:???]
>>446
しね

448 名前:nobodyさん mailto:sage [2008/05/05(月) 21:17:57 ID:???]
役立たずなテキストに騙される処を指摘してやったのに随分な言い草だな。

449 名前:BEET mailto:X [2008/05/05(月) 21:36:20 ID:???]
z-z.jp/index.cgi ここのスクリプト抜きたいんですけど、どうしたらいいのですか?

450 名前:nobodyさん mailto:sage [2008/05/05(月) 21:39:44 ID:???]
>>449
むり

451 名前:nobodyさん mailto:sage [2008/05/05(月) 21:57:12 ID:???]
>>449
ハッキングすればできるかもしれない。

452 名前:nobodyさん mailto:sage [2008/05/05(月) 22:16:06 ID:???]
スクリプト抜くってどういう意味なんですか?

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云々の前に日本語学校行け






[ 続きを読む ] / [ 携帯版 ]

前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