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

Perl コーディング初心者質問コーナー Part35

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/05/26 16:48ID:kkhhiYmo
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0002nobodyさん04/05/26 16:49ID:kkhhiYmo
関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc2.2ch.net/test/read.cgi/php/1077525387/
【 スクリプト改造依頼スレ 】(丸投げ)
http://pc2.2ch.net/test/read.cgi/php/1076831972/
△▲ WebProg 初心者の質問 Part8 ▼▽
http://pc5.2ch.net/test/read.cgi/php/1078568723/
【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/
★負荷軽減対策委員会(Perl、PHP)★
http://pc2.2ch.net/test/read.cgi/php/1034645635/
【Perl】掲示板を使ろう!
http://pc2.2ch.net/test/read.cgi/php/988890976/
Perlモジュールについて
http://pc2.2ch.net/test/read.cgi/php/997829243/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
0003nobodyさん04/05/26 16:50ID:kkhhiYmo
[過去ログ] 1 of 2

Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
 DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
 DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
 DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
 DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/php/kako/996/996075607.html
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/php/kako/1009/10095/1009549309.html
Part10 http://pc.2ch.net/php/kako/1014/10145/1014556702.html
Part11 http://pc.2ch.net/php/kako/1017/10172/1017201229.html
Part12 http://pc.2ch.net/php/kako/1019/10199/1019917048.html
Part13 http://pc.2ch.net/php/kako/1022/10227/1022731565.html
Part14 http://pc.2ch.net/php/kako/1026/10269/1026977659.html
Part15 http://pc.2ch.net/php/kako/1028/10288/1028816385.html
0004nobodyさん04/05/26 16:50ID:kkhhiYmo
[過去ログ] 2 of 2

Part16 http://pc.2ch.net/php/kako/1032/10320/1032070299.html
part17 http://pc.2ch.net/php/kako/1034/10345/1034583844.html
part18 http://pc.2ch.net/php/kako/1037/10377/1037797479.html
part19 http://pc.2ch.net/php/kako/1042/10422/1042260745.html
part20 http://pc2.2ch.net/php/kako/1044/10447/1044717887.html (タイトルに19と誤記)
part21 http://pc2.2ch.net/php/kako/1047/10479/1047980851.html
part22 http://pc2.2ch.net/php/kako/1050/10503/1050369328.html
part23 http://pc2.2ch.net/php/kako/1053/10530/1053051519.html
part24 http://pc2.2ch.net/php/kako/1054/10549/1054992610.html
part25 http://pc2.2ch.net/php/kako/1056/10567/1056730690.html
part26 http://pc5.2ch.net/php/kako/1059/10590/1059043704.html
part27 http://pc5.2ch.net/php/kako/1060/10608/1060808783.html
part28 http://pc5.2ch.net/php/kako/1063/10635/1063562491.html
part29 http://pc5.2ch.net/php/kako/1066/10662/1066286828.html
part30 http://pc5.2ch.net/test/read.cgi/php/1069846177/
part31 http://pc5.2ch.net/test/read.cgi/php/1072896288/
part32 http://pc5.2ch.net/test/read.cgi/php/1075545279/ (タイトルに31と誤記) 前スレ
part33 http://pc5.2ch.net/test/read.cgi/php/1078076768/
part34 http://pc5.2ch.net/test/read.cgi/php/1081148490/
0005nobodyさん04/05/26 16:51ID:kkhhiYmo
[ひまぢん氏のミラー]
Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html


[総合]
 ・http://www.excite.co.jp/world/ # 英文のページ多いから一応
 ・Perl Com: http://www.perl.com/
 ・CPAN.com: http://search.cpan.org/
 ・ActivePerl: http://www.activestate.com/
 ・CGI-ML:http://forest.ne.jp/cgi-ml/

[お薦め]
 ・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm ★読んどけ
 ・Perl Recipes: http://www.effectiveperl.com/recipes/ # 死んでるか?
 ・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
 ・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
 ・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/
 ・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htm
 ・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/
