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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/12(金) 01:26:47ID:mHnZWvqz
Perlのコーディングで困ってる人のスレです。

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

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

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

過去ログやお勧めサイトは >>2-10
0002nobodyさん2005/08/12(金) 01:28:01ID:4W8j9IZT
関連スレ
ウンコがくさい
http://ex11.2ch.net/test/read.cgi/news4vip/1123777673/
0003nobodyさん2005/08/12(金) 01:28:57ID:4W8j9IZT
前スレ
僕のあそこ
http://ex11.2ch.net/test/read.cgi/news4vip/1123777720/
0004nobodyさん2005/08/12(金) 01:29:10ID:4W8j9IZT
4様
0005nobodyさん2005/08/12(金) 01:29:40ID:4W8j9IZT
5
0006nobodyさん2005/08/12(金) 01:30:39ID:???
関連スレ
CGIだけど、なんか質問ある? Part 12
http://pc8.2ch.net/test/read.cgi/php/1097334246/

【Perl,CGI】参考書籍 第三版
http://pc8.2ch.net/test/read.cgi/php/1030209573/

【Perl】ファイルロック(排他処理)について語ろう
http://pc8.2ch.net/test/read.cgi/php/1024795138/

★負荷軽減対策委員会(Perl、PHP)★
http://pc8.2ch.net/test/read.cgi/php/1034645635/

Perlモジュールについて
http://pc8.2ch.net/test/read.cgi/php/997829243/

CGIに依存しないPerlの話題一般/Part2
http://pc8.2ch.net/test/read.cgi/php/1030548610/

★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1077525387/

【 スクリプト改造依頼スレ 】(丸投げ) part3
http://pc8.2ch.net/test/read.cgi/php/1105046286/
0007nobodyさん2005/08/12(金) 01:31:45ID:???
[過去ログ] 1 of 4

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
0008nobodyさん2005/08/12(金) 01:32:15ID:???
[過去ログ] 2 of 4

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
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と誤記)
0009nobodyさん2005/08/12(金) 01:32:45ID:???
[過去ログ] 3 of 4

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/
0010nobodyさん2005/08/12(金) 01:33:35ID:???
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/
part35 http://pc5.2ch.net/test/read.cgi/php/1085557731/
part36 http://pc5.2ch.net/test/read.cgi/php/1089779036/
part37 http://pc5.2ch.net/test/read.cgi/php/1093106507/
part38 http://pc5.2ch.net/test/read.cgi/php/1097158988/
part39 http://pc5.2ch.net/test/read.cgi/php/1101522903/
part40 http://pc5.2ch.net/test/read.cgi/php/1106816922/

part41 http://pc8.2ch.net/test/read.cgi/php/1110383236/
part42 http://pc8.2ch.net/test/read.cgi/php/1116970588/(前スレ)
0011nobodyさん2005/08/12(金) 01:35:19ID:???
ム板Perlスレより

