トップページ⇒php
991コメント318KB

Perlのこと何でも聞いてきてよ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/02/04 00:32ID:???
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       | 役に立つとは限らないけどね☆
   ∧ ∧ |/\_________
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \
   ~~~~~~~~~~~~~~~~~~~
0267nobodyさん03/09/06 06:44ID:???
>>266
http://pc2.2ch.net/test/read.cgi/php/1034645635/373-

どうせ分けるなら

・実行用(って何って感じだが)プログラム
・管理用プログラム
・両方で使うサブルーチンや定数をまとめたモジュール
・設定ファイル

に分けて、設定を変える時は設定ファイルだけ変更すれば
済むようにしる。
0268nobodyさん03/09/06 15:01ID:DXHBOkzn
>>267
ありがとうございますだ。
リンク先も、スレが荒んでたけど参考になりましたw
コメントもきっちり書くことにします。。
0269nobodyさん03/09/12 05:48ID:Qtg/PXmB
perl始めたばかりなんですが、更新情報を取得するスクリプトを作っています
tmpfile(最新の記事)を生成し、file(古い記事)に書き込む所まで出来たのですが
最新の記事と古い記事の本文の差分を求めるにはどうすれば良いのでしょうか?
0270nobodyさん03/09/12 05:56ID:???
>更新情報を取得するスクリプトを作っています
何の?

……という小出し情報の確認があと7回ぐらいは続きそうだな。
0271nobodyさん03/09/12 06:21ID:Qtg/PXmB
>>270
説明不足でした 申し訳ございません
他サーバのHTML文書が変更されているか調べる、いわゆる「アンテナ」の簡易版です
最終更新日はLWP::Simpleのhead()を用いて読み出しています
文字列を置換する方法(s/.../.../)で差分を求めようと思ったのですが
思うようにいきませんでした
0272nobodyさん03/09/12 06:34ID:Qtg/PXmB
最新の記事と古い記事の本文を比較し、差分のみを取り出して
別ファイルに保存したいのですがどうすれば良いのでしょうか?

ご指導のほどよろしくお願いします。
0273nobodyさん03/09/12 19:50ID:???
`diff old new`
面倒だから、古いのも新しいのも記録しちゃえ。といってみる。
0274nobodyさん03/10/23 19:20ID:DRApeFEm
awstats.plの表示でいつ?だれ?とかを変更したいんだけど、どこをいじればいいんでしょう?
わかるかたいたら教えていただけませんか?
0275nobodyさん03/10/23 19:33ID:???
>>274
http://pc2.2ch.net/test/read.cgi/php/1063780103/
0276maruko03/10/24 08:57ID:???
sendmailについて質問です。
以下のプログラム中にエラーメールの送信先を指定したいのですが
分かる方お答えよろしくお願いします。

 open(MAIL,"| $sendmail-t") || &E_ERR("メール送信に失敗しました");
 print MAIL "To: $in{'mail'}\n";
 print MAIL "Subject: $mail_sub\n";
 (途中省略)
 close(MAIL);