0006nobodyさん04/05/26 16:52ID:kkhhiYmo
 [Document&Tutorial]
 ・Home - Japanized Perl Resources Project: http://perldocjp.sourceforge.jp/
 ・Perl Monks: http://www.perlmonks.org/
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.html
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/
 ・The Perl Archive : http://www.perlarchive.com/
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/
 ・use Object; : http://perl.infoware.ne.jp/
0007nobodyさん04/05/26 17:13ID:???
PostgreSQLで、
createuser hoge with password hogeでhogeというゲストユーザを追加し、
権限を持つユーザで、testdbというデータベースに入って、
grant select on testtable to hoge;
で読み取り権限のみを与えたのですが、
DBD::Pgで、このデータベースに接続しようとすると、
DBI connect('dbname=testdb','hoge',...) failed: (no error string)
と言われて繋がりません。
IDとパスを権限を持っているユーザのものに書き換えると繋がるのですが…。
原因がわからず困っています。どなたか知恵を貸してください。
Perl5.6.1、PostgreSQL1.4.2です。
0008nobodyさん04/05/26 17:23ID:???
スレタイ100回音読汁
0009nobodyさん04/05/26 17:39ID:???
PerlでのCookieで質問です。
フォームにテキストフィールドが3つあり、POST時にCookieに取り込み、再びフォームのページを表示させるとあらかじめ値が入るようにしています。

  $vaild = ("Tue, 31-12-2030 23:59:59 GMT");
  $cookie_data = "name\:$name<>mail\:$mail<>color\:$color";
  print "Set-Cookie: $title=$cookie_data; expires=$vaild\n";

このようにしているのですが、この状態ですと3つの値が同一のCookieに取り込まれます。
有効期限(この場合は$vaild)も同一ですので、期限が切れれば全部の値が無効になりますが、
この中で特定の値(例えば$colorだけなど)の有効期限を変更するということはできるのでしょうか。
Cookie取得後は3つのフィールドに値が入っていた状態を、一定期間後にフォームのページを見ると2つのフィールドのみに値が入るようにしたいのです。
0010nobodyさん04/05/26 17:44ID:???
>>9
クッキー別にすればいい。
0011nobodyさん04/05/26 23:44ID:???
>PostgreSQL1.4.2

釣りか?
0012nobodyさん04/05/27 11:19ID:???
Possible attempt to put comments in qw() list
という警告が出てしまいます。

もちろん use strict しているのですが、はずしても出ます。
動作上は問題ないのですが、出来れば出ないようにしたいと思ってます。
警告内容は qw() で記述した配列内に # の文字があるのでこれが
コメント文字とバッティングするということだと思います。
どうしても配列要素が膨大で、いちいちクウォートするのを回避できれば
と思っています。
もちろん、no warnings すれば出ないのですが、もっといい方法がない
でしょうか?
00131204/05/27 11:27ID:???
すいません、解決しました。 # の要素順番を変えたら出なくなりました。
00141204/05/27 11:29ID:???
すいません、やっぱり出ました。もうわからなくなりました。
じぶんがなにものかさえも・・・
00151204/05/27 12:27ID:???
何だか直ったりおかしくなったりの繰り返しです。
何がいけないのでしょうか・・・
0016nobodyさん04/05/27 12:27ID:???
>>12
素直にno warnings使うのがいいと思うがな。そのためのもんだし。
不安ならブロックの中に閉じ込めてno warnings "qw"とかすれば
他の警告への影響も最低限になるだろう。

あるいは

@a = split(/\s+/, <<QW);
foo baa
foo#bar abc
xyz
QW

とかする手もなくはないがそこまでする?
0017nobodyさん04/05/27 13:25ID:???
>>16
5.005 辺りまではそういう風に実装されてたよ。

#--- test.p ---
my @array = qw(a b c d e);
__END__

> perl5.005 -MO:Deparse test.p
my(@array) = split(/\s+/, 'a b c d e', 0);