[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www5a.biglobe.ne.jp/~n_rieko/perl/

[本]
リャマ: http://www.oreilly.co.jp/BOOK/lperl3/
駱駝: http://www.oreilly.co.jp/BOOK/pperl3v1/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/BOOK/pcook/

[オンラインマニュアル]
Perldoc.com: http://perldoc.com
perldoc.jp: http://perldoc.jp
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/%7ekbk/perl5.005/

[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://member.nifty.ne.jp/hippo2000/

[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/


関連スレ

正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0012nobodyさん2005/08/12(金) 03:15:49ID:???
>>2-5
の慌てぶりにワラタ
0013nobodyさん2005/08/12(金) 03:36:54ID:???
>>11
ム板 Perl スレより。

[プログラミング自体の経験が無い奴はまずココを読め] (移転)
Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/

[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.7/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
日本語ドキュメント検索: http://search.cpan.jp/

[Perl5.8Unicodeメモ]
ttp://www.pure.ne.jp/~learner/program/Perl_unicode.html
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0014nobodyさんNGNG
「危険だ!」と頭ごなしにしないで、あえて聞いてもらいたい。指摘してもらいたい。

PerlでCGIスクリプト群を作ってるんだけど、新しいバージョンを作る度にユーザー
にインストールしてもらうのが煩雑。そこで、ネットワークアップデート機能はできない
ものか? と思ってるんだけど。

----------------------------
・SuEXEC環境を前提で
・アップデート用CGIを動かすと、現在インストールされているCGIスクリプト群のversion
 を、公式配布サイトの最新版と比較。
・古ければダウンロードしてアップデート。

・アップデートCGI自体のアップデート・・・はとりあえずおいておいて。
・ネットワークごしに持ってきた最新版が、そのWebサーバ環境で動くか?そこらへん
 の設定はうまく別ファイルに隔離したりして対処するとして。
----------------------------

危険ですか? だとしたら理由を教えて欲しい。

もうすでにそういう仕組みある? あったら教えて欲しい・・・。

よろしくお願いします。
0015nobodyさん2005/08/12(金) 04:06:17ID:4W8j9IZT
>>12
そうだよ
急いで糞スレたてるの大変だったよー
0016nobodyさん2005/08/12(金) 04:52:46ID:???
>>14
その"公式配布サイト"が、最初はまともなスクリプトだったけど、
後で (アップするとき) 悪質なスクリプトを埋め込んだとしたら、君、潰れるよ?
0017nobodyさんNGNG
>>17 そうですね。そうだと思います。ただそれは「信用」のレイヤーの話になるかと。

0018nobodyさんNGNG
間違えたー! >>16 だった!
0019nobodyさん2005/08/12(金) 05:43:34ID:???
>>14
漏れフリーでスクリプト配布しているけど
何かしらの改変をして運用してる場合が多いのでかえって迷惑鴨。
商用だとアップデートで動かなかった場合に責任問題で訴えられる鴨。
0020nobodyさん2005/08/12(金) 06:01:01ID:???
せめて バージョンアップしました のメッセージが流れる程度にしてもらいたい。
0021nobodyさんNGNG
自動的にアップデートしてしまう っていう所までは考えていないんですけどね。
ユーザーが望めばクリック一発で最新版にアップデート!っていう感じなんですけどねえ。
0022nobodyさん2005/08/12(金) 12:38:41ID:???
重度自己陶酔型論破厨房警報
0023nobodyさん2005/08/12(金) 13:30:02ID:???
LPWかなんか必要になるけどレンタルサーバーでは悪用を恐れてそれ自体インストール不可だったりする。
配布元でRSS付けて配布BBS内にそのリンクを貼る、じゃだめかい?
で、そのためにXML::RSSを使うと。
0024nobodyさん2005/08/12(金) 14:25:48ID:???
質問させてください。

Perlを用いてメールを送信するCGIを作成したいのですが、
使っているサーバがSMTP-Authと呼ばれる認証を使っているらしく、
ググって見つけたサンプルソースを利用しても接続できません。
何か特別な方法をしないと無理なんでしょうか。
よろしければご教授願います。

ソースは下にあります。
$send_dataにはメールヘッダ情報を記載しています。
0025nobodyさん2005/08/12(金) 14:26:42ID:???
/*-----ソース-----*/
#!/usr/bin/perl
use Socket;
$server="***.**.**.**";
$to="***@***.**.**";
$from="***@***.**.**";
$subject="test mail";
$data="test";

$port = getservbyname('smtp','tcp');
$struct = pack_sockaddr_in($port,inet_aton($server));
socket(SH, PF_INET, SOCK_STREAM, 0) || die("ソケットの生成失敗 $!") ;
connect(SH, $struct ) || die("接続失敗 $!") ;
select(SH); $| = 1; select(STDOUT);
$respons = <SH> ;
unless($respons =~ /^220/) { close(SH); die("接続失敗 $!") ; }

$command = "HELO $server\n";
print SH $command ;
$respons = <SH> ;
&decode(\$respons) ;
unless($respons =~ /^250/){ close(SH); die("HELOコマンド失敗 $!") ; }

$command = "MAIL FROM:$from\n";
print SH $command ;
$respons = <SH> ;
&decode(\$respons) ;
unless($respons =~ /^250/){ print SH "RSET\n"; close(SH); die("MAILコマンド失敗 $!") ; }
0026nobodyさん2005/08/12(金) 14:27:18ID:???
/*-----続き-----*/
$command = "RCPT TO:$to\n";
print SH $command ;
$respons = <SH> ;
&decode(\$respons) ;
unless($respons =~ /^25[0|1]/){ print SH "RSET\n"; close(SH); die("RCPTコマンド失敗 $!") ; }

$command = "DATA\n";
print SH $command ;
$respons = <SH> ;
&decode(\$respons) ;
unless($respons =~ /^354/){ print SH "RSET\n"; close(SH); die("DATAコマンド失敗 $!") ; }

$command = "$send_data\n";
print SH $command ;
print SH ".\n";
$respons = <SH> ;
&decode(\$respons) ;
unless($respons =~ /^250/){ print SH "RSET\n"; close(SH); die("本文、ヘッダ部送信失敗 $!") ; }

$command = "QUIT\n";
print SH $command ;
close(SH); select(STDOUT);
print "MAILは正常に送信されました。\n";
0027nobodyさん2005/08/12(金) 18:15:23ID:???
>>24
頭悪すぎ、SMTP-Authが必要といってるサーバにSMTPでメール投げても駄目に決まってるだろ。
0028nobodyさん2005/08/12(金) 18:50:28ID:???
>>14
危険という話はおいておくとその機能は便利だね。
ファイルもってくる事自体はLWPもuse Socketも必要とせず出来る。bindする事を制限されていないのであれば。
スクリプト実行中に実行元のスクリプトファイルを書き換えても問題無いです。
上書きなら所有者、パーミッションは引き継がれる。
そもそもsuexecならファイル作成、chmodは問題なく行えます。
一番問題なのは折れない心
0029nobodyさん2005/08/12(金) 18:56:39ID:???
>>24
http://www.puni.net/~mimori/rfc/rfc2554.txt
http://search.cpan.org/~apleiner/Net-SMTP_auth-0.07/
http://search.cpan.org/~gbarr/libnet-1.19/
0030nobodyさん2005/08/12(金) 20:30:29ID:???
>>28
鯖管やるなら一度は書いてるようなたわいも無いツールだと思うけど‥
0031nobodyさん2005/08/12(金) 21:04:08ID:???
チラシの裏にでも書いてろ
0032nobodyさん2005/08/12(金) 21:25:21ID:qS3bR1/B
配布元がクラックされる可能性を考えると、バージョンアップ告知くらいに止めておくのが無難だな。
0033nobodyさん2005/08/12(金) 22:01:46ID:???
水島広子みたいな例もあるしな。
0034nobodyさん2005/08/13(土) 02:44:52ID:???
あれはクラックじゃないでしょ
0035nobodyさん2005/08/13(土) 03:06:52ID:???
んなこた分かってるだろ
0036nobodyさん2005/08/13(土) 07:51:10ID:???
2ちゃんで自演してる厨のソフトなんか信用できねー
0037nobodyさん2005/08/13(土) 18:42:30ID:Sjgh6/vt
Cookieって名前=値の部分は複数保存できないんですか?
0038nobodyさん2005/08/13(土) 19:39:09ID:???
>>37
ここはperlスレだと、何度言ったらわかるんだ?
0039nobodyさん2005/08/13(土) 21:22:32ID:???
テキストファイルに書かれた文章をある変数で受け取って、
その文章にある変数を展開することって可能ですか?

んーと、つまりはこういうこと。

$a = 10; $b = 20;
open(FILE , "data.dat") or die("Error : $!");
foreach (<FILE>){ $result .= $_; }
print $result; exit;

[data.dat]
a = $a
b = $b

a + b = $a + $b
[EOF]

[出力結果]
a = 10
b = 20

a + b = 30
0040nobodyさん2005/08/13(土) 21:39:57ID:???
>>39
eval
0041nobodyさん2005/08/13(土) 21:50:52ID:???
>>39


$a = 10; $b = 20;
open(FILE , "data.dat") or die("Error : $!");
while (<FILE>){
s/\$.+$/eval($&)/e;


$result .= $_; }


print $result; exit;
0042nobodyさん2005/08/13(土) 22:09:28ID:AxZeVTkQ
かなり初歩的なこと(文法関連のこと)かもしれませんが質問させてください。
環境:OS=FedoraCore3(自宅サーバ) perl=v5.8.5

以下の基本コードを実行しました。
#!/usr/bin/perl

print "content-type: text/html\n";
print "\n";
print "<Html>\n";
print "Test Message";
print "</Html>\n";
正常にTest Messageと表示されました。
次に#!/usr/bin/perl

print "content-type: text/html\n";
#print "\n";
print "<Html>\n";
print "Test Message";
print "</Html>\n";
としたところ「Internal Server Error」となってしまいました。
参考資料には
最初に#のある行はコメント行である。
また、コメント行にしたところはただの改行である。
とありました。
上記より文法として間違ってはいないと思いますが、
なにか誤っているところがあるのでしょうか?
0043nobodyさん2005/08/13(土) 22:23:16ID:???
>>42
content-typeなどのHTTPヘッダーの区切りは改行2つ。
■ このスレッドは過去ログ倉庫に格納されています