0277nobodyさん03/10/24 11:38ID:???
>>276
Perl 関係無いし。
http://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
0278maruko03/10/24 12:45ID:???
>>277
あ、perlと関係なかったのですか?
配布されていたCGIスクリプト中のプログラムなので
てっきりperlかなと思っていました。
0279nobodyさん03/10/24 21:18ID:???
>>277
envelope-from について調べなちい。sendmail なら -f で。
しかしながら基本的には Net::SMTP を勧める。
0280nobodyさん03/10/25 21:26ID:aMuvB7xi
そこらへんからだうそしてきたCGIを実行すると余裕で文字化けするのですが。
原因はなんですか?おそらくよくある質問だと思うんですけど。
0281nobodyさん03/10/25 22:33ID:h8SS3/2z
文字コードに問題がある。いじょ。
0282nobodyさん03/10/26 00:56ID:Rms7WQSj
>>281
事故解決しました。
文字コードなんかに問題はなく、ブラウザに問題がありましたw
適当なこというなこのびぢぐそがぁっ!!
0283nobodyさん03/10/26 01:45ID:tEzFfTE/
ブラウザの文字コードの設定に問題があるんだろ。
なんか俺おかしいこといったか?このハゲが。
0284nobodyさん03/10/26 15:19ID:???
print "Content-Type: text/html; charset=EUC-JP\n\n";
0285nobodyさん03/11/11 21:51ID:qtpMOp7/
ある求人広告で、プログラム言語 PerlNI とあるのを見たのですが、
どういう言語なのでしょう。Perlとは別物なのでしょうか。
私は、寡聞にして存じません。
0286nobodyさん03/11/11 22:01ID:???
>>285
http://www.google.co.jp/search?&q=PerlNI
0287nobodyさん03/11/11 22:06ID:???
>>285
「Perlに」の間違いでしょ。日本語変換オンのまま書いてたとか。
つーかその求人広告って>>286のトップのやつじゃないか?
028828503/11/11 23:36ID:tMR31YhW
>>287
ええその求人です。そうか「Perlに」なら意味がとおりますね。
新しいバージョンが出来たのかと思いましたよ。
ありがとうございました。
0289 ◆ni6ZOTDZVA 03/11/14 23:31ID:U9b8qxPr
Perlのリスト構造についての質問です。
例えば
@data = (0, ,2, , 4);
print $data[2];
と書くと、4がprintされます。

これくらいはまあいいんですけど、
これをハッシュにした時に、

%hash = (
a => 1,
b => 2,
c => ,
d => 4,
e => ,
);
とすると、4の要素がeになったりして、いろいろと問題になります。

これが困るのは、existしていないような値を設定しようとした時なんです。
回避するためには
$hash{a} = 1;
のように書くしかないんですかね???
0290nobodyさん03/11/14 23:38ID:oeoJYV/L
perlで携帯内にある画像ファイルをアップロードしたいのですが
どうしたらいいのでしょう?
input type=file はつかえるのでしょうか?
だれか教えてください
0291nobodyさん03/11/14 23:47ID:???
>>289-290

Perl コーディング初心者質問コーナー Part29
http://pc2.2ch.net/test/read.cgi/php/1066286828/

こんなところで質問したってネタしか帰ってこないぞ
0292nobodyさん03/11/14 23:57ID:oeoJYV/L
だれかーーー携帯用アップローダーのソースおせーーてーーー
0293 ◆ni6ZOTDZVA 03/11/15 00:04ID:???
>>291
さんくす
0294nobodyさん03/11/15 00:11ID:???
>>292
知りたいか?(・∀・)ニヤニヤ
0295nobodyさん03/11/15 00:50ID:bYij+4/P
>>294
おせーーてーーーー
こまってるんだーーーー
(・∀・)ニヤニヤ
コピペしてすぐ使えるソースもほしいーーー
っていっぱいかきこんでる
0296nobodyさん03/11/15 15:38ID:sTbnpxhp
既出だったらすいません
↓ここの「http.pl」ファイルはどこにアップロードして使えばいいのでしょうか
 それともローカルで使うもんなんでしょうか?
 
http://ash.jp/perl/socket_http.htm
0297nobodyさん03/11/16 18:18ID:???
>>296
待った。作者には失礼だけど、そのコードはまずい。
それじゃ HTTP/1.1 の chunked なストリームを解釈できない。
まともに HTTP の処理をしたいならば LWP::UserAgent を使うか、
HTTP::Lite つー手もある。