> perl5.8.3 -MO:Deparse test.p
my(@array) = ('a', 'b', 'c', 'd', 'e');
0018nobodyさん04/05/27 13:27ID:???
>>17
ごめん。 s/-MO:/-MO=/g
0019nobodyさん04/05/27 20:42ID:1K93G7MZ
質問です。
Net::Telnetを使ってroot権限で作業をしたいのですが
suでのログインがうまくいきません。

timed-outになるので恐らくパスワード待ちの状態でタイムアウトしてると
思うのですが正しいコマンドを知っている方いましたら教えてもらえないでしょうか?


my $host = 'host';
my $user = 'user';
my $pass = 'pass';
my $prompt = '/\[.+\]/';
my $supass = 'supass';

my $telnet = new Net::Telnet(
Timeout => 10,Prompt => $prompt,);

$telnet->open($host);
$telnet->login($user, $pass);

$telnet->cmd("su");
$telnet->waitfor(/Password: /);
$telnet->cmd("$supass");
0020nobodyさん04/05/27 20:46ID:1K93G7MZ
質問です。
Net::Telnetを使ってroot権限で作業をしたいのですが
suでのログインがうまくいきません。

timed-outになるので恐らくパスワード待ちの状態でタイムアウトしてると
思うのですが正しいコマンドを知っている方いましたら教えてもらえないでしょうか?


my $host = 'host';
my $user = 'user';
my $pass = 'pass';
my $prompt = '/\[.+\]/';
my $supass = 'supass';

my $telnet = new Net::Telnet(
Timeout => 10,Prompt => $prompt,);

$telnet->open($host);
$telnet->login($user, $pass);

$telnet->cmd("su");
$telnet->waitfor(/Password: /);
$telnet->cmd("$supass");
0021nobodyさん04/05/27 20:46ID:1K93G7MZ
質問です。
Net::Telnetを使ってroot権限で作業をしたいのですが
suでのログインがうまくいきません。

timed-outになるので恐らくパスワード待ちの状態でタイムアウトしてると
思うのですが正しいコマンドを知っている方いましたら教えてもらえないでしょうか?


my $host = 'host';
my $user = 'user';
my $pass = 'pass';
my $prompt = '/\[.+\]/';
my $supass = 'supass';

my $telnet = new Net::Telnet(
Timeout => 10,Prompt => $prompt,);

$telnet->open($host);
$telnet->login($user, $pass);

$telnet->cmd("su");
$telnet->waitfor(/Password: /);
$telnet->cmd("$supass");
002219-2104/05/28 01:38ID:???
悪気はなかったんです・・_| ̄|●
書き込んだらサーバーエラーになってCtrl+F5押しても
書き込まれてなかったのでうっかり・・・

本当に申し訳ないです。

できれば解答をお願いしたいです
0023nobodyさん04/05/28 01:48ID:???
>>19-22
- $telnet->waitfor(/Password: /);
+ $telnet->waitfor('/Password: /');
0024nobodyさん04/05/28 03:46ID:???
$telnet->cmd("su"); → $telnet->print("su");
cmdはプロンプトを待つ。
デバッグするならDump_Logぐらい取れよ。
0025nobodyさん04/05/28 15:08ID:NnBdFpi6
http://www.kokobbs.com/ahhan/right/right01.html
アッハンという2ちゃん型掲示板を使っているのですが
トリップ設定部分でパスワードを○○と入力→コテが表示
と言う機能を使う際、コテ名を漢字にするとスクリプトエラーに
なってしまいます。
\マークを入れても同様です、どうすればよいでしょうか?
0026nobodyさん04/05/28 16:02ID:???
聞く場所間違ってるぞ。
配布元にサポートBBSがあるじゃないか。
00272504/05/28 23:44ID:NnBdFpi6
すいません私の勘違いでした。
0028nobodyさん04/05/29 14:19ID:eHv0ssyS
質問です、

1.あるサイトを運営しているのですが、顧客管理のcgi(画面)で、顧客をある条件(性別や年齢)
等で抽出し、そのヒットした顧客を画面に表示し、さらに、チェックボックスでチェックされた
顧客に対してのみsendmail にてお知らせメールを送る機能を追加しようとしています。

2.それで、抽出した顧客の一覧(チェックボックス付き)の画面出力まではできたのですが、
sendmailプログラムにチェックボックスにチェックされたユーザの一覧データがうまく送信されません。

3.エラーはでないのですが、チェックされた顧客が10人あっても一人分しかメール送信されません。

具体的に言いますと

form method=post action=cgi
input type=checkbox name=mail_to value=a
input type=checkbox name=mail_to value=b
/form

で、タイプをチェックボックスとして、cgiに渡します。
この場合、cgiで受け取るデータはどの様な形式で入ってくるのでしょうか?
name が同一の名前なので、 配列 $mail_to[0] $mail_to[1]
かと思ったのですが、違うようですし、 データの内容がカンマで区切られて入ってくるでもないようですし・・

尾永井します

0029nobodyさん04/05/29 14:23ID:???
>>28
スレタイ嫁
0030nobodyさん04/05/29 14:30ID:???
全角は(ry
0031nobodyさん04/05/29 14:33ID:???
>28
標準入力を変数に変換している部分による。
同一の名称のフォームオブジェクトのデータを受け取りたいならその部分を修正しなければならない。
その部分のコードが読めるならなぜ一つしか受け取れないかもわかるはず。
なお、Perlで受け取る時点では「mail_to=a&mail_to=b」などの形で入っている。

ちなみに、こういう場合は同一名称のチェックボックスにならないように工夫する方が一般的。
00322804/05/29 14:35ID:eHv0ssyS
>>31

さすが、プロ詳しいですね。
今日は、眠れそうです。サンクスコ
0033nobodyさん04/05/29 15:00ID:???
>>32
標準(?)のCGI.pmならparamをリストコンテキストで呼べば
複数の値を受け取れたと思う。

@mail_to = $cgi->param('mail_to');
0034nobodyさん04/05/29 16:40ID:???
普通は同じ名前は避けるべきだろ
00352804/05/29 17:17ID:eHv0ssyS
>>33
検索したら、そおゆうのがありました。
サンクス
0036nobodyさん04/05/29 17:54ID:???
>>34
普通に使うよ。使わない理由も無いし。
0037nobodyさん04/05/29 19:01ID:UPbtVCfi
open (IN, $file) or die "$!";

while (<IN>) {
# 各行をカンマ区切りで分割
@body = split(/,/, $_);
@data = split(/:/, @body);

ファイルを開いて、カンマで区切った後、それをさらに:で区切ろうと思ったのですがうまくいきません。
どうしたらいいですか?
0038nobodyさん04/05/29 19:18ID:???
>>37
http://flex.ee.uec.ac.jp/texi/perl/perl_56.html
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlre.html

my @data = split /[,:]/;
0039nobodyさん04/05/29 19:37ID:UPbtVCfi
>>38
ありがとうございます。
そんな技があったとですね
0040nobodyさん04/05/29 20:08ID:???
>>36
いや、ネタはいいから
0041nobodyさん04/05/29 20:21ID:???
>>40
普通使うぞ。
きちんと配列に格納すれば値をいくつ渡しても配列でらくらく操作。
0042nobodyさん04/05/29 20:23ID:???
普通の基準を聞きたいな。
少なくとも俺は使わない。
今までは使っているソースを見たこともない。
0043nobodyさん04/05/29 20:28ID:???
配列を使わない方が普通と言わんとばかりの煽りだな(プ
0044nobodyさん04/05/29 20:36ID:???
まぁ、使う場合は使うよな。普段はそんなに使わないが
0045nobodyさん04/05/29 21:07ID:???
ifの文章でなら書けるのですがもっと簡単に書ける方法がないか教えてください。

if ($pass eq aa ) { $name = "ああ";}
if ($pass eq bb ) { $name = "いい";}
if ($pass eq cc ) { $name = "うう";}
if ($pass eq dd ) { $name = "ええ";}
 ・
 ・
みたいなのがずっと続くんですが。。
■ このスレッドは過去ログ倉庫に格納されています