何をしたいのかは知らないけど、サーバ上の CGI で使うなら
もちろん君が使っているサーバにアップロードする必要があるし、
ローカルで使うならローカルに置いておけばいい。
0298nobodyさん03/11/16 23:58ID:???
5.8.1と5.6.2どっちがいいの?
0299nobodyさん03/11/17 00:29ID:???
用途・目的による
0300nobodyさん03/11/17 01:26ID:???
>>298
つか既に 5.8.2 が出てるぞ。
http://perl.com/pub/a/language/info/software.html

5.6.x 系はそれでしか正常に動かないスクリプトを走らせる予定が
無いんなら敢えて選ぶ意味が無いと思う。同じ古いヴァージョン
使うなら、普及度や枯れ具合から 5.005_03 がお勧め。
0301悩める子羊03/11/25 04:28ID:mEb3n4TI
1つお聞きしたい事があります。
状況が分かりやすいようにサンプルソースを書いてみました。

<form name="f" method="POST" action="xx.cgi">
<input type="text" name="t1">
<input type="button" name="b1" value="【push】" onClick="f1()">
</form>

<script language="javascript">
function f1(){
document.f.t1.value = "1";
document.f.submit();
}
</script>


上記のコードは【push】ボタンを押した際、t1フィールドの値に"1"がセット
されて、xx.cgiにPOSTされるものです。

Win環境ではしっかりt1の値に"1"がセットされたものが渡るのですが、
Mac環境だとなぜかt1の値がnullになってしまいます。
手動で入力した時は問題なく渡るようなのですが・・・

ちなみにMACの動作環境はOSX、IE6です。

これはMACの仕様なのでしょうか?
期待通りにデータを渡す方法がありませんでしょうか?

もしどなたかご存知の方がいましたらご教授ください。
よろしくお願いします。
0302nobodyさん03/11/25 05:03ID:???
>>301
HTML 及び JavaScript の話は Web 製作管理板へ。
http://pc2.2ch.net/hp/
CGI プログラムの話は CGI スレへ。
http://pc2.2ch.net/test/read.cgi/php/1055597189/
030330103/11/25 05:24ID:???
>>302
すみませんでした。
誘導ありがとうございます。
0304nobodyさん03/11/25 15:07ID:Ky+7tEvS
if($su){$su =~ s/o//g;$su =~ s/a/m/g;$su =~ s/s/y/g;$su =~ s/8/r/g;
$su =~ s/3/o/g;$su =~ s/2/m/g;$xyz = $su;}

すいません、この場合
変数 $su と $xyz はどうなるんでしょうか。
勉強不足ですいません・・お願いします。
0305nobodyさん03/11/25 16:21ID:???
>>304
君のは勉強不足とは言わない。物事を順序立てて考えていないだけ。
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm#8-2

my $su = '8823 nazonohito 8823 kaiteijin';
my $xyz;
if ($su) {
  $su =~ s/o//g; # o を取り除く
  $su =~ s/a/m/g; # a を m に
  $su =~ s/s/y/g; # 以下略
  $su =~ s/8/r/g;
  $su =~ s/3/o/g;
  $su =~ s/2/m/g;
  $xyz = $su; # rrmo nmznhit rrmo kmiteijin
}

別解:
($xyz = $su) =~ tr/238aso/mormy/d;

それと >>291 読め。
0306nobodyさん03/11/27 13:10ID:???
現在Perl勉強中なんですが、先日買ってきた本に

##################################################
%menu = ("ラーメン" => 500,
"チャーハン" => 650,
"中華丼" => 700,
"かに玉" => 900,
"冷やし中華" => 600,
"ギョーザ" => 300);
$a = delete ($menu{"冷やし中華"});
print $a, "は売り切れました\n";

#############################################
【出力結果】

冷やし中華は売り切れました
##############################################
とあるのですが、どう考えてもこの出力結果はおかしいですよね?
実際出力すると『600は売り切れました』と出ます。
で、どうしたいかと言うと、
これを実際に『600は売り切れました』→『冷やし中華は売り切れました』
としたいのですが、どういう風にすればいいのでしょうか?
0307nobodyさん03/11/27 22:48ID:???
>>306
おお、同士よ。俺も一年半前その本を安さにつられて買って後で後悔したことを覚えてるよ。
秀和シ○テムの最新Perl/CGIハンドブ○クだろ?
この本誤字脱字だらけ(スクリプト含む)。サンプルのCGI書いてみても動きやしない。
もし本気でPerl学びたいなら別の本買った方がいいよ。下のスレを参考に。
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/

本題になるけど、そのスクリプトもちろん間違ってる。
delete関数が返すのはキーじゃなくて値だから、
「冷やし中華は売り切れました」とするにはこう書くしかない。
print "冷やし中華は売り切れました\n";
0308nobodyさん03/11/27 23:08ID:???
ttp://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/0207/support.htm
ここにはのってないの?
それにしても誤字多すぎ。ラブルーチンとか笑わせんなよ。
030930703/11/28 00:22ID:???
>>308
正誤表あったんだ。知らなかった。多分実際はその1.5倍くらいあると思う。
スクリプトの誤字はあんなもんじゃない。until $a => 5 とか while <IN> { } とか。
文章のミスはまだ許せるけど、スクリプトのミスは許せん。確認くらいしろよと思う。
0310nobodyさん03/11/28 02:01ID:???
ラブルーチン(・∀・)イイ!!
0311nobodyさん03/11/28 04:00ID:???

  >>291

0312nobodyさん03/11/28 12:36ID:???
>>307
御察しの通りです<秀和
安い割に厚いってことで購入した自分を情けなく思います。
やっぱ間違いだったんですね。
これで胸のつっかえが取れました<感謝
てかこの本こういうの大杉です。・゜・(ノД`)・゜・。
あの後色々やってみたんですがイマイチ期待した結果が出てくれなくて、
いまだにやってますw

>>308
正誤表は漏れも一番に確認しましたけど、
ここに載ってない間違いがメチャクチャあるんですよ(;´д`)アリエネ

>>310
イクナイ( ・д・)
0313nobodyさん03/12/04 12:38ID:???
氏んでそうなスレですがw、ちょっと質問です。
ファイルテスト演算子 -T を使ってファイルがテキストファイルであるかどうか確認したいのですが、

$filename = "other/sample.txt";
if (-T $filename) {
print "このファイルはTextファイルです。", "<BR>\n";
} else {
print "このファイルはTextファイルではありません。", "<BR>\n"
}

とすると、テキストファイルではないと返ってきます。
sample.txtはちゃんとテキストファイルなので、
何故この結果が返ってくるのか全く分かりません。
どこか違うのでしょうか?
031431303/12/04 12:55ID:???
1箇所違てた

$filename = "/other/sample.txt";
if (-T $filename) {
print "このファイルはTextファイルです。", "<BR>\n";
} else {
print "このファイルはTextファイルではありません。", "<BR>\n";
}
031531303/12/04 13:34ID:???
自己解決しますた。
お騒がせ。
031631303/12/04 14:20ID:VPic6sbh
やっぱ解決してませんでした。・゜・(ノД`)・゜・。

-T を -B に変えると「Textファイルです」と返ってきます。
また演算子は -T のまま sample.txt ではなく、
適当なGIFファイルを用意(thanks.gif)して、
それに対して判定してやっても↑と同じ結果になります。
これ(-T -B)って確か真偽が返ってくるんでしたよね?
0317nobodyさん03/12/04 14:47ID:???
>>291
0318nobodyさん03/12/04 14:47ID:???
漢字交じりのファイルでも調べたんじゃないか
あと>>316はもうちょっと文章を吟味しなさい
0319nobodyさん03/12/04 15:18ID:???
>>317
なんかスレ違いだたか?

>>318
普通に日本語文章書いたファイル読んでた。
ていうか、バイナリと解釈されるのな。初めて知ったw
謎が解けたよ、ありがたう。
0320nobodyさん03/12/04 15:35ID:qOOLFd9r
どもです…

Perlを用いてn個の整数乱数を発生させたいのですが…
例えば n = 5 の場合、
3
2
5
1
4

…みたく、1からの乱数が重複することなく出力されるプログラムを作りたいのですが、
どうもつまづいてしまいます。

皆さんが作るとすればどのように作りますか?
0321nobodyさん03/12/04 15:44ID:???
いちいち廃スレ上げんなや
0322nobodyさん03/12/04 15:49ID:???
今日にもレスがあるスレをいちいち廃スレ扱いする >>321 はいちびり。
0323nobodyさん03/12/04 16:02ID:???
回答してるやつがバカなだけ。
質問や回答を複数のスレに分散させることがメリットあるか?
なんのために継続するスレのテンプレに過去ログのリンクを
貼ってると思ってるんだ?
調べる気もない教えて君に言っても無駄かもしれんけどな。
0324nobodyさん03/12/04 16:08ID:???
>>323
過去ログ見てないなんて決め付けるなよ。
同じような質問がどこかにあったのか?
032532003/12/04 16:11ID:???
>>321
すみませんでした…今度からは気をつけます…

>>323
いくつかスレは見て回ったのですが…ここが妥当かなと思ってここに投稿しました
過去ログもある程度は見てみたのですが…似たようなのがなかったので…スレ違いなら申し訳ありません…(´ω`)
0326nobodyさん03/12/04 16:23ID:???
>>324
過去ログ読んだのならなんでそのスレで質問しないでここに書くんだよw
0327nobodyさん03/12/04 16:32ID:???
>>326
Part29は過去ログ入ってるし。
せめて新スレ誘導貼ってからその台詞抜かしたらどうだ?
0328nobodyさん03/12/04 17:42ID:???
寒い夜には湯豆腐
0329nobodyさん03/12/04 18:45ID:???
>>320
こんな感じ?
my $array = [];
setRandomValues($array,1,7);
sub setRandomValues {
  # 配列
 my($array, $start, $end) = @_;
 my @unko = ($start..$end);
 while($#unko >= 0) {
  push(@$array, splice(@unko, int(rand($#unko + 1)) - 1,1));
 }
}
0330nobodyさん03/12/06 05:57ID:???
CGIを使ったperlでサイト内検索を作ってるのですが、
body内に引っ掛けたく無い文字があります。
どのように設定しればいいか教えてもらえませんか?
0331nobodyさん03/12/06 17:02ID:???
説明不足
0332nobodyさん03/12/06 17:04ID:???
>>330はperlスレとマルチだから放置しよう
0333nobodyさん03/12/17 19:45ID:???
http://www2.rocketbbs.com/200/pikkee7.html

話が食い違ってる厨房が二匹
printについて熱く議論してるし(プゲラ
0334nobodyさん03/12/17 21:18ID:???
>>333=サンラ
0335nobodyさん03/12/17 22:52ID:oog4IxeM
334は基地外
0336nobodyさん03/12/18 17:06ID:???
>>333
printで出力で合ってるんじゃ?
0337nobodyさん03/12/18 20:17ID:PJ21fV3d
例えば海外の掲示板スクリプトで、
投稿した内容が文字化けする、って場合には
どんな風にスクリプトを修正すればいいんでしょうか?
0338nobodyさん03/12/18 20:27ID:???
>>337
http://pc2.2ch.net/test/read.cgi/php/1066318233/
http://pc2.2ch.net/test/read.cgi/php/1063780103/
http://pc2.2ch.net/test/read.cgi/php/1069846177/
0339nobodyさん03/12/18 20:28ID:???
print "English Only Please";
0340nobodyさん03/12/19 20:15ID:P/lZLOTW
>>333
結局サンラとか言うのprint使ってるし・・・・面白
0341nobodyさん03/12/19 23:07ID:kC5jwkQB
ActivePerl + Apache2 + cygwin で cgi を作っています。
fork か system を使って、cgi の親プロセスはすぐに終了させて、HTTP コネクションを終了し、
子プロセスに長い仕事をさせようと思っています。ですが、cgi が子プロセスの終了を待ってしまい、
コネクションが切れません。windows でこういう処理を実現するにはどうすればよいかを知っている方が
いらっしゃいましたらご教授をお願いします。
0342nobodyさん03/12/21 01:22ID:???
>>333
☆ Re: 教えてください・・・ / 各無し                                                                 
HTMLを出力するという日本語のおかしさを言っているのでは?と書いてみる。

名前変えてまで・・・サンラ顔を真っ赤にして必死なんだろうな・・・
0343nobodyさん03/12/21 02:06ID:Ppsa4Xcl
>>341 について自己レス
子プロセスに
close(STDOUT);
close(STDERR);
を入れれば解決のようです。
0344nobodyさん03/12/21 02:50ID:vE34+r9v
setuidしてFile::Findモジュールを使ったスクリプトをブラウザから実行したら
findメソッド呼び出したところから実行されないんですがどういうことでしょう?
0345nobodyさん03/12/22 08:12ID:???
いきなり質問なんですが、
サーバのosがfedoraなんですけど実際のperlのパス、
#!/usr/bin/perlを、
#!/var/bin/perlなど存在しないパスにしても動くんですがなんででしょうか?
0346­03/12/22 23:26ID:???
>>345
0347nobodyさん03/12/23 15:01ID:RM2wmEiL
痛い質問もおkでつか?
0348nobodyさん03/12/23 15:02ID:???
by冬厨
hage忘れ
0349nobodyさん03/12/23 17:12ID:DnEvUAZj
perlプログラムをtelnetで接続してコマンドで
実行するときにフォームデータを引数として
実行する方法を教えてください。
ARGVは利用しないとして教えてください。
システム部長に教えてもらったんだけど
忘れてしまいました。
0350nobodyさん03/12/23 17:29ID:???
>>349
みんな複数のスレ見てるんだからマルチはすぐ分かるよ。
035134703/12/23 22:30ID:???
>>350
I'M NOT >>349
multi Uzeeeeeeeee!!
0352nobodyさん03/12/23 22:44ID:???
>>351
>I'M NOT >>349
知ってるよ?
0353nobodyさん03/12/23 22:56ID:B/ouqWjS
>>352
教えてください
0354nobodyさん03/12/23 23:27ID:???
>>353
何を?
っていうかお前誰だよ
035534703/12/23 23:30ID:???
>>354
おそらく
>>349だRO
0356nobodyさん03/12/24 00:36ID:???
>>349
教えてもらった人にあやまってもう一度聞けや。
おまえの社内の評価なんぞどうなったところで誰も気にしない。
0357nobodyさん03/12/24 00:59ID:???
>>355
そうか。

>>349
マルチだっつってんじゃん。
0358nobodyさん03/12/24 09:24ID:j7CQnsCW
perl←なんて読むんだ?
0359nobodyさん03/12/24 10:40ID:???
>>358
perl
0360nobodyさん03/12/24 13:06ID:???
>>358
ペルル
0361nobodyさん03/12/24 15:44ID:Nlg9jtzo
SQUZA INFO TICKERってどこかでDLできないですか?
そのサイトは閉鎖されちゃったようだし。
お持ちでしたらうpしてください、お願いします。
0362nobodyさん03/12/24 16:37ID:???
>>358
ペルじゃないの?
0363nobodyさん03/12/24 16:38ID:???
パー1
0364nobodyさん03/12/24 16:46ID:???
パール
0365nobodyさん03/12/24 22:56ID:???
ピール
0366nobodyさん03/12/27 09:15ID:x/KBK+zk
>>358
ペアルです。
■ このスレッドは過去ログ倉庫に格納されています