【Perl 】初心者コーナーPart6
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001undefさん
2001/07/26(木) 00:40ID:???尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
案外答えはもう書かれているかもしれない。
0002undefさん
2001/07/26(木) 00:40ID:???[関連スレッド]
Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156
Part5 http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069
【Perl,CGI】参考書籍 http://tako.2ch.net/test/read.cgi?bbs=perl&key=970166109
[総合]
□Perl Com: http://www.perl.com/pub/
□CPAN.com: http://search.cpan.org/
□ActivePerl: http://www.activestate.com/
[お薦め]
・Perl Recipes: http://www.effectiveperl.com/recipes/
・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
[Module]
・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module/
・PPMPackages: http://www.activestate.com/PPMPackages/
・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm
[Document&Tutorial]
・Perl News: http://www.news.perl.org/
・Perl Monks: http://www.perlmonks.org/
・PerlMonth - Online Perl Magazine - : http://www.perlmonth.com/index.html
・use Perl All The 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
・Perl for Newbie: http://www.harukaze.net/~mishima/perl/index.html
・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
・Perlfect Solutions: http://perlfect.com/
・The Perl Archive : http://www.perlarchive.com/
0003ちょこら
2001/07/26(木) 00:44ID:IoXCn0Pgごくろうさまです。
0004名無しさん@お腹いっぱい。
2001/07/26(木) 00:48ID:???0005名無しさん@お腹いっぱい。
2001/07/26(木) 00:56ID:???ご苦労様。
ところで、前スレの956さん
TAB区切りとか言いながら$dataは半角スペース区切りになってるよ。
などと無駄なツッコミを入れてみたり。
0006名無しさん@お腹いっぱい。
2001/07/26(木) 04:33ID:34foWq2Y「〜が見つかりません」となってしまう。
これって、ダメなの?
$htmlfile = "http://〜〜〜/temp.html"; # 他鯖のアドレス
if(!open(HTML,"$htmlfile")){
print "<html>$htmlfileが見つかりません</html>\n";
exit(0);
}
0007名無しさん@お腹いっぱい。
2001/07/26(木) 04:39ID:???ダメに決まってる。
つーか初級ネット逝け。もう戻って来るな。
0008名無しさん@お腹いっぱい。
2001/07/26(木) 06:47ID:JG2uz2mwこの@hairetsuの中の要素を全て変数に入れたいのですが
方法が解らないです。
$yousosuu = @hairetsu
ってして不明な要素数を得たのですが、そこからが解らないです。
初心者以前の問題でしょうか。
00098
2001/07/26(木) 06:53ID:JG2uz2mw@hairetsuの中身が、、1<>2<>3<>4<>5<>6<>7<>8<>9<>10
ってなっている時に
$youso1 = 1
$youso2 = 2
と言う風に代入したいのです、数が不明だとどうすれば良いのかが
解らないのです。
0010名無しさん@お腹いっぱい。
2001/07/26(木) 07:01ID:???my @array = qw(aa bb cc);
my $str = '';
map { $str .= $_ } @array;
print $str; # aabbcc
こういうことじゃなくて?
0011名無しさん@お腹いっぱい。
2001/07/26(木) 07:10ID:???別に取り出さないで$hairetsu[0]って使うのではダメなの?
0012ちょこら
2001/07/26(木) 07:16ID:pAced2Jkが前提なら
for($i=0;$i<$yousosuu;$i++){
$varname = 'youso' . $i;
$$varname = $hairetsu[$i]
}
でどうだ。まあこの例だと$youso0から始まるがいやならいじってくれ。
0013初心者名無しさん
2001/07/26(木) 08:07ID:D05Jcn/wこれでも……たぶん
foreach (@hairetsu) {
$num++;
${youso.$num} = $_;
}
00148
2001/07/26(木) 08:25ID:JG2uz2mwちょこらさんと初心者名無しさんの方法で上手く行きました。
未知の数値の扱い方がわからなかったんです。
と言うよりfor文の使い方が解って無いのか (汗)
皆さんカコイイです! ありがとうございました あげっ!! (^ ^ )
0016名無しさん@お腹いっぱい。
2001/07/26(木) 10:16ID:fwGjG1C6実行時、鯖にどれくらい負担がかかるのかチェックしたく思ってます。
なにかいい方法ありますか?
0017名無しさん@お腹いっぱい。
2001/07/26(木) 10:36ID:???使い方は
perldoc Benchmark
負荷チェックはローカルで。
0018ほげ
2001/07/26(木) 11:33ID:???で、代入したあとどうやって使うの? >>11も書いてるけど、
また $i に数字をいれて print ${youso.$i} ってやるだけなら、
配列のまま $hairetsu[$i] を使う方が分かりやすいと思うよ。
0019名無しさん@お腹いっぱい。
2001/07/26(木) 12:19ID:OUMdOt/2という構成のログがあって、それをハッシュ%INに入れたいんですが、
qw($IN{'TIME'} $IN{'TITLE'} $IN{'NAME'} $IN{'COMMENT'}) = split /<>/;
今こんな感じにやってるんですが、
もっと上手い方法はありませんでしょうか?
0021名無しさん@お腹いっぱい。
2001/07/26(木) 12:31ID:OUMdOt/2はーなるほど、@INを使うのか…
ありがとうございました!
00228
2001/07/26(木) 12:34ID:???今ずっと過去ログを読んでいたんですが、偶然にも前スレの952さん
と同じ目的のような気がするです。
.csvの中身を並べ替えて区切り文字を","から"<>"に変更したいのです。
それで、今度は${youso.$i}(中身はa,b,c,d,eとかの5つの要素が入ってる)
をもう一回配列に入れようとして芯でるです (^ ^;)
基本的に考え方が間違えてるのかなぁ、、、、
今リンクを一杯開けて勉強中 (^ ^ )
00238
2001/07/26(木) 12:37ID:???もっと精進して出直して来るっす。 失礼します
0024名無しさん@お腹いっぱい。
2001/07/26(木) 13:11ID:20lkItDU文字コードがshift_jisかどうかを判断するにはどうしたらいいですか?
0025_gunzip@出掛けますが
2001/07/26(木) 13:26ID:???>20 のは、ハッシュのスライスです。スライスについては、
http://www.effectiveperl.com/EP.02.pdf
のItem2辺りを参照するといいと思います。
>>22-23
無理して言葉で表現しようとせずに、元のデータと、自分が期待する結果を両方示して、
「このような事を実現するには、どんなデータ構造にして、どのように処理すべきか」
って聞いた方がいいと思う。
例えば、(こーゆー事じゃないかと勝手に想像)
「
Aoki,54,Nagano
Terui,95,Hokkaido
Maeda,23,Osaka
(続く)
というデータがあり、これを二番目の項目の数値で昇順に並び替え、","を <> に変換して
Maeda<>23<>Osaka
Aoki<>54<>Nagano
Terui<>95<>Hokkaido
のように書き出したいが、この場合どんなデータ構造でデータを格納し、
どんな手法でそれらをソートすればいいのか?
環境: 自分でコンパイルしたPerl5.7.2+VineLinux
」
・・・のような感じ。(ん....なんか変だが)
00278
2001/07/26(木) 14:27ID:???ハイっ、その通りです。全部聞いちゃうと凄い量になるのかなと
思ってしまって... (^ ^;)
1,2,3,4,5
aoki,M,1985_01_08,220,157
egawa,F,1984_09_11,170,142
saitou,M,1983_11_22,247,167
yokomori,M,1986_07_15,195,150
.
. 続く(行数は分からないです)
と言うファイルの内容を...
1<>2<>3<>4
aoki<>M<>Highscore---220<>Average---157
egawa<>F<>Highscore---170<>Average---142
saitou<>M<>Highscore---247<>Average---167
yokomori<>M<>Highscore---195<>Average---150
.
. 続く...
こんな風に並べ替えて少しの文字列を加えたいのです。
それで、Vine2.15+perl5.005_03な環境でWEBのフォームにtextを
貼り付けて、変換結果を再びtextareaに表示しようとしたのですが
受け取りと出力は出来たものの、肝心の処理が上手くいかない
のです。
002821
2001/07/26(木) 16:45ID:rFKr7cVw今日偶然にもEffectivePerl買ってきたので合わせて勉強したいと思います。
スライス慣れれば便利そうですね。
0029名無しさん@お腹いっぱい。
2001/07/26(木) 18:21ID:???ベタに処理しただけだが、参考にでも。
open FILE, "< $file" or die;
my $cut = <FILE>;
print join('<>', 1,2,3,4)."\n";
while (<FILE>) {
chomp;
my @data = split /,/;
$data[3] = 'Highscore---' . $data[3];
$data[4] = 'Average---' . $data[4];
print join('<>', $data[0],$data[1],$data[3],$data[4])."\n";
}
close FILE;
0030undefさん
2001/07/26(木) 21:13ID:20lkItDUテキストファイルのリストをソートしてはき出したいのですが、
いい方法が思いつきません。
とりあえず、私が考えた物、、
ファイルが大きくなると問題あるです。。。
open(IN,"list.txt") || die;
my @list = <IN>;
close IN;
open(OUT,"sort_list.txt") || die;
foreach(sort @list){
print OUT;
}
close OUT;
003130
2001/07/26(木) 21:15ID:???open(IN,"list.txt") || die;
my @list = <IN>;
close IN;
open(OUT,">sort_list.txt") || die;
foreach(sort @list){
print OUT;
}
close OUT;
0032名無しさん@お腹いっぱい。
2001/07/26(木) 23:30ID:???俺なら
my @list = sort <IN>;
と読み込むな(ファイルがメモリに収まるくらい小さいのであれば)
もしくは、書き込むときに
print OUT sort @list;
とかね(まぁ、やり方は何通りもあるから)。
ちなみにファイルがでかい場合は、DB使うからそもそもこんな問題考えない(藁
0033名無しさん@お腹いっぱい。
2001/07/27(金) 01:00ID:???どこらへんでネタだと思ったのかわからないけど、
ただ短くするだけなら、print OUT sort <IN>; だろ。
何の解決にもならんけど。
さいごの行については同意。
>>31
http://www.amazon.co.jp/exec/obidos/ASIN/4894712369
前にちらっと見たこの本にそんなような内容が書いてあった気がする。Cだけど。
003432
2001/07/27(金) 06:15ID:???↑書き方はいろいろできるけど、結局この辺の理由で(藁
あと、最近夏休みに入ったせいか、宿題っぽい質問が多いからね
>>31へ蛇足
|| → or,foreach → forに慣れた方が良いと思われ
0035名無しさん@お腹いっぱい。
2001/07/27(金) 09:17ID:Q5S7zu8k0036名無しさん@お腹いっぱい。
2001/07/27(金) 09:30ID:???0037名無しさん@お腹いっぱい。
2001/07/27(金) 09:48ID:PIHalO2gスクリプト言語は理論的に空行はつめたほうが
実行が速くなるのでしょうか。
0038名無しさん@お腹いっぱい。
2001/07/27(金) 09:55ID:???0039名無しさん@お腹いっぱい。
2001/07/27(金) 10:00ID:???0040JAPU
2001/07/27(金) 10:35ID:Q5S7zu8k004134
2001/07/27(金) 10:40ID:???forの方がforeachより字数が少ない(藁
0042名無しさん@お腹いっぱい。
2001/07/27(金) 11:13ID:???0043名無しさん@お腹いっぱい。
2001/07/27(金) 16:13ID:???http://dream.lib.net/room/cgi/e_acsdeny.html
の二つを、1つの掲示板に使う場合、どういう風に書けばいいでしょうか?
何回やっても、どちらか一方しか作動しないので質問しました。
0044名無しさん@お腹いっぱい。
2001/07/27(金) 16:40ID:???片方が弾けば次が動作するわけねーじゃん。
つか2つ使う意味あんの?
0045名無しさん@お腹いっぱい。
2001/07/27(金) 17:06ID:???44ですが、下の奴を主に使ってたんですが、Proxy制限が使えないんですよ。(機能はあるのに)
だから、上のProxy制限に優れてる奴と二つ使えれば問題ないかなと思ったんですが、
どうやらうまく行かないらしいみたいなので、もういいです。ありがとうございました。
ところで、
http://dream.lib.net/room/cgi/e_acsdeny.html
このスクリプトが、きちんとProxy制限できれば良いんですが、
どうしたらいいんでしょうか?どなたかご教授ください。
004630
2001/07/27(金) 19:01ID:OFQPU1uAまとめるとこんな感じですか?
でも、サイズがでかくなると問題です。
open(IN,"list.txt") or die;
open(OUT,">sort_list.txt") or die;
print OUT sort <IN>;
close IN;
close OUT;
何かいい方法ないですかね?
(DBを使用しないで、、)
system 'sort list.txt > sort.txt';
とかやっても無駄ですか?
> || -> or
この違いって何ですか?
調べたら、優先順位が低くなるってありました。
ただ打ちやすいから、|| をつかってたのですが、、、
0047名無しさん@お腹いっぱい。
2001/07/27(金) 22:03ID:???自分でマージ・ソートでも自分で作ってみたら?
昔からあるソート法だよ。
00488
2001/07/27(金) 23:31ID:???カコイイやり方有難う御座いますぅ (^ ^ )
何とか上手くいったのでご報告ですぅ、結局最初に読み込まれたcsvファイル
を\nをデリミタにして配列に入れて、その要素をもう一回配列に入れてから
からヘコヘコと加工してpushしました。 50行くらいになっちゃった ^ ^ )
今>>13さんや>>29さんの カコヨイやり方で挑戦中
0049名無しさん@お腹いっぱい。
2001/07/28(土) 00:25ID:???プログラムが大きくなったのでソースファイルを分割して、
main.pl
require 'sub1.pl';
require 'sub2.pl';
のようにしたとき、
1.use strict;をmain.plで宣言すると、requireで呼び出した
sub1.pl sub2.plにもその宣言が適用されるのでしょうか?
2.main.plで宣言したグローバル変数はsub1.pl sub2.plでも
適用されるのでしょうか?
0050名無しさん@お腹いっぱい。
2001/07/28(土) 02:01ID:???誰かご教授してもらえませんか?
<img src="/bin/counter">これをHTML
にくみこむだけでなんとかなると思ってたのですが・・・
0051名無しさん@お腹いっぱい。
2001/07/28(土) 02:41ID:???結構過去の過去ログを読むのはいい心がけだけどさ、なんで過去ログにないのか考えること。
そのくらい自分でちっちゃいプログラムを書けば簡単に試せるから誰も質問しないんだよ。
0052JAPU@今日も観鈴ちんを探しにマクドナルドへ...
2001/07/28(土) 06:25ID:???典型的な例:
1. open MOE, "misuzu.txt" || die;
2. open MOE, "misuzu.txt" or die;
ここで、
1. は open MOE, ("misuzu.txt" || die);
2. は (open MOE, "misuzu.txt") or die;
と解釈されるので、おそらく 1. は期待した動作じゃないだろう...
みたいな話。
もちろん、括弧で括れば全く問題ないので、|| で全て書いても良いです。
個人的には or を使うのが好きです。
# The Perl motto is "There's more than one way to do it."
ZZ
0053名無しさん@お腹いっぱい。
2001/07/28(土) 07:01ID:???同意。
Perlの上級者は極力()や&、$_を書かないでコーディングするから、
Perl初心者からみると訳のわからないスクリプトに見えることがありますよね。
でも、それを自分で考えて解くのも楽しいし勉強になります。
よく、メールの署名欄に簡単なスクリプトが書いてあって、それを実行すると
結構驚くスクリプトが沢山あります。自分でも書いてみたいけど、スマートな
ものが書けないので未だ署名欄は名前だけ(w
005449
2001/07/28(土) 11:53ID:???なるほど。
私が試したところによれば、
1.適用されない
2.適用される
と言う結果が得られたような気がするのですが、あっているのでしょうか?
0055名無しさん@お腹いっぱい。
2001/07/28(土) 16:42ID:???非常に偏りが大きいのですが、回避方法はありますか?
0056名無しさん@お腹いっぱい。
2001/07/28(土) 16:45ID:zGTvO/Jw理論的にはどちらを使ったほうが高速ですか?
自分のところで試してみたところ、1/10〜1/20程度の差が出、
どちらかが常に速いということはありませんでした。
0057名無しさん@お腹いっぱい。
2001/07/28(土) 16:58ID:???毎回srandしてない?
0058名無しさん@お腹いっぱい。
2001/07/28(土) 17:06ID:m51BRqkY0059名無しさん@お腹いっぱい。
2001/07/28(土) 19:56ID:???>>56
変数の判定をやらない分シングルの方が早そうだけど、知らん。
死ぬほど巨大なスクリプトじゃないと差は出ないんじゃないの?
006055
2001/07/29(日) 02:15ID:???srand();
としてから使ってます<rand
後はsrandは宣言していません。
種は指定無しでtimeになるようなので指定無しにしています。
0061JAPU@観鈴ちんげっと
2001/07/29(日) 02:40ID:???詳しい話は perldoc 読んでね。
0062名無しさん@お腹いっぱい。
2001/07/29(日) 03:45ID:???0063名無しさん@お腹いっぱい。
2001/07/29(日) 04:08ID:???調べ方に偏りがあるとは思わないのかね。
0064名無しさん@お腹いっぱい。
2001/07/29(日) 04:57ID:???禿同
006555
2001/07/29(日) 16:21ID:???エクセルにてその値の分布を表にしました。
その結果、0〜10と90〜100の範囲が他の範囲に比べて2割ほど
大きな値となりました。
・・・・偏り大きい調べ方ですか・・ね?
0066名無しさん@お腹いっぱい。
2001/07/29(日) 17:20ID:???20,000 回では?50,000 回では?100,000 回では?1,000,000 回では?
という具合に調べればわかると思うんだけど….
エラーが出てるよ!と教えてくれる時は間違いが探しやすいんですが、
最終行のみにエラーが出てるよ!と出た時に途方にくれます。
そういう時は文法的には間違ってないけど、処理の流れが
おかしいと言うことなのでしょうか?
また、こういう時にエラーを判断するコツがあれば、アドバイス
いただけないでしょうか?
0068名無しさん@お腹いっぱい。
2001/07/30(月) 03:22ID:???"や'の閉じ忘れの可能性が高い。
0069名無しさん@お腹いっぱい。
2001/07/30(月) 03:45ID:???$status = system("$command", "$str");
とすると、$statusに数字が入りますが、
この数字の意味するところがよく分かりません、というか知りません。
成功か失敗かは0と1(256)なので分かりますが、他の値、
2とか9等にはどういう意味があるのか知りたいです。
調べようにも何をきっかけに調べればいいのか思いつかないので
知ってる方、おねげぇします。
0070名無しさん@お腹いっぱい。
2001/07/30(月) 03:46ID:???system("$command $str");
のミスです。。。
0071名無しさん@お腹いっぱい。
2001/07/30(月) 06:05ID:GER1kc7.CGI&PerlポケットリファレンスのdbmopenのTipsを参照すると、
『DBMファイルをロックする機構はDB_Fileモジュールに用意されています』
と書いてあったのですが、なかなか方法がわからないでいます。
今のところ、下記のドキュメントは発見しましたが、
英語がわからない上に、use DB_File::Lockの記述で即エラー(*1)になります。
http://www.perldoc.com/cpan/DB_File/Lock.html
*1) BEGIN failed--compilation aborted
ローカル環境はmac OS X perl v5.6.0 built for darwin
公開用サーバーはlinux
使えるモジュールはこんな感じだそうです。(モジュールについての知識はあまりないです・・)
http://web.arena.ne.jp/suite/support/manual/cgi-cgi/perlmodule/index.html
よろしくお願いします。
足りない情報があれば追記します。
0072名無しさん@お腹いっぱい。
2001/07/30(月) 06:46ID:???> use DB_File::Lockの記述で即エラー
DB_File::Lockがインストールされていないからでしょう。
別のロック機構を試すべきかと。
00731
2001/07/30(月) 09:43ID:Aj8f98qcレスありがとうです。
根本的な認識ミスってことですか?(恥)
DB_File::Lockって、DB_Fileモジュールさえあれば使えるのかと思っていました・・
リファレンスに書いてあったのと上記のLock機構が
同じものを指してるのかは不明ですが、
DB_Fileを使うなら、これがおすすめ!っていう方法があったらよろしくお願いします〜
やっぱり普通にflockとか・・なオチになりそうですが(泣)
007471
2001/07/30(月) 09:45ID:Aj8f98qc71==73です、よろしくです。
007572
2001/07/30(月) 09:47ID:???DB_Fileのドキュメントを見ると、flockを使用しているようですね。
DB_Fileを使ったことがないので、オススメとかはないのですが、
自分はファイルロックの必要がある時は、renameを使った方法を用いてます。
これだと環境に依存しないので。
0076JAPU@オートレスポンダの作者をいじめるのはやめよう (笑)
2001/07/30(月) 11:16ID:???惜しい。
> $status = system("$command", "$str");
> とすると、$statusに数字が入りますが、
> この数字の意味するところがよく分かりません、というか知りません。
system の返り値、すなわち $? の値は wait(2) が返す値なので、
$? >> 8 が exit value
$? & 127 がどのシグナルで殺されたか、
$? & 128 がコアダンプしたかどうか
を表す。
perldoc -f system
perldoc perlvar
man 2 wait
って感じ?
0077名無しさん@お腹いっぱい
2001/07/30(月) 12:02ID:???という風に、変数に数字が入っていて、
この数字が奇数か偶数かを判断するには、
どうしたらいいでしょうか?
0078名無しさん@お腹いっぱい。
2001/07/30(月) 12:06ID:???0079hage
2001/07/30(月) 14:49ID:???print "odd\n"
} else {
print "even\n";
}
0080名無しさん@お腹いっぱい。
2001/07/30(月) 17:09ID:312.Yf8o0081名無しさん@お腹いっぱい。
2001/07/30(月) 19:26ID:t7BVDL/M"ー"が入ってる文字列をgrepかけるとエラーが表示されます。
対処法はありますか?
@a=("あ","あー","あーー");
@b=grep('ー',@a);
008281
2001/07/30(月) 19:28ID:t7BVDL/M008371
2001/07/30(月) 20:55ID:Ydf2hNHw>>75
renameですか!使った事ないです〜。
・・・flockが使える環境だとしたら、実際どちらがおすすめでしょうか?
>>80
おお、rmdirもはじめて聞きました(恥)
ちょっと調べてきますね。もっかい質問するかもしれません。。
0084T女の竹田
2001/07/30(月) 21:00ID:???うーん、ログ見てもわかりにくいけど、やっぱりFAQ。
「正規表現の中でシフトJISを使うときは、m/\Qマッチさせたい文字列\E/
のように\Qと\Eではさむ」
シフトJISは2バイト目にメタ文字(正規表現で特別な意味を持つ文字、
この場合は'[')が含まれることがあるので\Qでエスケープするわけ。
(\Eはその終わり)
ちなみに似たような問題で、'―'とかは'―\'にしないとダメ(この場合は
2バイト目が'\')。
自分は昔二つともつまずきました^^;
FAQスレとかあったほうがいいかな?
0085T女の竹田
2001/07/30(月) 21:07ID:???s/\+|\\|\(|\)|\[|\]|\{|\}|\^|\$|\*|\?|\./\\$&/g;
みたいなのがあったり(恥)
008669
2001/07/30(月) 21:33ID:CEolkqW6なるほどです。
$? だったんですね。
perldoc perlvar 初めて使いました。てへ。
でも"$? & 127"のANDしてる値自体の
一覧みたいのはあるんしょうか?
例えばPerlがuseやrequireで
外部ファイルを取り込めなかった場合(等?)は512とか。
008772
2001/07/30(月) 22:27ID:???flockが良いかどうかという話は、今までにもいろんなところで議論されていて、
結局は本人の好みの問題になると思います。
が、あえて自分の意見を述べさせていただくと、
自分の場合flockだと失敗することが多かったと思うので、rename使ってます。
その辺の話はPerlメモがオススメです。
008871
2001/07/31(火) 01:38ID:???調べました〜!・・テストはまだです。
せっかくなので、いろいろ試しにやってみようと思います^^
>>72
なるほど。しっかり動作確認してから運用した方がいいですね。
Perlメモみてきます!
うう、いろいろ見てまわってるうちに、どんどん分らない事が増えてます。
そもそも、DB_FileとバークレーDBの関係がよくわかっていません。
DB_FileさえあればバークレーDBも使えちゃうってことなんでしょうか。
それとも、またそれ専用のモジュール等が必要とか・・?
ttp://member.nifty.ne.jp/hippo2000/perltips/db_file.htm
[$X =] tie %hash, 'DB_File', [$filename, $flags, $mode, $DB_HASH] ;
この先頭の [$X =] もあるとどういう利点があるのか不明なのです。
こんなわたしに丁度いいリファレンスサイトとか解説書がありましたら
どうか教えてくださいませ。。
0089JAPU@腹痛
2001/07/31(火) 04:13ID:???> 一覧みたいのはあるんしょうか?
use POSIX; すると、この辺の定数使えるようになるみたいだ。
SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM
SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK
SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK
あとは、man 2 signal とか、/usr/include/sys/signal.h とか参照?
> 例えばPerlがuseやrequireで
> 外部ファイルを取り込めなかった場合(等?)は512とか。
なにか勘違いしている?
009069
2001/07/31(火) 04:52ID:zN5/REcMまたしてもありがとうございます。
ここら辺あたれば何か分かりそうな気配・・・
>なにか勘違いしている?
いえ、勘違いではないです。
やってることが簡易shellみたいなもので
実行後、エラーの返値を見ても実際は何が起きたのか
さっぱり分からないので何とかしたいなぁ、と。
故に返値一覧があったら楽でいいなぁと思った次第です。
009181
2001/07/31(火) 05:48ID:q2wDcpy6竹田様
お手数おかけしました。お忙しい所ありがとうございます。
本当に嬉しいです。ありがとうございました。
0092JAPU@夏ですねぇ...
2001/07/31(火) 14:02ID:???もうちょっと整理して質問しよう。
0093名無しさん@お腹いっぱい。
2001/07/31(火) 14:54ID:???0094名無しさん@お腹いっぱい。
2001/07/31(火) 17:31ID:???絶対勘違いしていると思われ。
JAPUたんに一票。
009569
2001/07/31(火) 23:11ID:???0096名無しさん@お腹いっぱい。
2001/08/01(水) 00:48ID:???0097名無しさん@お腹いっぱい。
2001/08/01(水) 07:50ID:kOCX6RGEunlinkで削除出来ますでしょjか?
0098名無しさん@お腹いっぱい。
2001/08/01(水) 09:06ID:???削除できます。
0099JAPU@千影たん
2001/08/01(水) 18:58ID:???とりあえず質問するときは、「具体的な目的」も併記すると吉かもしれない。
「○○をしたときに、云々...」という質問の仕方でも悪くはないけど、
実はそれよりもうまい方法を教えてもらえるかもしれないぞ。
0100名無しさん@お腹いっぱい。
2001/08/02(木) 00:28ID:DguDE1y60101
2001/08/02(木) 00:46ID:8xHqzTcA0102名無しさん@お腹いっぱい。
2001/08/02(木) 02:08ID:???0103名無しさん@お腹いっぱい。
2001/08/02(木) 03:43ID:GB8M4TIEファイルA,B共
postday#sing#cast#part#add
postday#sing#cast#part#add
と言った形式なのですが、無差別に追記して行くと内容が重複してしまうので
postdayをキーにして、ファイルBの最後の要素のpostdayとファイルA
のpostdayを比較、一致しなければそのままファイルBに追記、
一致する要素が有ればそこまでをpopして、ファイルBに追記したいのです。
バックアップの参考になりそうなスクリプトを見てみたのですが、
アレンジする事が出来ないでいます。
0104名無しさん@お腹いっぱい。
2001/08/02(木) 03:50ID:???単純にバックアップを取るのであれば、File::Copyでも使えばいいかと思いますが。
0105103
2001/08/02(木) 03:58ID:GB8M4TIEレス有難う御座います。掲示板のログのような(実際は少し異なります)
小さなログファイルAを大きなファイルBにバックアップしたいのです。
ファイルAは保存期間や容量が小さい為に効率的にファイルBに保存したい
と考えています。
0106103
2001/08/02(木) 04:06ID:GB8M4TIEファイルBを読み出して最後のエントリの日付"postday"を"$saisyuu"で得る。
ファイルAを読み出す。
$saisyuuとファイルAの"postday"を比較
重複しなければそのままファイルBに追記。
$saisyuuと一致する行がファイルAにあればそこまでを削除して、ファイルBに追記。
これで上手く行かないか挑戦してみます。 有難うございます
0107104
2001/08/02(木) 04:34ID:???一例として。
statでファイル更新時間を取って、異なれば書き込み、とか。
my @file = qw(A B);
if ((stat $file[0])[9] != (stat $file[1])[9]) {
#...
}
0108名無しさん@お腹いっぱい。
2001/08/02(木) 04:38ID:???http://www.megabbs.com/program/index.html
0109>>103
2001/08/02(木) 04:40ID:P5Z/J3iM# A を読み込み
open A,"a";
@aaa=<A>;
close A;
# B を読み込み
open B,"b";
@bbb=<B>;
close B;
# @aaa と @bbb の非共通部分を @ccc へ
for(@bbb){
@ccc=grep(!/$_/,@aaa);
}
# @bbb と @ccc の共通部分を @ddd へ
for(@bbb){
@ddd=grep(/$_/,@ccc);
}
# @aaa と @ddd を書き込み
open C,">a";
print C @aaa , @ddd;
close C;
0110名無しさん@お腹いっぱい。
2001/08/02(木) 14:11ID:RSuVRy4cサブルーチンの中でサブルーチンを実行し、
そのサブルーチンの中でも別のサブルーチンを呼んで…
という風にサブルーチンを入れ子にしていくと内側の階層の深いサブルーチンの
挙動がおかしくなっていくというか、時には動かないなんてことはあるんでしょうか?
ためしにある処理をそのまま書いてちゃんと動いたものを
サブルーチンとして{}で囲んで書いただけでおかしくなりました。
環境はWin+ANHTTPDなのですが、もしやWinPerlだけの症状なのでしょうか?
どなたかご存知の方いらっしゃいましたらお願いします。
0111名無しさん@お腹いっぱい。
2001/08/02(木) 14:17ID:???多分サブルーチンの書き方に問題があると思われ。
0112名無しさん@お腹いっぱい。
2001/08/02(木) 14:17ID:???そのスクリプトを出してくれ。
ありがちなものとしては、同じ名前のサブルーチンが他に存在してるとかかな?
w2k+ANHTTPDだけど、普通に動いてるよ。
0113110
2001/08/02(木) 14:23ID:VO0DTrjQ>>111
各サブルーチン単体では全て期待通りに動作します。
入れ子にしていった場合にのみおかしくなるんです。
>>112
全部出すと相当長いのでちょっとここに出すのは勘弁です。
改めて確認してみたらおかしくなってるところは3重くらいになっているだけでした。
簡略化した形で書けたらあとで貼ります。
ありがとうございます。
0114名無しさん@お腹いっぱい。
2001/08/02(木) 14:28ID:???myのせいでサブルーチンの結果が外に出てないというオチもないよね?
0115110
2001/08/02(木) 14:36ID:VO0DTrjQいや、全部returnで明に結果を返してます。
#そういうことですよね?
0116110
2001/08/02(木) 14:53ID:???関係するサブルーチンは6個ほど、200行くらいになってしまいます。
ここに晒すのはちとためらわれます。。。。
うーむ。。
0117名無しさん@お腹いっぱい。
2001/08/02(木) 15:00ID:???どっかにアップしてURL出せば?
0118名無しさん@お腹いっぱい。
2001/08/02(木) 15:00ID:???推測でしかないが。
引数渡しに失敗している可能性。
0119110
2001/08/02(木) 15:11ID:VCBoAI72例えばですね。
print $hoge;
print &Foo;
これで正常の出力が得られるのですが、これを
&Hoge;
sub Hoge{
print $hoge;
print &Foo;
}
と書くと何も出力されないのです。
こんなのってありなんでしょうか?
&Foo;の中でも複数のサブルーチンを呼んでます。
0120名無しさん@お腹いっぱい。
2001/08/02(木) 15:32ID:???それで挙動がおかしくなるなんて聞いた事無いが。
0121名無しさん@お腹いっぱい。
2001/08/02(木) 16:01ID:IfHUjzJoカタカナの語尾の長音を取るように置換したいのですが
(「コンピューター」→「コンピュータ」)
どのようにしたら良いでしょうか?
0122
2001/08/02(木) 16:02ID:8xHqzTcA0123110
2001/08/02(木) 16:23ID:???だから困っているのでつ。
実は最初の状態でも
内側で呼んでいるサブルーチンの挙動が微妙に変なのだが…
>>122
そうなのかなあ…。
おれ、この間もそれやったんだよな…
そうだとしたらつくづくヴォケ野郎だな、、俺…。
0124名無しさん@お腹いっぱい。
2001/08/02(木) 16:45ID:mjquR9Ogところありますかね。
実際の使用例とか・・・。
PHPとPostgresqlで・・。
0125名無しさん@お腹いっぱい。
2001/08/02(木) 16:57ID:???出来ればサブルーチンを見せて欲しいが。
というかuse strictで引数渡しもちゃんとして書こうよ。
0126ちんちんの長さ12.5cm
2001/08/02(木) 23:08ID:8xHqzTcAuse strict;
my $key;
foreach $key (keys(%ENV)) {
#処理...
}
------
と
---
use strict;
foreach my $key (keys(%ENV)) {
#処理...
}
------
では、体感できない範囲でも速度違いますか?
0127名無しさん@お腹いっぱい。
2001/08/02(木) 23:09ID:SuLp4aV6#!/usr/bin/perl -w
require 'jcode.pl';
$text = "あいうえお";
$code = &jcode::getcode(*text);
print "$code\n";
こういうスクリプトを作って実行すると、以下のようなエラーが出てしまいます。
[madjack@cluster /home/madjack]% ./perltest.pl
Can't locate jcode.pl in @INC (@INC contains:
/usr/lib/perl5/5.00503/ppc-linux /usr/lib/perl5/5.00503
/usr/lib/perl5/site_perl/5.005/ppc-linux
/usr/lib/perl5/site_perl/5.005) at ./perltest.pl line 3.
何がおかしいのでしょうか?
0128名無しさん@お腹いっぱい。
2001/08/02(木) 23:37ID:I9vB6MGkuse strictってどういった使い方をするんですか?
シェルでやってみたら、今まで動いてたスクリプトにエラーチェック(?)
が沢山でてきてしまいました。
125さんの引数渡しって言葉にも混乱してるんです。
すみません、余裕のある方教えて下さい。
0129名無しさん@お腹いっぱい。
2001/08/03(金) 00:14ID:eb2ym/zsしたいですが、何か簡単なスクリプトありませんか?
0130名無しさん@お腹いっぱい。
2001/08/03(金) 00:15ID:eb2ym/zsサブジェクトにWeekly Mag2が入ってるのを削除
0131名無しさん@お腹いっぱい。
2001/08/03(金) 00:44ID:???違うよ。上のほうが速い。
>>127
@INCにjcode.plが無いと言われてる。
エラーメッセージは英語だから読まないというのは止めましょう。
これくらい調べれば読める範囲なので。
で、requireに問題が。
パス無しで指定すると@INCを探しに行くので、
'./jcode.pl'等と実際に置かれている場所を指定しましょう。
0132名無しさん@お腹いっぱい。
2001/08/03(金) 00:48ID:???use strictと宣言することによって、
コンパイル時にレキシカル宣言されていない変数があると、エラーになります。
グローバル変数が使えなくなるというわけで。
引数渡しってのは、&sub_routine($hoge, $fuga);
みたいにサブルーチンに引数を明示的に渡すのです。
これで、サブルーチンには2つの引数しか行かないことになります。
# 日本語的におかしいかもしれないが、ご容赦。
0133128
2001/08/03(金) 01:05ID:ldQ3DQJ.ありがとうございます!
>グローバル変数が使えなくなる
だ・・だからあんなにエラーが出たのか・・・
それでもきちんと動作することがいいスクリプトってことですかね
なんでこんなやっかいなものを皆さんお使いに・・・?
素朴な疑問でした。^ ^;
0134132
2001/08/03(金) 01:37ID:???「自分しかそのスクリプトを見ない」
「どこかでエラーが起こっても、自分はすぐわかる」
「自分は絶対typoしない」
このあたりの条件を兼ね備えているのなら、全部グローバルでもいいのかもね。
私はいつもuse strictしてます。
# ちなみに、my宣言した変数のほうが、グローバルより若干速い。
0135名無しさん@お腹いっぱい。
2001/08/03(金) 01:52ID:???Perl5.6以降ならmy($var)同様の使い方でour($var)が、
それ以前のVersionならuse vars qw/$foo @bar/;とし、
宣言したグローバル変数を使用可能に出来ます。
私も初心者の頃はuse strictなど煩わしいだけ、と思っていましたが、
今では反射的にuse strictを書くようになりました。
慣れるまで色々面倒でしょうが、
黙って使っていると後々幸せになれるはずです。
0137128
2001/08/03(金) 03:04ID:ldQ3DQJ.詳しい説明ありがとうございました!
むぅ。凄く勉強になります。
わたしの持っている本にはこんな事全く書いていなかったので・・
今後少しずつ規模の大きいスクリプトを組んでいくのなら、
今のうちに慣れてきちんと書けるようにした方がいいですよね。
しかし組み方を1から考えなおさなくちゃ難しそうですが(泣)
がんばってみます!
0138名無しさん@お腹いっぱい。
2001/08/03(金) 04:24ID:???丁度良いネタがでたので質問します。
ローカルで
for(my $i=1;$i<100;++$i){
##処理##
}
というプログラムを走らせると$iが0から始まってしまいます。
if文などでも同様です。
サーバにアップロードするときちんと動作するんですが、
やはり使用環境がいけないのでしょうか?
ちなみに
my $i;
for($i=1;$i<100;++$i)
だとローカルでもきちんと1から動いてくれます。
0139名無しさん@お腹いっぱい。
2001/08/03(金) 04:40ID:???for (my $i = 1; $i < 100; ++$i) { print $i,"\n" }
# 1
# 2
# ..
# 99
きちんと出ましたよん。
ちなみに当方ローカル環境、Win2k + Apache1.3.20 + ActivePerl623
0140名無しさん@お腹いっぱい。
2001/08/03(金) 05:22ID:???君の使用環境がわからなくては誰にも判断しようがないと思うが。
ネタですか?
0141うん
2001/08/03(金) 06:21ID:wwW.OFoE0142名無しさん@お腹いっぱい。
2001/08/03(金) 06:28ID:???子供は早く寝なさい(藁
0143103
2001/08/03(金) 07:53ID:aOu/LdE6>>109
レスが遅れてしまいました。お二方のアドバイスが参考になって色々なアプローチ
が有るのが分かりました。
一応、一日格闘した挙句(^^) ファイルAのサイズは比較的小さくファイルBはなるべく
大きなサイズを確保したかったので、perlメモさんで
http://www.din.or.jp/~ohzaki/perl.htm#File_Tail
を頂いて来まして、これでファイルBの最後の一行を得る→
$saisyuuとファイルAのpostdayを比較→一致する行が出現すればそれ以降を破棄
→ファイルBに追記モードで書き込み、と言う感じになりました。
今ローカルでとろとろと動いています(^^)
grepとか回した事が無かったので新鮮でした、色んな考えかたが有るんですね。
ありがとう御座いました。
0144127
2001/08/03(金) 11:50ID:dhEi2JqUありがとうございます。
できました。
0145名無しさん@お腹いっぱい。
2001/08/03(金) 14:24ID:02P8SgLYみ、ブラウザにも表示させるというプログラムを作っています。しかしながらブ
ラウザに表示することはできるのに、それをファイルに書き込むことができませ
ん。スクリプトをどう見直しても分からないので、ここの方に頼ることにしまし
た。
ちなみに『print <<"HERE";』以下を削って実行するとInternal Server Error
となってしまいます。
cgiファイル
#!/usr/bin/perl -w
$file = "log.txt";
read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
open(OUT, ">$file");
print OUT $in;
close OUT;
print <<"HERE";
Content-Type: text/html
<html><body>
$in
</body></html>
HERE
__END__
htmlファイル
<form method="POST" action="cgi-bin/prot3.cgi">
<html><head><title>
テスト
</title></head><body bgcolor="#000000">
<font color="#ffffff">
名前:<input type="text" name="name"><br>
パス: <input type="password" name="pass"><br>
<input type="submit" value="OK"><input type="reset" value="reset">
</font>
</body></html>
0146名無しさん@お腹いっぱい。
2001/08/03(金) 14:50ID:???scriptじゃなくて、実行ユーザーとディレクトリのパーミッションだろ
0148名無しさん@お腹いっぱい。
2001/08/03(金) 15:27ID:???0149名無しさん@お腹いっぱい。
2001/08/03(金) 15:43ID:???0150名無しさん@お腹いっぱい。
2001/08/03(金) 18:53ID:???my($hoge);
$hoge = hoge;
$hoge = hoge;
$hoge = hoge;
と、
my $hoge = hoge;
$hoge = hoge;
$hoge = hoge;
は同じ効果が出ているのでしょうか。
0151145
2001/08/03(金) 22:37ID:???いけました。
まさかパーミッションが絡んでいたとは思いませんでした。
cgiではなく、ファイルをオープンして書き込む部分を
普通のスクリプトとして実行すると666でなくても書き込めるのに・・・。
うーん。
ありがとうございました。
0152名無しさん@お腹いっぱい。
2001/08/04(土) 04:07ID:???cgiだとnobodyとかwwwとかになるんよ。(サーバーの設定によるが)
で、そのログファイルのあるディレクトリの属性w(作成・削除)が
ついてないから新規作成ができなかったのね
ディレクトリを707にすれば作成もできると思うけど
cgiと同じディレクトリはさけたほうがいいよん
0153名無しさん@お腹いっぱい。
2001/08/04(土) 04:35ID:???0154名無しさん@お腹いっぱい。
2001/08/04(土) 04:55ID:eUp0QEZwどこまで知ってれば中級者っていえるのかなー。
上級者の方に聞きたいです。
奥が深すぎて判断つかない。
0155名無しさん@お腹いっぱい。
2001/08/04(土) 05:37ID:vq//mZ8w↑初心者
0156名無しさん@お腹いっぱい。
2001/08/04(土) 06:22ID:???はまった(w < n:
で、ここのスレで質問してる人は初心者だと思ってるんでしょ?
自分も思ってるし。
0157すごく初心者
2001/08/04(土) 07:43ID:???http://corn.2ch.net/test/read.cgi?bbs=php&key=988777987&ls=50
↑で見つけた自動更新cgi(?)なのですが、
どういう処理をしているのか、お暇な方、解説して欲しいのでありまする。
#!/usr/local/bin/perl
%html = ('0802' => 'index.html',
'0803' => 'nya.html',
'0804' => 'zzz.html',
);
@time = localtime();
$html = $html{ sprintf "%02d%02d", $time[4]+1, $time[3] };
printf "Location: $html\n\n";
0158名無しさん@お腹いっぱい。
2001/08/04(土) 07:56ID:DYf6StlIたとえば、
てきとう6なぶん
なんて文があったとき(変な文だけど。。)数字の6を抜き出すにはどうすればよいのでしょうか?
いろいろ試行錯誤しましたがどうしてもできません。お願いします。
0159名無しさん@お腹いっぱい。
2001/08/04(土) 07:57ID:eUp0QEZw0803だったらnya.html
・・・(続く)
っていう定義リストを作っておいて。
@time = localtime(); で現在の日付けを取得
$html = $html{ s・・・のところで、日付けを”0802”とかの数字の並びにする
すると、$html{'0802'}となるので、最初の定義で0802だったらindex.htmlとなる。
最後に、printf "Location: $html\n\n";
で、自動的にindex.htmlにジャンプ。
0160157@すごく初心者
2001/08/04(土) 08:38ID:???どうもありがとうございます。
助かりました。
0161名無しさん@お腹いっぱい。
2001/08/04(土) 08:49ID:eUp0QEZw$meta='てきとうな6文字';
if($meta=~/\d/){print "$& \n";}
数字だったらこれでいけるけど、抜き出したい特定の文字がなんなのかによる。
0162名無しさん@お腹いっぱい。
2001/08/04(土) 09:00ID:???>>158へのレスだよね?
0163158
2001/08/04(土) 09:16ID:DYf6StlIこの場合はどうやればよいのでしょう?
適当な文字56<!--tekito6-->適当な文字65
とかいう文の場合<!--tekito6-->の6(数字)だけを抜き出して、他の変数に代入するには
どうすればよいのでしょうか?161さんの方法ではうまくできませんでした。
お願いします。
0164JAPU
2001/08/04(土) 10:30ID:???0165JAPU
2001/08/04(土) 10:31ID:???if(/<!--tekito(\d)-->/) { $hoe = $1; }
0166158
2001/08/04(土) 12:36ID:DYf6StlI0167名無しさん@お腹いっぱい。
2001/08/04(土) 12:37ID:DQ4jThjYクッキーに配列を保存できますかね?
例えば、
$data=array(
"a" => "hoge1",
"b" => "hoge2"
);
SetCookie("hogehoge", $data);
こんな感じで$data配列を作成しクッキーに保存して、
$c_data=$HTTP_COOKIE_VARS["hogehoge"];
で、データを呼び出して
echo"$c_data[a]";
で出力できるようにしたいのですが、
なかなかうまくいかないです。
0169名無しさん@お腹いっぱい。
2001/08/04(土) 13:44ID:DQ4jThjYPHPでした。スレッド間違い(汗
0170名無しさん@お腹いっぱい。
2001/08/04(土) 16:54ID:PSOASf6IWEBサイトを作りたいのですが技術的なアドバイスをお願いします。
・IDの作り方は?
ユーザーIDとメールアドレスを登録すると自動的にパスワード付の
メールが送られますよね?で、クッキーをオンにしてログインする。
そ〜いった技術です。ヤフーとかもそうですよね。
専門のスレがあれば教えてください。
まったくの初心者の教えて君で本当にすいません。
0172名無しさん@お腹いっぱい。
2001/08/04(土) 18:49ID:8Ac4eVMAスタイルシートは使えませんか?
それと、HTMLファイルで このように入力すると
半角スペースになりますが、CGIファイルの中ではこの
特殊文字をどのように置けば半角スペースになるでしょうか?
0173名無しさん@お腹いっぱい。
2001/08/04(土) 18:58ID:???当然使える。
適当なところに CSS ファイルを置いて、link タグの href 属性で呼び出せば良い。
このようにって、見えん。
&nbsp;って居れてるのかな?
&と;は¥でエスケープしないとならないはず。
0174名無しさん@お腹いっぱい。
2001/08/04(土) 21:41ID:QrWijtIYレスありがとうございます。
早速試してみます。
# 2chでもまともにレス返ってくるんですね。
# うれしいです(^^
0175IY
2001/08/04(土) 21:53ID:???0176153
2001/08/04(土) 23:34ID:???0177名無しさん@お腹いっぱい。
2001/08/05(日) 00:44ID:???モジュール使えばいいでしょ。
0178名無しさん@お腹いっぱい。
2001/08/05(日) 00:53ID:Y9qpbhzk何でしょうか? よくTCPでセッションを張る?という
表現(この表現も正しいかわからないんどえすが)が
ありますが、通信経路を確保するということでしょうか?
0179153
2001/08/05(日) 05:43ID:???0180名無しさん@お腹いっぱい。
2001/08/05(日) 06:05ID:???useすればいいだけですが。
use Compress::Zlib;
アーカイブ作るんならこれか?
0181170
2001/08/05(日) 15:23ID:.gPxxl9o説明の仕方が悪かったようですね。
お聞きしたいのは、‘どうやったらそ〜いうことができますか?’です。
親切な方教えてください。
0182JAPU
2001/08/05(日) 17:45ID:???Compress::Zlib を入れたら、
perldoc Compress::Zlib
しましょう。
0183名無しさん@お腹いっぱい。
2001/08/05(日) 18:33ID:???登録順のIDなら
現在のID取得して変数に突っ込んでそれに+1するだけでOKでは?
パスワードは、適当な文字ランダムで作ってcryptでもすればできるんじゃん?
# 永遠の初心者なのであんまり信用しない方がいいかも
0184コメント無しさん
2001/08/05(日) 19:04ID:???データベース使ってるなら「自動加算型」みたいなのがあるからそれ使う
使ってないなら、最新のIDをファイルに書いといて、登録のたびにそいつを
増やしていく。
0185153
2001/08/06(月) 04:28ID:???ちなみにF2S使ってるんですが、一般の無料サーバでも試せませんよね?
0186名無しさん@お腹いっぱい。
2001/08/06(月) 04:57ID:QmPH6qXg"と'はどう使い分ければ良いんでしょうか?
0187名無しさん@お腹いっぱい。
2001/08/06(月) 05:41ID:???使い分けなくても良いです。
お好みに合わせて使いましょう。
$ENV{HTTP_REFERER}
もありです。
0188名無しさん@お腹いっぱい。
2001/08/06(月) 05:46ID:???f2sは鯖のコマンドでgzipが使えるね、と密かに選択肢を増やしてみたりする。
0189名無しさん@お腹いっぱい。
2001/08/06(月) 11:09ID:???数値演算をそのままSTDINから入力して電卓にする
と言う訳には行かないのでしょうか?
$n = <STDIN>;
print "$n\n";
ってして 1+1 と入力すると、当然 1+1 と表示されるだけです。
変数が展開されて、ついでに中の数式も計算してくれたりは出来ないですよね。
ちゃんと演算子と数値に分けて数値を変数に代入して、内部? で
計算した後表示するしかないのかなぁ、、
0190名無しさん@お腹いっぱい。
2001/08/06(月) 11:38ID:???$_ = <STDIN>;
@_ = split/\+/;
print $_[0] + $_[1];
あとは適当にやってね
0191名無しさん@お腹いっぱい。
2001/08/06(月) 11:39ID:???eval
0192名無しさん@お腹いっぱい。
2001/08/06(月) 11:55ID:???色々作ってみてるのですが、ふと最後の式が入力した式そのまま(あたり前ですが)
なので、perlの演算式をそのまま与えれば3行位で電卓が出来ちゃうかな
と考えてしまったんです。
>>191、
うわ、有難う御座います。4文字で解決です (笑)
馬鹿はevalを使っちゃ駄目と何処かで見たんで、、、
文字列をプログラムとして評価してくれるんですね。
なるほどー、危ない訳も良く分かりました。 感謝です。
0193名無しさん@お腹いっぱい。
2001/08/06(月) 12:15ID:???$n =<STDIN>;
print eval("$n");
何か感動した ^ ^ )
0194名無しさん@お腹いっぱい。
2001/08/06(月) 13:57ID:c9LAtMIM具体的には、webでGETに要した時間を計測したいのですが・・・
0195名無しさん@お腹いっぱい。
2001/08/06(月) 14:20ID:???Time::Hires
http://www.bekknet.ad.jp/~bero/docj/module/06/Time_HiRes.html
0197名無しさん@お腹いっぱい。
2001/08/06(月) 16:42ID:???電卓なら、
$n =~ m/[^\d\+\*\/\.\s]/ && ...;
な感じで、入力値チェックもしたほうがいいかもね。
0198名無しさん@お腹いっぱい。
2001/08/06(月) 16:44ID:???馬鹿はevalを使うなってのもそういうことだろうね。
0199189
2001/08/06(月) 17:22ID:???汚染チェックってやつですね、確か僕が見た所でもそう言ったニュアンス
で書かれてました。
それにしても、、+-だけで演算子と数値は5個まで、とか言うダサイ
電卓をif ($_ =~ /\d/).... とかズラズラ並べて書いてたんで
目から鱗落ちまくりです。
了解しました、cgiでは当分使わないです (笑)
0200名無しさん@お腹いっぱい。
2001/08/06(月) 18:52ID:???$n = <STDIN>;
$n =~ tr{0-9\+\-\*\/\(\)\.}{}cd;
print eval($n);
0201729
2001/08/06(月) 23:51ID:Mx2WAaZU「メモリの浪費」を抑えたいんだけど、いったい具体的にどういうことを
すればいい?そもそも「無駄に食う」ってのはどういう書き方をしたものなの?
初心者でスマソ。
0202153
2001/08/07(火) 00:00ID:???0203名無しさん@お腹いっぱい。
2001/08/07(火) 01:27ID:???悪: @lines = <IN>;foreach (@lines){ ... }
良: while(<IN>){ ... }
0204名無しさん@お腹いっぱい。
2001/08/07(火) 01:48ID:bTCo0M5gなんとかすることは可能でしょうか?
0205名無しさん@お腹いっぱい。
2001/08/07(火) 02:01ID:???可能です
0206名無しさん@お腹いっぱい。
2001/08/07(火) 02:06ID:bTCo0M5gそうなんですか。。。
今まで、とりあえず配列にセットして、popやらspliceやらの関数使ってました。
勉強しに逝ってきます。
0207729
2001/08/07(火) 08:58ID:swpPnFjUすっきり書けるものを、余計なプロセスを経てるということ?
他にはないっすかねぇ。気持ち的にforeach〜よりもuntilとかの
制御を使うほうが重い気がするんだけど、どう?
0208名無しさん@お腹いっぱい。
2001/08/07(火) 09:08ID:???てきとー
<!--a-->
てきと
あああ
<!--b-->
と言う文があったとして<!--a-->と<!--b-->とその間の文を消したいんだけどどうすればいい?
s/<!--a-->.*<!--b-->//;だとできなかったんだけど。
0209名無しさん@お腹いっぱい。
2001/08/07(火) 09:21ID:???根本的に違う気がする。
@line = <IN> ってのは全てに配列に読むことによって、メモリを非常に使う。
それに対してwhile (<IN>) {} は一行づつ読み込むことによって、
メモリの消費が大きくならない。スピードは殺しているだろうが。
>>208
s修飾子をつけて単一行として処理。
s/<!--a-->.*<!--b-->//s;
0210名無しさん@お腹いっぱい。
2001/08/07(火) 12:17ID:???ton.2ch.net/test/read.cgi?bbs=sec&key=996966367&st=40&to=40&nofirst=true
これがperlプログラムのコーディング上のチェックミスらしいんですが
本当のperlhackerさんに掛かれば掲示板のタグチェックなんて意味を
なさないと言う事でしょうか?
どうしても興味が有ったので可能性と言う事で、お聞きしました。
方法を知りたいのでは無いんです。
場を乱したらごめんなさい。放置してくださいませ。
0211名無しさん@お腹いっぱい。
2001/08/07(火) 12:17ID:???配列だってa[0]で一つの変数分のメモリを消費します、これが100個
あれば変数100個分のメモリを消費します。
処理速度!=メモリ消費 です、メモリ消費を抑えるために例えば
配列に入れるんではなく1行づつファイルに書き出したりしてたら
速度は遅くなります。
当たり前のことを長々と書いてしまって恥ずかしい。。。
0212名無しさん@お腹いっぱい。
2001/08/07(火) 12:56ID:???# そこまで大きいデータをTEXTで保存はせんだろうが
0213名無しさん@お腹いっぱい。
2001/08/07(火) 13:07ID:t8arwgAYcase insensitiveにしたいのですが
良い記述方法等ありますでしょうか?
0214名無しさん@お腹いっぱい。
2001/08/07(火) 13:12ID:???フィーネはcgiの問題とは言ってるがbbs.cgiの問題とは言っていないところ
がポイント
0215名無しさん@お腹いっぱい。
2001/08/07(火) 14:12ID:???ドキュソの俺にはどうやってるのかサッパリ分からん…。
しかもCGIのバグって…?
0216名無しさん@お腹いっぱい。
2001/08/07(火) 14:24ID:???CGIのバグを利用して「書き込んでる」とは言っていない点にも注目。
0217729
2001/08/07(火) 15:25ID:m8P3Xhl6「処理速度!=メモリ消費」は目から鱗だったよ。
「箱庭」「FFなんたら」が敬遠されてるけど、サーバ側は何が不満なの?
どこかのサーバでは“メモリ消費が激しいCGI”と説明してたけど、
サーバにとって問題のあるCGIってのは「メモリ消費>速度」なのかな。
0218名無しさん@お腹いっぱい。
2001/08/07(火) 15:48ID:???0219名無しさん@お腹いっぱい。
2001/08/07(火) 15:52ID:???なるべくメモリ消費を少なくする為にundefで変数を初期化するのは
良い事なのでしょうか?
undefが入る分、処理は遅くなると思います。
よっぽどメモリを喰うようなスクリプトでなければ気にする必要は
ないのでしょうか?
いつも悩んでるんです・・・。
0221名無しさん@お腹いっぱい。
2001/08/07(火) 17:45ID:???0222名無しさん@お腹いっぱい。
2001/08/07(火) 18:22ID:???まじで?じゃあundefの存在意義は?
ソースが分かったら教えてちょうだい。
0223222
2001/08/07(火) 18:31ID:???存在意義はあるね。
けどソースが分かったら教えてちょうだい。
0224221
2001/08/07(火) 19:41ID:???Perlのソース見れば分かるんだろうが…(;´Д`)
0225名無しさん@お腹いっぱい。
2001/08/07(火) 20:32ID:???そして同じ名前の変数を何度も使いまわせば浪費にならないのかい?
0226名無しさん@お腹いっぱい。
2001/08/07(火) 20:34ID:???0227名無しさん@お腹いっぱい。
2001/08/07(火) 20:41ID:???0228名無しさん@お腹いっぱい。
2001/08/07(火) 20:48ID:???ハッシュ一要素につき1KBくらい消費するとか聞いたことあるし。
0229名無しさん@お腹いっぱい。
2001/08/07(火) 21:44ID:???しかし殆どのバージョンのUNIXでは、領域をシステムに返却されない。
青らくだにあるな。
>>219
結局、メモリリークをおさえるか、処理速度を優先させるか。
これはケースバイケースだったりするわけで。
どちらか問われない、又は問題無い状況であれば、好みで使えばいいかと。
0230名無しさん@お腹いっぱい。
2001/08/07(火) 22:34ID:???コレってメモリをいくらぐらい食いますか?
0231名無しさん@お腹いっぱい。
2001/08/07(火) 23:21ID:???気になるのならどうにかして試して調べろ。
0232名無しさん@お腹いっぱい。
2001/08/07(火) 23:30ID:???出来ないくせに大きな口叩くなよ(大爆笑)
0233名無しさん@お腹いっぱい。
2001/08/07(火) 23:39ID:???箱庭風ゲームを作るつもりだが、メモリ消費と処理速度、どっちを
優先した方が良いと思う?箱庭みたいにご指名で「使用不可」
されたくはないからな…。
0235
2001/08/07(火) 23:45ID:iLCparaY0236Crow
2001/08/07(火) 23:47ID:???#この中でサブルーチンを直接読み込んだり、
#計算したりする事出来る?
$kotae=$tmp*$check;#こんな感じで
test
0237名無しさん@お腹いっぱい。
2001/08/07(火) 23:51ID:???自分で試せよ。
0238名無しさん@お腹いっぱい。
2001/08/07(火) 23:56ID:???print <<test;
test
$kotae=$tmp*$check;#こんな感じで
print <<test
test
0239名無しさん@お腹いっぱい。
2001/08/08(水) 00:04ID:???${ \do{ $katae = $tmp * $check; } }
test
0240名無しさん@お腹いっぱい。
2001/08/08(水) 01:17ID:rNhUL.Uw@{[ $katae=$tmp*$check;]}
test
0241名無しさん@お腹いっぱい。
2001/08/08(水) 06:02ID:???$hogege = 1024kb_str;#1Mぶんくらいの文字列
hoge;
sub hoge{
my $hoge = $hogege;
$hoge = s/sage//g;
$hoge = s/age//g;
$hoge = s/hage//g;
$hoge = s/uge//g;
$hogege = $hoge;
$hoge = 0;
}
最後に0でクリアするのって意味あるのだろうか…
0242名無しさん@お腹いっぱい。
2001/08/08(水) 08:52ID:???無い。
プライベート変数はスコープ抜けると自動的に破棄されます。
というか、プライベート変数にコピーする理由も無いような。
0243名無しさん@お腹いっぱい。
2001/08/08(水) 13:01ID:79X/nc36PerlでSJISをUNICODEに変換するには、どのように記述すれば良いのですか?
0244名無しさん@お腹いっぱい。
2001/08/08(水) 13:42ID:???モジュール使いましょう。
検索すればいくらでも出てくるかと。
0245243
2001/08/08(水) 14:54ID:2OjC6AHM0246名無しさん@お腹いっぱい。
2001/08/08(水) 15:05ID:???use strict;
print "Content-type: text/html; charset=EUC-JP\n\n";
print <<"EOM";
テキストを出力
EOM
exit;
use strict; を宣言すると上のようなスクリプトが動かなくなります。
こう言う場合は宣言してはならないものなのでしょうか。
0247名無しさん@お腹いっぱい。
2001/08/08(水) 15:20ID:???動くが?
0248名無しさん@お腹いっぱい。
2001/08/08(水) 15:25ID:???コーディングミスをuse strictの所為にする厨房が。
0249名無しさん@お腹いっぱい。
2001/08/08(水) 15:27ID:???動きますが?
0250名無しさん@お腹いっぱい。
2001/08/08(水) 15:30ID:???ちなみにテキストの内容に $ とか @ とかは入って無いです。
んー…
0251名無しさん@お腹いっぱい。
2001/08/08(水) 15:35ID:???0252名無しさん@お腹いっぱい。
2001/08/08(水) 15:41ID:???というかローカルでは動くんですが…
0253名無しさん@お腹いっぱい。
2001/08/08(水) 15:41ID:???多分これからもエラー出まくるから出来ればコマンドラインでwcした方が
良いよ。cgiでやるならKcache入れるとか。
探せばごろごろ出てくる。
0254名無しさん@お腹いっぱい。
2001/08/08(水) 15:53ID:???サーバで実験すんな。ローカルでやれや。
0255名無しさん@お腹いっぱい。
2001/08/08(水) 15:55ID:???2chには無理。
0256名無しさん@お腹いっぱい。
2001/08/08(水) 16:06ID:???jcode.plはライブラリだ。
0257名無しさん@お腹いっぱい。
2001/08/08(水) 16:07ID:???ローカルでは動いてると書いてるようだが。
0258名無しさん@お腹いっぱい。
2001/08/08(水) 16:09ID:???shebang行が違うというのは無しの方向で。
0259名無しさん@お腹いっぱい。
2001/08/08(水) 16:14ID:???ウチもニフだが合ってる。
ってかマジで動かないねぇ。
サーバのせいにして終わりにしておけ。
0260名無しさん@お腹いっぱい。
2001/08/08(水) 16:15ID:???0261名無しさん@お腹いっぱい。
2001/08/08(水) 16:18ID:???strict.pmが無いならアウト。
0262名無しさん@お腹いっぱい。
2001/08/08(水) 16:26ID:???かな?
0263名無しさん@お腹いっぱい。
2001/08/08(水) 16:28ID:???perlのバージョンは5です。 (ただし、perl5での標準的なモジュールは使用できません)
ということで、strict.pmすら無いというオチかと。
0264名無しさん@お腹いっぱい。
2001/08/08(水) 16:43ID:???いいな ベシャリ出来るって いや ある意味不幸か ヽ(´ー`)ノ
0265264
2001/08/08(水) 16:45ID:???許して 30時間寝てないの。。。。。。
0266名無しさん@お腹いっぱい。
2001/08/08(水) 16:50ID:???今一番勢いの良いスレに書こうとしたと見たが(w
0267名無しさん@お腹いっぱい。
2001/08/08(水) 17:00ID:???分かりました、みなさんレスどうもでした。
0268名無しさん@お腹いっぱい。
2001/08/08(水) 17:29ID:???0269名無しさん@お腹いっぱい。
2001/08/08(水) 20:23ID:???0270名無しさん@お腹いっぱい。
2001/08/08(水) 20:37ID:???0271名無しさん@お腹いっぱい
2001/08/08(水) 21:22ID:???xxx.datの中身が
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
だとしたら、これを消したいんです。
0272名無しさん@お腹いっぱい。
2001/08/08(水) 21:24ID:???close FILE;
もっとスマートな方法ありそうだけど。
0273272
2001/08/08(水) 21:26ID:???0274271
2001/08/08(水) 21:32ID:???その線で、datに何かを書き込む形で消すことはできませんか?
0275271
2001/08/08(水) 21:35ID:???while( <FILE> ){ push ( @IP , $_ )};
#ここでなにかやって
print FILE @IP;
close FILE;
って感じに。
0276名無しさん@お腹いっぱい。
2001/08/08(水) 21:35ID:???とほほとか見ると結構わかるよ
0277名無しさん@お腹いっぱい。
2001/08/08(水) 21:37ID:???0278271
2001/08/08(水) 21:48ID:???で、途中で@IPをどうにかしてから書き込みして消したいんです。
0279名無しさん@お腹いっぱい。
2001/08/08(水) 21:53ID:???open( FILE , "+<xxx.dat" );
while( <FILE> ){ if($_ ne "127.0.0.1\n";){push ( @IP , $_ )}};
print FILE @IP;
close FILE;
こんな感じ?
0280271
2001/08/08(水) 21:54ID:???foreach $IP (@IP){ $IP = ();}
ってやっても消えないんですよね…。
foreach $IP (@IP){ $IP = "\n";}
も4行だけもとIPが改行されるだけで消えるわけじゃないし。
0281名無しさん@お腹いっぱい。
2001/08/08(水) 21:55ID:???>>271の状態から何をどういう状態に持っていきたいのか
具体的に書いてみ。
0282271
2001/08/08(水) 22:04ID:???すみません。
xxx.datに他人のいろいろなIPを「1日だけ」保存しておきたいんです。
これは1日に1度しかCGIを利用できないようにするためです。
で翌日、保存しておいたIPを全て除去したいんです。
0283271
2001/08/08(水) 22:09ID:???( $sec , $min , $hour , $day , $mon , $year ) = localtime( time );
open( FILE , "+<xxx.dat" );
while( <FILE> ){ if($_ ne "127.0.0.1\n";){push ( @IP , $_ )}};
#$IP[0]に日付が書いてある。
#$dayと同じ日ならIPを後ろに追加して、
#$dayと違う日ならxxx.datの中身は$IP[0]=$day;だけにしたい。
print FILE @IP;
close FILE;
0284名無しさん@お腹いっぱい。
2001/08/08(水) 22:09ID:???ファイルごと消したいなら、
unlink('xxx.dat');
だし。
>>274はどういうことよ?
0285名無しさん@お腹いっぱい。
2001/08/08(水) 22:09ID:???一日一度(23:59と0:00はOK)か、24時間おきかにもよらない?
細かいことだけど。
0286285
2001/08/08(水) 22:11ID:???一つの手段として、xxx.datを${day}.datにしてしまう手もある。
そして、古いログを自動削除するように書き加える。
0287271
2001/08/08(水) 22:15ID:???そういう手もあるんですか。
open FILE, ">xxxx.dat";
↑これはdatの中身をいったん消去するんですか?
0288名無しさん@お腹いっぱい。
2001/08/08(水) 22:18ID:???一旦消去するよ。
てかそれくらいは試せばわかるだろ。
0289284
2001/08/08(水) 22:22ID:???なるほど。
$IP = 新しいIPアドレス
として、
open( FILE , "+<xxx.dat" );
$oldday = <FILE>
if ($day eq $oldday) {
seek(FILE, 0, 2);
print "$IP\n";
} else {
seek(FILE, 0, 0);
trucate(FILE, 0);
print "$DATE\n";
}
close FILE;
じゃだめ?
0290271
2001/08/08(水) 22:40ID:???おかげで無事難問を突破できました。もうどっちの方法でログを消そうか迷ってます。
truncateがスマートで美しいだけど、${day}.datもファイル生成あたりが上級者っぽいし。
#これでまたKENT氏に1歩近づいた…。
0291三下
2001/08/08(水) 23:32ID:???変数を$_このていどに省略する理由ってのは
見た目だけですかい!?
0292名無しさん@お腹いっぱい。
2001/08/08(水) 23:51ID:???use strict くらいの効果なら,直接コードに書いてしまったら?
strict.pm を見れば一目瞭然だけど一応.
BEGIN { $| = 0x00000002|0x00000200|0x00000400 } # 左からrefs,subs,vars
%INC を見ればそのスクリプトがどのファイルを使っているか分かるから,
これを使って,Nifty 用スクリプト(モジュールを全て展開する)を生成する
トランスレータを作るという手もあるかも.
0293名無しさん@お腹いっぱい。
2001/08/08(水) 23:54ID:???0294名無しさん@お腹いっぱい。
2001/08/09(木) 00:03ID:???$|じゃなくて$^Hな
わざわざ展開トランスレータを書くくらいなら
アプしたほうがいろんな意味でいいと思うがね。
0295名無しさん@お腹いっぱい。
2001/08/09(木) 00:03ID:???その行を削ってアップすりゃいいじゃん。
0296名無しさん@お腹いっぱい。
2001/08/09(木) 02:08ID:1PgCYU2Aサーバー上で動かない理由って何がありますかね?
Winで作っててサーバーはUNIXです。スクリプトはEUCで保存して、改行はLFにしました。
別のファイルをrequireしてますが、それはSJISです。
どうか教えてください。
0297名無しさん@お腹いっぱい。
2001/08/09(木) 02:12ID:???1:user/bin/perlの違い
2:絶対パスと相対パスの違い
3:Perlのバージョンの違い
4:使用できるモジュールの違い
5:パーミッションの違い
続きよろ。>>298
0298名無しさん@お腹いっぱい。
2001/08/09(木) 02:21ID:1PgCYU2Aレスありがとうございます。
言われた点をチェックしてみます。
また後できます。
0299名無しさん@お腹いっぱい。
2001/08/09(木) 02:31ID:???ウチもニフティなんですが、
モジュールを使うときはインストールしなければならないと聞いたことがあります。
インストールには特別な作業が必要なんでしょうか。
それとも、ただアップして requier か何かで呼び出せば良いんでしょうか。
0300名無しさん@お腹いっぱい。
2001/08/09(木) 02:44ID:1PgCYU2A言われた点をチェックしてみました。
1: Perlのパスはあってます。
2: それはrequireするファイルのパスの事でしょうか?もともと相対パスで書いてあり、合っています。
3: Perlのバージョンは5です。特に問題ないはずです。
4: モジュールは使用していません。
5: パーミッションは755です。これで他のスクリプトは動いています。
この状態で考えられるほかの原因の心当たりがありましたら教えてください。
よろしくお願いします。お手数かけます。
0301名無しさん@お腹いっぱい。
2001/08/09(木) 02:45ID:???みたいな事は無いかな?
0302名無しさん@お腹いっぱい。
2001/08/09(木) 02:47ID:???この回答かなり困るやね。
0303名無しさん@お腹いっぱい。
2001/08/09(木) 02:50ID:???どうもバージョン関係がぁゃιぃな
0304名無しさん@お腹いっぱい。
2001/08/09(木) 02:53ID:???私はこれでモジュールの設計変更を余儀なくされた。
0305名無しさん@お腹いっぱい。
2001/08/09(木) 02:57ID:1PgCYU2Aいやね、鯖の解説ページにそれだけしか書いてないんですよ。
僕も見た瞬間「げ!」と思ったんですが…。
ちなみに今まで10個くらいスクリプト書いてこの鯖で動かしましたが他のは大丈夫です。
それらの中では今回のスクリプトはかなり単純な方なのに…。
ちなみにただのフォームメールです。っていうかまだsendmailには送ってなくて、
フォームからの入力内容を画面に表示させてるだけです。
あ、レスくれた方ありがとうございました。
と言っても引き続きお願いします。
バージョン以外でなんかないですかね。
0306304
2001/08/09(木) 03:00ID:???スマソ。
>>305
バージョン見たいなら、
$command = `perl -v`;
print $command;
みたいな感じで見れませんか?
0307名無しさん@お腹いっぱい。
2001/08/09(木) 03:06ID:1PgCYU2Aありがとうございます。やってみます。
0308307
2001/08/09(木) 03:11ID:1PgCYU2Aむむ。なんかその方法だとうまくいかないッス。
ちなみにtelnetはつかえません。
Perlの5と5.6ってどの辺が違うんでしょうか?
正規表現の拡張くらいしか知らないんです。
0309名無しさん@お腹いっぱい。
2001/08/09(木) 03:13ID:bI3E6lI.http://search.cpan.org/doc/CHIPS/perl5.004_05/lib/base.pm
これを見るとPerl 5.004_04 では存在していたっぽいけど?
たとえbase が使えないからって、@ISAに入れればすむような気がするけど、
設計変更を余儀なくされるってどういうモジュール?
0310名無しさん@お腹いっぱい。
2001/08/09(木) 03:19ID:bI3E6lI.$] にperlのバージョン入ってるよ。
5.005と5.6の違いはいっぱいあるのでここ。
http://www.perldoc.com/perl5.6/pod/perldelta.html
0312名無しさん@お腹いっぱい。
2001/08/09(木) 03:26ID:???とはいえXSを使ってるわけじゃないから設計変更するまでのことはないと思うが…。
0313304
2001/08/09(木) 03:44ID:???0314307
2001/08/09(木) 03:53ID:KTDhsApQありがとうございます。バージョン分りました。
5.00503…。あやしい…。
教えていただいたサイト行ってみましたが
今はちょっと時間がないのでこんなに読んでいられないです。
今度じっくり読みます。
とういうわけでできればバージョン5と5.6の違いで注意すべき点などありましたら
教えていただけると助かります。ほんと教えて君ですいません。
0315307
2001/08/09(木) 04:11ID:???いろいろ調べてみて、全部コメントアウトして、
print "ok";
だけにしてもエラーがでたのでちょっ根本的に違うだろ。
と思ってその前で呼んでるrequireを疑ってみました。
で、その呼んでるファイルの中でダブルクォートの内側に
@マークをそのまま書いていたのがいけなかったようです。
\@にしたら動きました!
ホント皆さんありがとうございました。
勉強になりました。
0316名無しさん@お腹いっぱい。
2001/08/09(木) 11:47ID:???, -―- 、
, l[》《]| ヽ
/ i/ i ノノノ ))))〉
. / i i |(リ ( | | | ! / ̄ ̄ ̄ ̄ ̄
〈ヘ|_|l| l ゝ~ lフ/| < 質問に答えてくれるみなさん ありがとう
/ | | |( ヽwliヽ | \_____
/ /! | l ヘ《~ヘii~▲▲
/ /ノノ! ノ|リ〉 \/( ゚ω゚)
/ , ./-‐- 、/V\ハ_ヲUU
!/ ./ / / | ゝ つつ
ヽ_/ ./ ! jj \
/ i
〈 / | |'
ゝ / l | !/
`〜‐-L__」〜'^
0317名無しさん
2001/08/09(木) 12:16ID:???0318名無しさん@お腹いっぱい。
2001/08/09(木) 12:26ID:???gmtimeはグリニッジ天文台(跡地)の時刻を返す
localtimeはそのサーバーで設定されているタイムエリアの時刻を返す
0320名無しさん@お腹いっぱい。
2001/08/09(木) 18:00ID:4s0a7Yec以下の通りにしたいのですが、
↓の部分にxhtmlをはさんで表示させることってできますか?
例えば<link />なんかが入ると、500エラーになってしまいました。
print <<"__HTML_START__";
Content-Type: text/html
【ここ】
__HTML_START__
0321名無しさん@お腹いっぱい。
2001/08/09(木) 18:08ID:???xhtmlだろうがxmlだろうが関係ない。入れられる。
なにか他の原因があるはず。
最低限エラーが出るスクリプトを出してみ。
0322名無しさん@お腹いっぱい。
2001/08/09(木) 18:17ID:???最低限に絞っていくと分かりました!
<head></head>の中の、
<link rev="made" href="mailto:[email protected]" />
これを無くすと、500にならなくなりました。
しかし、これの何が原因なのか・・・
# 他の<link />は大丈夫でした。
0323名無しさん@お腹いっぱい。
2001/08/09(木) 18:19ID:???とかって書いてるんでしょ。
<link rel="made"href="hoge\@hoge.jp" />
にしてみ。
あと、関係ないけど __HTML_START__ よりも __HTML_END__ の方がいいと思う。
0324323
2001/08/09(木) 18:20ID:???@ が悪さしてるから \@ にしてね。
0325名無しさん@お腹いっぱい。
2001/08/09(木) 18:25ID:???@が原因でしたか。直してみます。
ありがとうございました<(_ _)>
0326微笑
2001/08/09(木) 19:08ID:???〃 _`__
,,-=-、、l{,_'´..._ `ヽ、、
〃. ',.´二W´- ‐-`\ \ヽ、___
_{l,'.'´ 、 ヽ ヽ ヽ彡k、ヽ\
.//`/ i l. \ 、ヽ `、 i彡}ヽ`' ´ ▲女優,アイドル、脱がしました▲
. /| / i { |l {\ {ヽ、_!..ヽ」_/} .}./ |__〉、
\l.{. l.ヾ _.ゝ_土. ゝ -'fT;;ヽ,| lテ}| ||__〉
/iヽゝヽ/{~);;:l {:..''ノ'ノノ|{ノ |_!!女優,女子高生のエッチ画像ばかりを厳選収集!スクール水着,女優,画像ばかり。
.|_|l」ヽ. ヽ ゞ‐' 、  ̄`ノレヽソ|
(.ソ.ゝ -- /' {=}ノ ◆アイドル画像秘宝館◆
(=| l へ、 /ノノ((.)). http://www.futomomo.com/netidol/idolhappy/maki/
((!)ヾヽヽ` ;.- ' ´ |'' ''"'´◆アイドラー◆
`~^``/'l ゜>\_ http://www.futomomo.com/netidol/idoler/megu/
, -‐〃"´ |___/ >- 、 ◆セーラー服◆
/ ./〃 |=/ 〃/ \ http://www.futomomo.com/netidol/sailor/miku/
/ | ||, ‐-、_,...!、/_ ,..、 .〃/ ヽ ◆人妻◆
〈 / -ー.{ { {.= ヽ、|| l | http://www.futomomo.com/netidol/waif/mai/
| ヽ /| |\ / i 〉 | ◆スイート倶楽部◆
〈 ∧ l_/./ | | \ _/ / / http://www.futomomo.com/netidol/sweetclub/miyuki/
desghgyj
0327名無しさん@お腹いっぱい。
2001/08/09(木) 19:27ID:???もう終わってる話だけど。
here docは、識別子の引用型によって中の文字列型が決まるよ。
例えば今回だったら、
<<"__HTML_START__"; (ダブルクォート文字列)
<<'__HTML_START__'; (シングルクォート文字列)
<<`__HTML_START__`; (バッククォート文字列)
というわけですな。参考までに。
0328名無しさん@お腹いっぱい。
2001/08/09(木) 20:10ID:MDUdBd8.配列にセットしたいのですが、どうしたらいいでしょうか?
0329名無しさん@お腹いっぱい。
2001/08/09(木) 20:13ID:???0330名無しさん@お腹いっぱい。
2001/08/09(木) 20:42ID:???の最後の /> は何ですか?
<link rel="made"href="hoge\@hoge.jp">
これじゃ駄目なのでしょうか?
0331名無しさん@お腹いっぱい。
2001/08/09(木) 21:03ID:???Web製作版に逝ってよし
0332名無しさん@お腹いっぱい。
2001/08/09(木) 21:25ID:???XHTML では全てのタグに終了タグが存在し、且つ終了タグの省略が禁止。
んで、省略は出来ないけどその代わりに省略形が存在し、
<link rel (中略)></link>
の省略形が
<link rel (中略) />
というわけ。
大方こんな感じ。
0333名無し募集中。。。
2001/08/09(木) 22:53ID:.n9qBKK2似たようなのが無いからこれ使ってるんですが
これだとカテゴリー内で新しく登録したサイトが上からソートされるんだけど
これを下からソートさせたいんだけどどうすればいいですか?
あと登録したurlにhttp://が含まれない場合はエラー出すようにしたいんですけ
ど
unlessとif(!をどう使えばいいでしょうか?ご教授お願いします(;´Д`)
0334un
2001/08/09(木) 23:18ID:???0335名無しさん@お腹いっぱい。
2001/08/09(木) 23:32ID:qC8qL/U.これはどういう意味なのでしょうか?
「1; Perl」のキーワードで検索してみましたが、出てきませんでした。
0336名無しさん@お腹いっぱい。
2001/08/09(木) 23:37ID:???ざっと見てみたけど、まず並びに関しては、273,275,277行目の"push"を
"unshift"にするか、277行目と278行目の間に
@new = reverse @new;
を加えるかすればいいと思う。
それからエラーは、234行目のifのカッコの中を、たとえば
$in{'url'} !~ m{http://[a-zA-Z0-9\-/.~?%#=&:;+@]+}
とかに変えればいいんじゃないかな。
0337名無しさん@お腹いっぱい。
2001/08/09(木) 23:40ID:???ブール値の1を返す。
0339336
2001/08/09(木) 23:43ID:???$in{'url'} !~ m{^http://[a-zA-Z0-9\-/.~?%#=&:;+@]+$}
0340336
2001/08/09(木) 23:51ID:???並びの方は忘れてくれ。
0341333
2001/08/10(金) 00:02ID:???ありがとうございました。
しかし、並びの方ができませんでした。苦笑
登録した順に上から必ず
3124
41235
512346
このように表示されます。
目が冴えてるときにでも、またお願いします(ノД`、)
0342名無しさん@お腹いっぱい。
2001/08/10(金) 00:07ID:???>>337でわかったのか!?
1を聞いて10を知るとは…スゲェ奴だな。
0344名無し
2001/08/10(金) 01:00ID:???&reload if(!$comment)じゃだめですよね?
0345名無しさん@お腹いっぱい。
2001/08/10(金) 01:09ID:???if ($comment eq "") { &reload; }
0346名無しさん@お腹いっぱい。
2001/08/10(金) 01:09ID:???if ($comment eq "") { &reload; }
0347名無しさん@お腹いっぱい。
2001/08/10(金) 01:12ID:???0348名無しさん@お腹いっぱい。
2001/08/10(金) 01:12ID:???0349344
2001/08/10(金) 01:22ID:???>>347
両方ともだめでした。
htmlファイルを作るタイプだからだめなのかな
public_html/cgi-bin/bbs.cgi
に投稿して、普段は
pubglic_html/index.html
をアクセスするタイプです
0350名無しさん@お腹いっぱい。
2001/08/10(金) 02:17ID:uDrjeUNELocation
0351ナナ萌え(゚д゚)ウマー
2001/08/10(金) 03:18ID:???print "Location: $path\n\n";
}
0352名無しさん@お腹いっぱい。
2001/08/10(金) 13:54ID:???0353名無しさん@お腹いっぱい。
2001/08/10(金) 14:01ID:???0354名無しさん@お腹いっぱい。
2001/08/10(金) 14:49ID:ed6w6DP2のように出力先をtest.txtに設定した状態で、
例外的にプロンプトの方に出力させるには
どのように書けばよいのでしょうか。
0355名無しさん@お腹いっぱい。
2001/08/10(金) 15:03ID:???どういう役割のコマンドなんですか?
0357名無しさん@お腹いっぱい。
2001/08/10(金) 15:09ID:???逝って来ます。
0358名無しさん@お腹いっぱい。
2001/08/10(金) 15:39ID:???print "1";
print STDERR "2";
0359名無しさん@お腹いっぱい。
2001/08/10(金) 17:37ID:ed6w6DP2$a="abc";
$b="abcdef";
if($b=~ /$a/)
{
イメージとしてはこんな感じです。
0360名無しさん@お腹いっぱい。
2001/08/10(金) 17:38ID:ed6w6DP20361名無しさん@お腹いっぱい。
2001/08/10(金) 17:54ID:???これか、、
http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069&st=518&to=526&nofirst=true
0362名無しさん@お腹いっぱい。
2001/08/10(金) 18:48ID:???ls -lRなら知ってる、"ls"はディレクトリを表示するUNIX系OSのコマンド
DOSの"DIR"みたいな奴だ。
"-lR" はオプションで、まぁその根こそぎ表示すると思ってくれればいい。
systemが投げるコマンドが解らない時はこんな所を探して調べればいい
http://www.linux.or.jp/JM/
0363名無しさん@お腹いっぱい。
2001/08/10(金) 20:00ID:???処理速度が速くなったりするのですか?
0364名無しさん@お腹いっぱい。
2001/08/10(金) 20:01ID:???相手にされたければ黙って使っておけ。
0365.
2001/08/10(金) 20:10ID:qy20tGgA君の能力ではその程度に認識なのかも知れないが、世の中には自分以上の
人間や物事を深く掘り下げて認知しようとする人間
が沢山居ると言う事を忘れてはいけない
0366名無しさん@お腹いっぱい。
2001/08/10(金) 20:14ID:???今度はこっちに来たの? やれやれ……。
0367名無しさん@お腹いっぱい。
2001/08/10(金) 20:24ID:???勘弁してよ。
君のためのスレはちゃんとあるんだから。
もうこっち来ないでね。
0368トリップの解析したい人
2001/08/10(金) 22:58ID:???それとも他にPerl板っていう板があるんですか?
0369名無しさん@お腹いっぱい。
2001/08/10(金) 23:01ID:???http://corn.2ch.net/test/read.cgi?bbs=entrance&key=997381086&st=119&to=119
0370368
2001/08/10(金) 23:11ID:???すいません、そのプログラム?の意味がわかりません。
質問させてもらいます。今、トリップスレに書いてあった
#!/usr/local/bin/perl
$counter = 'aaaaa'; # マジックインクリメント用
$seed = 'Q!<'; # ランダムな文字列
$str = 'nofx'; # 探す文字列の正規表現
while(1){
$_ = substr(crypt("$counter$seed", 86), -8);
print "$counter$seed - $_\n" if /$str/oi;
last if ++$counter eq 'aaaaaa';
}
っていうのでやってみて実際動作したんですが、
これの結果を自動でテキストで保存できるようには
できませんか?
トリップスレの方は解析で忙しそうなので…
0371名無しさん@お腹いっぱい。
2001/08/10(金) 23:21ID:???そんなのPerlの質問ですらないぞ
0372ループ鯖完 T_T
2001/08/10(金) 23:48ID:???実験するのはやめておくれよぅ・・・・・
0373 ◆0nyWWW/2
2001/08/11(土) 00:06ID:???0374名無しさん@お腹いっぱい。
2001/08/11(土) 00:19ID:???家の弟です。 迷惑かけて申し訳無い
んにゃろ、、ぶっ頃してやる
0375pp
2001/08/11(土) 00:22ID:???↑
すいませんが、このスレの40ってどういう事?
取り敢えず可能なんですね?
0376名無しさん@お腹いっぱい。
2001/08/11(土) 00:29ID:???>>375
実際出来てる所見ると可能なんでしょう、もう対策されたみたいですけども
PG板で おしえて!!! とかスレ立てちゃだめだよ。
0377333
2001/08/11(土) 02:01ID:V2ESYaRc0378名無しさん@お腹いっぱい。
2001/08/11(土) 02:13ID:???うーん、スクリプト見るのが面倒だ。
Perlの話というより、CGIの改造でないかと、コレ。
というか、336で決着ついてないのかな?
# ネタだったりして(w
0379名無しさん@お腹いっぱい。
2001/08/11(土) 02:15ID:???一気に置換するのに一番効率のよい方法あるでしょうか?
ログファイルのコンバートに使いたいのですが・・・
よろしくです。。。
0380333
2001/08/11(土) 02:23ID:V2ESYaRc>>336の通りにすると>>341のような現象が起こるので解決してません。
自分でも@new=sort(@new);とか考えられる限りの事は尽くしてみたんですができませんでした。
0381名無しさん@お腹いっぱい。
2001/08/11(土) 04:46ID:???こんなんでやっていけるのだろうか
0382名無しさん@お腹いっぱい。
2001/08/11(土) 04:47ID:???0383名無しさん@お腹いっぱい。
2001/08/11(土) 05:00ID:???やってれば自然と出来るようになるよ。
0384名無しさん@お腹いっぱい。
2001/08/11(土) 06:29ID:j13TLi42perl -pi.bak -e 's/foo/bar/g' *.logとか?
.logの拡張子のファイル中のfooをbarに変換し、
元のファイルはhogehoge.log.bakみたいに保存される
サブディレクトリ以下も対象ならuse File::Find等使えばok!
でも一番効率の良い方法ってどういう意味?こんなの、
効率も糞もないと思うのだけど…
0385名無しさん@お腹いっぱい。
2001/08/11(土) 11:58ID:X8Jv3YYU環境によっては動かない(特にWindows系は*の処理がイマイチ)
>379
環境も書いとけ。systemコマンドでシェル使ったほうが早い場合も
あるからな。
0386名無しさん@お腹いっぱい。
2001/08/11(土) 20:50ID:???0387386
2001/08/11(土) 20:53ID:???事故解決しました。
0388379 ◆PL.a6eWs
2001/08/11(土) 23:47ID:???>>385さん、どうもありがとうです。
>でも一番効率の良い方法ってどういう意味?
ええと、効率がよいじゃなくてperlのみでできて環境に依存しない
方法でした・・・スマソ
サーバー上に変換スクリプトをおいて(シェルはつかえないので)したいなと
思ってますです。
ローカルのWinの環境でも出来ればそれでいいんですが。。。
0389kkkkkkkk
2001/08/12(日) 02:40ID:???動かないんです。
#!/usr/bin/perl
print "Content-type: text/html\n\nOK.\n"; exit(1);
なにが悪いんでしょう。
cgi本体:http://www41.tok2.com/home/harebare/cgi-bin/test.cgi
ファイル名に.txtをつけたもの。
http://www41.tok2.com/home/harebare/test.cgi.txt
こんな簡単なことではまるなんて。
cgi-binのパーミッションは701
test.cgiは700。
だれか助けて〜
0390 ◆0nyWWW/2
2001/08/12(日) 02:42ID:???・改行コード
・全角文字が混じっていないか
0391kkkkkkkk
2001/08/12(日) 02:50ID:???利用するにおいての注意事項はありますか?
・倉庫としてのご利用(音楽・画像等のデータを置いておくだけ)は出来ません。
・「index.html」もしくは「index.htm」の設置は絶対に必要です。
・「index.html」もしくは「index.htm」に<TITLE>タグでタイトルを記入しておいて下さい。
記入されていない場合、アクセスランキングに参加出来ません。
・CGIのみの使用は禁止しております。
↑こいつのせいでした。
0392名無しさん@お腹いっぱい。
2001/08/12(日) 06:45ID:???まずは自分で作ってみたの?そんなの数行で出来るぞ。
初心者だからといってなんでも人に頼ってはPerlの上達も
見込めないよ。
「こう作ったんですけど動かない」ならともかく、何も
ものがなくて、教えてと言われてもね。特にPerlは、
やり方は何通りもあるんだから。
0393名無しさん@お腹いっぱい。
2001/08/12(日) 20:32ID:???テキストファイルを読み込んで、'ポニーテール'のはいった行を抽出しようとしました。
push(@out, $_) if($_ =~ m/ポニーテール/);
とすると、最初の「ー」がまずいというエラーが出たので、
push(@out, $_) if($_ =~ m/ポニ/);
とすると、ほとんどの行が当てはまってしまいました。
後半のまずいのはたぶん、windows98 + ActivePerlで「ポ」の文字コードの後半が
0x7cで|ですから、part1の「鉄鋼」が化けるのとおなじじゃないかなと思いましたけど
読んでも対策ができませんでした。よろしくお願いします。
0394名無しさん@お腹いっぱい。
2001/08/12(日) 21:36ID:???push(@out, $_) if($_ =~ m/\Qポニーテール\E/);
0395名無しさん@お腹いっぱい。
2001/08/12(日) 21:54ID:???ありがとうございます。できました。
\Qは、\Eがでるまでのメタキャラクタを打ち消すんですね。勉強になりました。
0396395
2001/08/12(日) 21:59ID:???0397名無しさん@お腹いっぱい。
2001/08/13(月) 00:38ID:???>尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
>案外答えはもう書かれているかもしれない。
1にこう書いてある。 どうして過去ログ読まないんだろう。
せめて初心者スレッドの過去ログくらいは…。
本当に役に立つ事が書いてあるよ。もちろん改行コードとか\Qとかも。
0398名無しさん@お腹いっぱい。
2001/08/13(月) 04:54ID:a9/FXvbYACCEPT確認してエンコートヘッダにg-zip指定するだけじゃだめなんでしょ?
0399名無しさん@お腹いっぱい。
2001/08/13(月) 15:45ID:JzeNXb.k教えて〜ん。
0400名無しさん@お腹いっぱい。
2001/08/13(月) 16:15ID:???普通に取得できますが何か?
0401名無しさん@お腹いっぱい。
2001/08/13(月) 16:35ID:???改行コードを \n にしても \r にしても、同じ結果になるんだけど、(0D 0A だったかな)
回避方法あります? わざわざ、サーバにアップロードするのは面倒なんで…
0402名無しさん@お腹いっぱい。
2001/08/13(月) 16:55ID:???0403399
2001/08/13(月) 17:16ID:JzeNXb.k失礼。説明が足りませんでした。
SOSヘッダ付けたperlスクリプトにD&Dでファイル渡すとショートファイルネームで引数に渡されるのです。
で、渡されたファイル名を出力したいんですが、その時にロングファイルネームで出力したいんです。
なのでショートファイルネームをロングファイルネームに変換する方法教えて〜ん。
0404◆/InUhgpU
2001/08/13(月) 18:52ID:???0407名無しさん@お腹いっぱい。
2001/08/13(月) 22:41ID:7FPat022my($str) = q{1 2 3 4 5 6};
if ($str =~ m/^(?:[^\t]*\t){4}5/) {
print 'OK';
} else {
print 'NG';
}
print "\n";
下記のコードですが、
perl5.005はOK
perl5.6はNG
になります。
※タブは全角スペースに変換してます。
分かる方いますか?
ちなみに、
m/^(?:[^\t]*\t){3}[^\t]*\t5/
はとおります。。謎
0408◆/InUhgpU
2001/08/13(月) 23:09ID:???qq{1\t2\t3\t4\t5\t6};
なら"OK"になるが。
当方ActivePerl5.6.1…
ってアレ?5.6.0だとNGだな…何故だろう。
0409UUDH
2001/08/13(月) 23:42ID:???foreach (@test2){
@temp = split (/<>/ ,$_);
if ($temp[0] eq yokoi){
next;
}else{
push (@out,"$temp[0]<>$temp[1]<>$temp[2]<>\n");
}
}
print "@out\n";
とすると、何故か2行目の頭から空白が入ってしまいます。
もう正規表現とかで何でもかんでも取り払っても入ってしまいます。
3日たって何が何かわからなくなってきました。、、、、
0410名無しさん@お腹いっぱい。
2001/08/13(月) 23:55ID:???俺も良くわからないけど改行コードの問題な気がする・・・。
0411◆2O1OO1O2
2001/08/13(月) 23:56ID:9/vbk82Q> print "@out\n";
配列をダブルクオートの中に入れると、要素の間にスペースが入る。
print @out;
でいいんじゃない?
0412名無しさん@お腹いっぱい。
2001/08/13(月) 23:57ID:???#最終行
print @out, "\n";
#or
local $" = "";
print "@out\n";
#yokoiはクォートしろ
0413名無しさん@お腹いっぱい。
2001/08/14(火) 02:51ID:???このスレではわからん
0414UUDH
2001/08/14(火) 04:30ID:???>>410
僕もそう思いましてあちこちで\wと\d以外は全部捨てたりしてみたんですが
解決できなくて、、まさか一番最後だったとわ
>>411
今まで " は有っても無くてもほぼ良し、位に思い込んでました。
ダメだなぁ、、今KENTさんのチャット見るとやっぱり裸のまま
printしていました。
まだコンテキストが良く理解出来てない様で度々こう言うトラブル
に見舞われています
>>412
これはどちらも絶対解らなかったです。
. じゃ無くて , なんですね。 初心者本には載ってないなぁ
方法2の方は局所的に " を意味の無いものにすると言う感じでしょうか
localも使うこと有るんですね、ふかいッス
>#yokoiはクォートしろ
YES SIR!!!、ゴチャゴチャしていて段々無茶苦茶になっていました
一人だと絶対自己解決出来なかったです。 大感謝です!!>>みなさん
きっと良書を沢山読んでいるから、こう言う事で躓かないんですよね
まだ結城さんの本と、WEBだけで粘ってるのですが、ちょっと限界かなぁ。。
書籍スレを読み直してみます。
プログラミングPerlとか買っちゃっても大丈夫かな、、 (^^;)
もう一回PART1から読み直してみよう、有難うッス>>みなみなさま
0415UUDH
2001/08/14(火) 05:00ID:???$scalar1 = @test;
$scalar2 = "@test";
print '配列が裸で評価されると・・・'."\n";
print "$scalar1\n".'↑要素数が返る'."\n\n";
print ' " で括って評価されると・・・'."\n";
print "$scalar2\n".'↑要素を空白で区切ったものが返る'."\n";
うれしかたので、カキカキ、、、
配列の中? がカンマデリミタになってると思い込んでたのが気付かなかた
原因でした それ位カンマが出力されない時点で気付けよ=>漏れ (;´Д`)
0416名無しさん@お腹いっぱい。
2001/08/14(火) 05:23ID:???> 方法2の方は局所的に " を意味の無いものにすると言う感じでしょうか
これって、local $" = ""; のほうって事?
これは配列をダブルクォートの中に入れたときに要素間に入る文字列を定義してる。
デフォルトはスペースになってる。ためしに$" = ":" とかやってみると良いよ。
こういう特殊変数はラクダ本に全部載ってるし、やっぱラクダ本買うべし。
0417名無しさん@お腹いっぱい。
2001/08/14(火) 08:23ID:GO0JN5uYクエリーストリングで扱う方法ってないですか?
/もクエリーストリングとして扱いたいのです
0418417
2001/08/14(火) 11:24ID:GO0JN5uYできた。っていうか勘違い
0419名無しさん@お腹いっぱい。
2001/08/14(火) 14:51ID:???いや別に間違っちゃいないけどね…。
0420KENT-WEB
2001/08/14(火) 16:03ID:???/ イヤー笑った笑った
KENT-WEBのギャグは素晴らしい
簡単なスクリプトを複雑に記述し
一見難しいスクリプトに見せかけている\
/ ⌒ ⌒ |
| (・)(・) |
| 三 ○ 三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ___ | < hello world!からやりなおせ。
|\ \_/ / | サイトのパーミッション777にしろ。
\ \___// \_________
\_/ \/
|==|
\Ω/
死ね・くたばれ・消えろ・失せろ・潰れろ・馬鹿・あほ・間抜け。ドジ・ 無能。
0421名無しさん@お腹いっぱい。
2001/08/14(火) 16:07ID:???0422名無しさん@お腹いっぱい。
2001/08/14(火) 17:38ID:xRewybvcで訊くよりもここにこいと言われました。
f2sでGDモジュールを使いたいのですが、
モジュールってインストールする必要があるんですよね?
>telnet.cgi かなんかを使って自分のスペース上でインストールする。
>次に、GD モジュールについて同じことをする。
と教えられたのですが、telnet.cgiはどこで配布されているのですか?
0423名無しさん@お腹いっぱい。
2001/08/14(火) 17:52ID:???これか?
0424名無しさん@お腹いっぱい。
2001/08/14(火) 18:09ID:xRewybvcありがとうございます。
使い方が分かりません。書いてある通り
アップロードしてタイトルの「$ownhost」というようなのを
CGIファイルの「$Host」に設定し再アップロードしましたが、
そこからがわかりません。手順を簡単にで結構ですので、
説明していただけませんか。
0425名無しさん@お腹いっぱい。
2001/08/14(火) 19:46ID:???入ったりする、F2sは使ったこと無いからわからんから
論理行の13行目を
$Host = $ENV{'REMOTE_HOST'}; にしちゃえ
後は上の方の設定をちゃんとして、作業が終わったら
*****速攻で*****削除する事だ
ccが使えないとか言うなよ
0426UUDH
2001/08/14(火) 20:38ID:???はぅっ、まだ間違えてる、、、思いっきり特殊変数じゃん、、、
いつも @aray = ('1','2'); とかしてるんで 勝手にデフォルトのバウンダリは
コンマだと思い込んでたのがいけなかったみたいです。
>やっぱラクダ本買うべし。
了解!! まだ持って無いけど他の皆さんにも推奨 (わ
サンキューです。
0427名無しさん@お腹いっぱい。
2001/08/14(火) 20:39ID:???画像URLを読み込んで画像を表示させてるのです。
決まった縦横サイズの画像だけを表示させたいのですが、
何か画像情報を取得する方法はありますでしょうか?
0428名無しさん@お腹いっぱい。
2001/08/14(火) 22:20ID:???画像のフォーマット調べれば取得できるけど。
まあ、面倒ならこれ使うとか。
http://www-power.net/cgi/other/library/stdio/reference/
の getImageSize()
0429名無しさん@お腹いっぱい。
2001/08/14(火) 22:25ID:???0430名無しさん@お腹いっぱい。
2001/08/15(水) 00:56ID:???特殊変数なら perlvar に全て書いてあるし、
邦訳青ラクダ本って内容が5.003の頃のだから古い。
ラクダ本に書かれている事は同じ内容でドキュメントにも書かれてる。
そのドキュメントの邦訳も存在する。
これでも推奨?
0431名無しさん@お腹いっぱい。
2001/08/15(水) 01:14ID:???> そのドキュメントの邦訳も存在する。
どこの事ですか?
0432名無しさん@お腹いっぱい。
2001/08/15(水) 01:30ID:avupzYrQhttp://www.att.or.jp/perl/man/
こことかじゃない?
でも、自分で、探してよ・・・。
0433名無しさん@お腹いっぱい。
2001/08/15(水) 01:58ID:???でも紙とWebページじゃ読みやすさが全然違うので初心者には奨励する。
0434427
2001/08/15(水) 02:31ID:???ありがとうございました。
getImageSize() を試してるのですが、pngの情報だけ読めず・・・.
どうしてなのか? うう。
0435名無しさん@お腹いっぱい。
2001/08/15(水) 02:53ID:???御免なさい。一応確認したかったもので。
0436名無しさん@お腹いっぱい。
2001/08/16(木) 11:13ID:Z9iCsVz2open関数で取得できるファイルリストの件数に上限はあるのでしょうか?
ファイル数が4000ちょっとまでなら取得できるのですが、それ以上存在する場合、
ファイルハンドルには空が返ってくる模様…
もし上限があるとするならば、どのように対処するのが吉でしょか?
よろしくお願いいたします。
0437名無しさん@お腹いっぱい。
2001/08/16(木) 11:15ID:Dm7Pm6YQ無名配列ってなんなのかいまいち掴めません。。
それにどんな事に使ったら有効か教えてください。。
お願いします。
0438名無しさん@お腹いっぱい。
2001/08/16(木) 13:08ID:Z1NIPYXEとすれば、スカラー変数に無名配列のリファレンスが保存でけるでそ?
でさ、普通配列ってさ、(("a", "b", "c"), ("d", "e", "f"))みたく単純には階層化できません。
厳密に言うとスカラー値しか入れられないからね。
さっきの $abc_ref を使えばそれが出来るようになるってわけさ。
無名配列や無名ハッシュを使えば多重構造の変数が出来上がります。
0439名無しさん@お腹いっぱい
2001/08/16(木) 15:43ID:.lon33X.0440名無しさん@お腹いっぱい。
2001/08/16(木) 15:58ID:???「日付 曜日 公式」とかで検索したらわらわら出てくるぞ。聞く前に自分で調べようね。
0442名無しさん@お腹いっぱい。
2001/08/16(木) 22:54ID:???┃ ただいま、ラウンジで大盛り上がりのブラウザ戦争ゲーム! . ┃
ビビー ______________
[>>8888888 ‖|*ENDLESS BATTLE@2ch*|‖ . \冂/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ . E´∀` ヨi /7
逝って良し!を発動。 . ミ从、;、;从 彡 ボシュッ .()) 「/~'ー'~~ 7/ ̄ |
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ http://wwwwwwwww ===二]匚ト〈‐〈iテ〈〈c iエコ
∧ ∧ [》∞∝ 彡゙ ゙/;´ミ ∧∧∧∧ []v/□ || ╋|
冂(,,゚Д゚) ウマー ボンッ | |(*゚Д゚)| <覚醒中!> | j | |.|| ┃|
| ̄\つ∧二ヽ ∩ >->_>->_<要塞に > 几0(几)L二!
\_匚i_|∪∪i] ((_(∴ヽヽ\(∴|当たる!> ∠三ヲ/i二iヽ
\_/二/ 〜〜 /oヽヽ ,>─>ヽ ∨∨∨∨ __∧___
[》∞∝ く。◎◎)=)__/)=) ψ ζ させるかあ!
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
恨み!復讐!英雄の誕生!生身の人間とのどろどろした戦闘! ...
┃http://corn.2ch.net/test/read.cgi?bbs=entrance&key=997943180 .┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
0443名無しさん@お腹いっぱい。
2001/08/16(木) 23:01ID:/rmEQXZ6print 'age'; print 'sage';
とやって
$buffer eq 'agesage';
にすることはできますか? できるならやりかた教えてください。
やりたいことは、printとか短い文での変数への書き込みです。
>>436 当方初心者ですが、システム依存のような気がします。
何やろうとしてそんなにファイル開くんですか?
0444名無しさん@お腹いっぱい。
2001/08/17(金) 00:53ID:???全然意味ワカンナイですけど。
print $buffer .= "age";
とか云うことじゃないよね?
0445名無しさん@お腹いっぱい。
2001/08/17(金) 01:06ID:???$foo = new IO::Scalar;
$foo->print("bar");
$foo->print("baz");
print $foo;# output "barbaz"
という書き方が出来る。
0446名無しさん@お腹いっぱい。
2001/08/17(金) 01:14ID:???#!/usr/bin/perl
package ScalarHandle;
use base 'Tie::Handle';
sub TIEHANDLE {
my $self = bless {}, shift;
$self->{_ref} = shift;
$self;
}
sub WRITE {
my ($self, $scalar, $len, $ofs) = @_;
my $_ref = $self->{_ref};
$$_ref = join '', $$_ref, $scalar;
$len;
}
package main;
my $buffer = '';
{
tie local(*H), ScalarHandle => \$buffer;
use SelectSaver;
my $saved_h = SelectSaver->new(\*H);
print 'hoge', 'foo';
}
print $buffer;
__END__
0447名無しさん@お腹いっぱい。
2001/08/17(金) 01:51ID:???tie *Handle, 'IO::Scalar';
という使い方が可能だ。
0448443
2001/08/17(金) 03:13ID:???>>445 あ、けっこうズバリなモジュールがあったんですね。
>>446
むつかしくて読むのにだいぶ時間かかりましたが、なんとなくわかりました。
ファイルハンドルを上書き実装して、バッファの後ろに足していってるんですね。
>>447 こういうふうに使うと、多分4行くらいでできますね。
>>436
モジュール調べてたらこんなの見つけた。
>FileCache:システムの制限よりも多くのファイルをオープンします
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmodlib.html#Standard_Modules
0449名無しさん@お腹いっぱい。
2001/08/17(金) 05:29ID:???use CGI qw/:standard/;;
これを書いてやって、同じディレクトリにCGI.plを入れてみたんですが・・。
ちなみにWin98のHttpdです。
0450名無しさん@お腹いっぱい。
2001/08/17(金) 13:59ID:???あと、.plだからrequireじゃないかなぁと思われ(w
0451名無しさん@お腹いっぱい。
2001/08/17(金) 18:13ID:f5KMH1QY自社IISサーバーで動いたCGIをクライアントのIISサーバーに移したら
書き込み処理だけができなくなってしまいました。
サーバーはエラーメッセージをださないので、サーバー側の設定で書き込み制限が
かかっているということは考えにくい状況です。
原因はどのようなものが考えられるでしょうか?
クライアントのサーバーを直接いじらせてもらえなくて、原因を特定しないと
解決できない状況で困っちゃってます。
よろしくお願いします。
0452名無しさん@お腹いっぱい。
2001/08/17(金) 18:43ID:Oy6kpATQでローカル側からテキストファイルをサーバへアップロードさせるようなスクリプトは
どうしたら宜しいのでしょうか…?
0453名無しさん@お腹いっぱい。
2001/08/17(金) 18:48ID:???0454名無しさん@お腹いっぱい。
2001/08/17(金) 18:50ID:???>>451
よく解らないけど Kcatchとかで解らないの?
0455名無しさん@お腹いっぱい。
2001/08/17(金) 18:52ID:???逝ってくる
0456名無しさん@お腹いっぱい。
2001/08/17(金) 19:25ID:f5KMH1QYすみません。
他の適切なスレはどれでしょうか?
>>454
文法にはとくに問題ないようです。
0457名無しさん@お腹いっぱい。
2001/08/17(金) 19:28ID:k3HSgI6s>>452
まあこんな感じで送れるはず
<FORM ACTION="CGIPATH" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="upfile" SIZE="80">
</FORM>
0458名無しさん@お腹いっぱい。
2001/08/17(金) 20:42ID:HfJszqSoCGIの動かし方がわかりません。
Apacheを使うのですか?
0460458
2001/08/17(金) 20:53ID:HfJszqSoもったいぶらないで教えてください
0461名無しさん@お腹いっぱい。
2001/08/17(金) 21:04ID:???確かにYes/Noを答えるのは簡単だね。
あと、Perl != CGI なのでスレ違い。
0462名無しさん@お腹いっぱい。
2001/08/17(金) 21:23ID:oQcz5Ykw0463名無しさん@お腹いっぱい。
2001/08/17(金) 21:50ID:???簡単なことなら質問しない。
あっごめんネタか(藁
0464452
2001/08/17(金) 21:56ID:Oy6kpATQスレ違いすいません。
0465JAPU
2001/08/17(金) 22:14ID:???yes/no で答えるのは簡単だけど、どうせ次は「Apache の設定が分かりません。」とかいう質問が来るだろうからね。だから、入門書を1冊買って、ある程度 (完全にとは言わない) 理解してくださいってこと。
0466名無しさん@お腹いっぱい。
2001/08/17(金) 23:40ID:HfJszqSoここはスクリプトでプログラマ気取りのが多いですから(^^;
0468名無しさん@お腹いっぱい。
2001/08/18(土) 00:00ID:???1.回線を切ります。
2.ロープを用意します。
3.ロープの片端で30cm程度の輪っかをつくります。
4.ロープの逆端を適当な高さにつるします。
5.輪っかに首を引っ掛けてください。
0469名無しさん@お腹いっぱい。
2001/08/18(土) 00:11ID:???漏れもそれが一番手っ取り早いと思う。
精進しろよ>>468
0471名無しさん@お腹いっぱい。
2001/08/18(土) 00:23ID:???Perl=CGIと思ってる厨房は逝ってよし!
「CGIだけど、なんか質問ある?」ならきちんと答えたよ。
0472名無しさん@お腹いっぱい。
2001/08/18(土) 01:44ID:???文法や仕組みが少し違うくらいで。
言語に差があるとか思ってるヤツの方が痛い、と思うぜ (´ー`)y−~
0473名無しさん@お腹いっぱい。
2001/08/18(土) 01:53ID:FWE7cxsw作成中、無限ループしちゃった場合、どうやって止めるんですか?
タスクマネージャーで、perlのプロセスを終了させようとしますが、
「権限がない」とかなんとかで、終了が出来ません。
結局再起動するはめになってしまいます。
何か、強制終了させる方法はないんでしょうか?
0474名無しさん@お腹いっぱい。
2001/08/18(土) 05:52ID:???と思っているならプログラム板のC++のところにいってPerlもしくはCGIの
質問して下さい。ここには二度と来なくていいよ。
C++のスレにWindowsの環境のことなんか聞かないよね?それと同じ事。
専用のスレがきちんとあるのに、それが解からないのが厨房だって言ってるの。
0475名無しさん@お腹いっぱい。
2001/08/18(土) 06:17ID:???いや>>472はどーみても>>466の煽り(?)に反応してるだけだと思うが…
つか前半と後半の文が繋がってないぞ。
0476なんと言うか
2001/08/18(土) 06:33ID:???0477質問スレで
2001/08/18(土) 08:06ID:???0478名無しさん@お腹いっぱい。
2001/08/18(土) 15:18ID:???#!/usr/local/bin/perl
$hoge = 0;
&hogege;
sub hogege{
print "hoge";
exit;
}
って感じの時、ちゃんと
my hoge = 0;
って風にするかどうか。
0479名無しさん@お腹いっぱい。
2001/08/18(土) 15:19ID:???0480名無しさん@お腹いっぱい。
2001/08/18(土) 16:02ID:DQB0LabM初期値は 0 か 空文字列だから、>>478 のような宣言はしないよ。
変更する必要があったら適宜初期化すればいいことだと思う。
0481別の初心者
2001/08/18(土) 16:12ID:???どういった局面でしょうか。
まだそんな事気にする事ないのかな。。
0482
2001/08/18(土) 16:51ID:58tnIP9Q0483JAPU
2001/08/18(土) 16:53ID:???使い捨て以外は use strict; なのできちんと宣言する。
0484名無しさん@お腹いっぱい。
2001/08/18(土) 18:38ID:???#!/usr/local/bin/perl
$hoge = 0;
&hogeho;
&hogege;
sub hogege{
print "$hoge";
exit;
}
sub hogeho{
$hoge++;
}
って時はそのまま。
でもラクダ本ではきちんと全部宣言してたような気がする。
0485名無しさん@お腹いっぱい。
2001/08/18(土) 18:39ID:???れきしかるマンセー
0486
2001/08/18(土) 18:55ID:58tnIP9Qour $hoge = 0;
か
our $iHoge;
文字列のときは
our $hoge = "";
か
our $sHoge;
にしてる。
0487名無しさん@お腹いっぱい。
2001/08/18(土) 19:01ID:???上の方に設定項目がずらーっと並んでるじゃない。
$script = "./script.cgi"; #このスクリプトのパス
$backcolor = "#ffffff"; #背景色
$textcolor = "#000000"; #文字色
って感じで。
そういうスクリプトを組む時はどうする?
0488奈々資産
2001/08/18(土) 19:13ID:58tnIP9Q-----
P_SCRIPT=./script.cgi
C_BACK=#ffffff
C_TEXT=#000000
-----
のようなKey=Value形式のWindowsのINI形式に似たような設定ファイル
の処理するクラスを作っておいて
my $obj_conf = new CIni(FILE => $file_conf);
my %USR_CONF = $obj_conf->ReadAll();
みたいにしてる。
0489486
2001/08/18(土) 19:15ID:???0490名無しさん@お腹いっぱい。
2001/08/18(土) 19:17ID:???0491名無しさん@お腹いっぱい。
2001/08/18(土) 19:17ID:???でももっと適当かな。
my %conf = ReadCofigureFile($filename);
だね。
$conf{BGCOLOR} とかでアクセス。
0492名無しさん@お腹いっぱい。
2001/08/18(土) 20:37ID:???%CONFIG = (
foo => "bar",
);
#EOF
としてrequireするな。
%CONFIGはvarsなりourなりで宣言しておく。
とりあえず何か理由が無い限り必ず宣言するよ。
0493別の初心者
2001/08/19(日) 00:27ID:???サブルーチンとかクラスを使いこなせる様に
なればその辺の悩みとは無縁になるのかな。
悪い癖が付くと後で大変かなとおもったんで
でもstrict とか -wcすると五月蝿いからなぁ サササッ(((((^ ^ )
0494名無しさん
2001/08/19(日) 12:38ID:FfPXw2rYフリーのCGIをアップして利用しようとしていたところ、どうしてもサーバーエラー
になります。
telnetで実行すると、正常に返ってくるのですが…。
今までこのような現象に遭遇したことがなかったので、どうしたらいいか困ってます。
よろしくお願いします。
0495名無しさん@お腹いっぱい。
2001/08/19(日) 13:00ID:???CGIスクリプトの名前くらい書いたらどうだ。
とりあえずKCatch.pmでも使っとけ
0496名無しさん@お腹いっぱい。
2001/08/19(日) 13:48ID:qKl.cEXQ(例20010101)これの翌日とか前日を簡単に
求める方法ってないですか?
いろいろやってみたんですが、なかなか
すっきりしたスクリプトにならなくて悩んでます。
0497名無しさん@お腹いっぱい。
2001/08/19(日) 14:08ID:Mz6GQnDYuse Date::Calc qw(Add_Delta_Days);
$date = 20010101;
$delta = -1; # 一日前を求める。
@date = ($date =~/(\d{4})(\d{2}(\d{2}/);
@newdate = Add_Delta_Days(@date, delta);
$newdate = join '', @newdate;
0498497
2001/08/19(日) 14:09ID:???@date = ($date =~/(\d{4})(\d{2})(\d{2})/);
0499496
2001/08/19(日) 22:38ID:Oo9DGM7o自分でも調べてみたらTime::Local
っていうのもありました。
(こっちは手順がちょっと複雑になりそうですが)
Date::Calcが標準モジュールだったら、
こっちの方が楽そうですね。助かりました。
0500名無しさん@お腹いっぱい。
2001/08/20(月) 10:04ID:..QkqNpI数回に分けて送信するようにしたいのですがどのようにしたら良いのでしょうか?
0501名無しさん@お腹いっぱい。
2001/08/20(月) 11:03ID:???そのようにしたら良いんじゃないでしょうか。
CGIで[最大100件の送信者リスト]*nを作成→cronで送信
0502名無しさん@お腹いっぱい。
2001/08/20(月) 19:36ID:???0503名無しさん@お腹いっぱい。
2001/08/20(月) 20:26ID:???0504500
2001/08/20(月) 23:50ID:..QkqNpIcronが使えないサーバーでやる方法は無いでしょうか?
やっぱり手動で数回に分けて送信するしかないのかな〜
0505名無しさん@お腹いっぱい。
2001/08/21(火) 00:07ID:???手法はいくらでもあるけどね。
CGIの話なんですか?
それなら、一定時間ごとにCGIが走れば良いわけだから....(略)
0506500
2001/08/21(火) 00:40ID:6E4T9QScどのような方法ですか?初心者向けの簡単な方法の仕組みを教えてください
私が思いつく限りでは
データファイルか何かに起動する時間を書いておく
その時間を過ぎていたら起動させるようにするスクリプトを組む
それをカウンターか何かのアクセスが多いCGIに組み込む
とりあえずこんなのしか思いつかないんですけど
これだとあまりにも中途半端すぎるんで 良い方法を教えてください
0507名無しさん@お腹いっぱい。
2001/08/21(火) 00:56ID:???それでも良いし、常時接続な環境なら自動リロードさせても
良いんじゃない?
というか、CGIでやるの止める方向でいきませんか?
# CGI-MLの過去ログで検索すると腐るほど情報あるよ
0508500
2001/08/21(火) 03:05ID:6E4T9QSc1000人分くらいのメンバー情報を扱う時
一つのデータファイルにまとめて入れるのと
一人づつデータファイルを1000個つくるのではどちらが負担は少ないのでしょうか?
なおデータへの書き込みは頻繁に行われます
できれば一覧表示も行いたいと思います
0509名無しさん@お腹いっぱい。
2001/08/21(火) 06:24ID:???Benchmarkモジュール使って自分で計ってみたら?
0510名無しさん@お腹いっぱい。
2001/08/22(水) 01:09ID:GFNp99PM0511名無しさん@お腹いっぱい。
2001/08/22(水) 01:42ID:???意味が分からない
0512名無しさん@お腹いっぱい。
2001/08/22(水) 03:37ID:AkElayo6に替えファイルをクリックしたところdos画面がでて
直ぐにdos画面が消えました、まだ調整が必要でしょうか
それとも他にインストールするソフトでもあるのでしょうか?
0513512
2001/08/22(水) 03:40ID:AkElayo6やっぱApacheをインストールしないと駄目なのかなぁ?
0514名無しさん@お腹いっぱい。
2001/08/22(水) 03:47ID:???CGIはWebサーバーから起動するからCGIなのです。
perl(スクリプト)だけを利用するときには、DOS窓から使ってください。
0515名無しさん@お腹いっぱい。
2001/08/22(水) 05:06ID:pmuXIvEYアパッチインストールしらC:\*****\*****.***になって機能しない
から注意書き見たらこんな事書いてるのです。でも意味が分りません。。
(注意)以下のテストで、ファイルのダウンロードになってしまう場合は、
エクスプローラのファイルタイプの設定で、MSDOSバッチファイルの
MIMEタイプを text/plain にしてください。
バッチファイルってこれの事かなぁ
C:\PROGRA~1\NETWOR~1\MCAFEE~1\SCANPM.EXE C:\ /boot
@IF ERRORLEVEL 1 PAUSE
@ECHO OFF
PATH=C:\NECUTILS\HDPREP
loadhigh c:\windows\COMMAND\nlsfunc.exe c:\windows\country.sys
PATH=%PATH%;"d:\Program Files\Mts"
SET PATH=c:\PERL\BIN;"%PATH%"
0516出来た
2001/08/22(水) 05:54ID:29hOJqFsBATを表示するには、「ファイルタイプ」の「新規」で「ファイルの拡張子」にbatと入力し、「詳細」をクリックすると、一時的にbatの内容がリストに追加され、内容の確認ができるようになる。しかしbatを絶対に編集してはいけない。終了は「キャンセル」を使う。
batのMIMEをtext/plainに変更するにはレジストリを編集する。レジストリの編集はかなりの危険が伴うので、よく理解していない限り、編集してはいけない。
1.「スタート」「ファイル名を指定して実行」で「regedit」と入力。
2.\HKEY_CLASS_ROOT\*\.bat を選択。
3.右クリックで「新規」「文字列」、Content Type と大文字小文字を一時一句たがえずに入力。ContentとTypeの間は半角スペース。OK。
4.画面の右側で、今新しく作成されたContent Typeを選択し、text/plain と入力。(他のWindowsのように、引用符は付けないこと。"text/plain"と書くのは駄目)
0517名無しさん@お腹いっぱい。
2001/08/22(水) 06:17ID:LG5r0RZMファイルクリックすると***.plファイルが一瞬開いて閉じるだけ
perlは大丈夫だと思うけど、apacheの設定がおかしいのかなぁ
0518名無しさん@お腹いっぱい。
2001/08/22(水) 06:18ID:???0519517
2001/08/22(水) 06:52ID:YOZd9AOcperl ***.plはしたけど結局どうしたら
クリックでhttpサーバになるのですか?
0520名無しさん@お腹いっぱい。
2001/08/22(水) 06:58ID:???あんた全然分かってないよ。位置から説明なんてめんどくさいから
http://www.google.com/search?hl=ja&safe=off&q=iis+cgi+perl&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0521名無しさん@お腹いっぱい。
2001/08/22(水) 08:02ID:IsndpGHsDOSを非表示にする、方法はないでしょうか。
パールで、ツールを作って、ファイラーから、実行
したいのですが、一瞬、表示される、DOS窓が、邪魔で・・・。
0522名無しさん@お腹いっぱい。
2001/08/22(水) 08:15ID:???通常の2倍時間をかけて瞬きしろ
0523名無しさん@お腹いっぱい。
2001/08/22(水) 08:30ID:???それは、ちょっと・・・です。
補足ですが、実行する際は、
jperl (スクリプトのフルパス) file1 file2
あるいは、
command.com /c jperl (スクリプトのフルパス) file1 file2
と設定に書いて、キーに割り当てて、使ってるんですけど・・・。
0524名無しさん@お腹いっぱい。
2001/08/22(水) 09:24ID:???Perlのソースといじって再コンパイルするとか。
具体的にどうすればいいかは全く知らん。
0525名無しさん@お腹いっぱい。
2001/08/22(水) 12:05ID:tFrHOLK6サーバー立ててブラウザから実行する。
0526真夏の名無しさん
2001/08/22(水) 12:08ID:???欲しいのはこれかな?
http://www.vector.co.jp/soft/win95/util/se094812.html
0527521
2001/08/22(水) 12:37ID:???・・・私にも、難しいです。
>>525
それができるだけの金と部屋のスペースが欲しいです。
>>526
違うようです。
今、現在動いてるDOSに対して、そのプログラムを、
起動させて、表示、非表示を選択できますが、
新しく開いて、すぐ閉じるDOS窓に対しては、
できないようです。
0529名無しさん@お腹いっぱい。
2001/08/22(水) 12:46ID:???0530525
2001/08/22(水) 12:55ID:tFrHOLK6AN HTTPなんてただだし、Win9*、Win2kどっちにも入れれる。
かつすげー簡単に入れれる。CGIの勉強にもなるし適当じゃない?
0531521
2001/08/22(水) 13:34ID:???ごめん。自分は、パール・スクリプトを
ファイラーの機能追加に使ってみたい。
あるボタンを押したら、マークしたファイルの文字コードを
いっきに変えるとかです。
525でおしえてもらった方法だと、
それには、少なくともサーバーソフト起動させて、
さらに、プラウザを起動させなくてはならないいんじゃ?
だから、それは、ちょっとです。
CGIに興味はありますが・・・。
528のレスは、>>522じゃなくて>>524です。
0532名無しさん@お腹いっぱい。
2001/08/22(水) 14:30ID:???良く解らんけど、pl2batみたいのでpl2exeみたいのがあったんじゃ無い
かな。初心者スレとかに色んなツールがあるよ
0533名無しさん@お腹いっぱい。
2001/08/22(水) 23:45ID:lHmfRQBoスクリプト自体をbatファイルにしてpifで最小化に設定すれば良いのでは?
ただしwin9Xの場合だけどね・・・
0534533
2001/08/22(水) 23:57ID:UjaPBszMperl -x %0
goto end
#!/usr/local/bin/perl
$f1 = $ENV{'F1'};
print "$f1 が指定されました。";
__END__
:end
0535名無しさん@お腹いっぱい。
2001/08/23(木) 00:08ID:???nkf使えば?
0536521
2001/08/23(木) 00:33ID:???pl2batでスクリプトをbatファイル化して、
プロパティで最小化設定したあと、関連づけ実行して
みましたが、だめでした。プロパティ変更した際、
自動生成されたpifファイルにも、試しましたが同じでした。
>>533
どうもです。
pl2exe気になります。
いろいろ、関連サイト探しまわってみます。
>>535
やりたいのは、文字コードの変換だけではないんです。
htmlファイルにマークしてリンクの抜き出しとか、
いろいろです。
レスしてくれたひと、ありがとうございました。
0537名無しさん@お腹いっぱい。
2001/08/23(木) 00:55ID:???http://www.indigostar.com/perl2exe.htm
DOSプロンプトが出るかどうかは不明。
0538名無しさん@お腹いっぱい。
2001/08/23(木) 01:08ID:???-gui
を付ければDOS窓出ない
0539532
2001/08/23(木) 01:39ID:fZO15JoQ試しに僕も使ってみます。
ありがとう、>>537-538
0540名無しさん@お腹いっぱい。
2001/08/23(木) 02:16ID:Kp4CzHHk>読みました、全く同じです。
>perl ***.plはしたけど結局どうしたら
>クリックでhttpサーバになるのですか?
誰か教えてもらえませんか?
0541540
2001/08/23(木) 02:18ID:Kp4CzHHk0542名無しさん@お腹いっぱい。
2001/08/23(木) 02:29ID:???何故誰も答えないかというと、あまりに基本が分かっていないから。
せめてHello worldくらいは出来るようになってから出なおしな。
0543540
2001/08/23(木) 02:33ID:04DpFLUMして表示はしました。
0544540
2001/08/23(木) 02:44ID:04DpFLUMでもperlインストールの時するにしてないのかなぁ
基本ってなんでしょうか
0545名無しさん@お腹いっぱい。
2001/08/23(木) 02:44ID:???>>543
何が解らないの?、HTTPD入れて普通のHTML表示してみた?
CGIなんてHTTPヘッダ吐くだけなんだから、取り合えず
コマンドラインで簡単なコード書いてみれ
その聞き方じゃ何処まで行っても上手く行かないと思うぞ
0546521
2001/08/23(木) 02:48ID:???評価版(?)らしく、ちっこいダイアログが、
表示されるけど、すっごい役に立ちます。
テキストにスクリプトで処理させると、高速で、
実行してくれます。
DOSで使っても、リダイレクションできるし。
ありがとうがざいました。
0547名無しさん@お腹いっぱい。
2001/08/23(木) 02:49ID:???同感
質問一つでそいつの天井みえるよな。
0549540
2001/08/23(木) 02:58ID:04DpFLUMウインドウズ上から*.plをダブルクリックでもHTMLを吐き出すだけ
なのです。。
0550540
2001/08/23(木) 03:02ID:04DpFLUM0551540
2001/08/23(木) 03:07ID:04DpFLUMhttp://127.0.0.1/readme.htmlじゃなくちゃいけないの?
0552名無しさん@お腹いっぱい。
2001/08/23(木) 03:14ID:???http://loopback/index.html
って入れて表示出来る所まで設定すれ
ここ行って書いてる事全部よんでみ
んで出来たら
http://loopback/hoge.cgi ##超簡単なコード
これを動かす。
あと質問するなら環境書けてば、OSもhttpdもperl実行環境も解らん
のに答えられないって
一応言っとくと普通cgiファイルをダブルクリックして勝手にブラウザが
起動して実行結果が出てくるような設定にはならない、つかWINでは出来ない
WINのファイルタイプ2つ設定出来るなら別だけど
0553名無しさん@お腹いっぱい。
2001/08/23(木) 03:14ID:???闇雲に試行錯誤するより、それなりのドキュメントを一読してくださいよ。
とりあえずhttpdはまともに動いてるの?
*.plの中身はどんなよ?
>>514 >>542 >>545のレス読んだ?
cgiて何の略か知ってる?
0554名無しさん@お腹いっぱい。
2001/08/23(木) 03:16ID:???http://www.st.rim.or.jp/~nakata/
他にもHTTPサーバー 自宅 とかで検索すればボロボロ出てくるから
0555名無しさん@お腹いっぱい。
2001/08/23(木) 03:22ID:???それはともかく、540さんよ
sage進行でいかんか?
結構邪魔だよ。
0556540
2001/08/23(木) 03:25ID:04DpFLUM一応そこでhttpの設定はしました。
それ以外はさっぱり分りませんが適当にいじって思考錯誤する
しかないのかな
>>553
*plはウェブサーバー上で機能しています。
0557名無しさん@お腹いっぱい。
2001/08/23(木) 03:28ID:???>*plはウェブサーバー上で機能しています。
・・・キミって何歳?
興味あります。
0558540
2001/08/23(木) 03:33ID:04DpFLUM0559名無しさん@お腹いっぱい。
2001/08/23(木) 03:36ID:???つーかsageで行ってくれよ。頼むから。
0560名無しさん@お腹いっぱい。
2001/08/23(木) 03:38ID:???0561名無しさん@お腹いっぱい。
2001/08/23(木) 03:38ID:???一行カキコになるんじゃ?
http://127.0.0.*/index.htmlと
C:\apache\index.html
は表示してる内容は同じでもそのプロセスは全然違う、
悪い事言わないからHTMLからやれって、絶対パスでリンク貼って
飛べる様になってからにしろ
0562名無しさん@お腹いっぱい。
2001/08/23(木) 03:51ID:???ここはやさしいよ。
なれあってるけど。
レベルもいまいちだけどやさしいよ。
やさしいよ。
0563あああ
2001/08/23(木) 03:53ID:???+---/cgi-bin./
| |---counter.cgi
|
+---/aaa/
|---index.shtml
この場合index.shtmlからSSIでcounter.cgiを動かすには
どう記述すればいいの?
ディレクトリって戻れるの?
0564名無しさん@お腹いっぱい。
2001/08/23(木) 03:56ID:???>>563
../cgi-bin/counter.cgi で良い?
ああー PERLの質問が〜〜
0565あああ
2001/08/23(木) 04:02ID:???<!--#exec cmd="./cgi-bin/counter.cgi" -->
こんな風に書くみたいなんだけど最初の
ドットは2個連続でいいの?出来なかったんだけど…
0566521
2001/08/23(木) 04:02ID:???でも、役立ちそうだし製品版かってみようかな。
でも、クレジットカードか・・・。
なんか、ながれ、邪魔してすみません。
0567名無しさん@お腹いっぱい。
2001/08/23(木) 04:10ID:???じゃ絶対パスで、
>ドットは2個連続でいいの?出来なかったんだけど…
この辺でPC初心者板気味の話になりつつあるね
0568名無しさん
2001/08/23(木) 04:15ID:???これで誰かが切れちゃうと不毛な争いになるんだよなあ
頑張れ>答えてる人 ヽ(´ー`)ノ
0569ANT
2001/08/23(木) 04:18ID:???2個連続でいいよ。↓こんな感じ
<!--#exec cmd="../cgi-bin/counter.cgi"-->
ドット2個で「一つ戻る」ってノリです
0570あああ
2001/08/23(木) 04:29ID:???ドット2個で出来ませんでした。
これ以上聞くと初心者すぎてどっか逝けとか
googleで検索しろって言われるので自力で頑張ります。
>>567>>569 ヒントありがとう
0571名無しさん@お腹いっぱい。
2001/08/23(木) 05:03ID:???0572名無しさん@お腹いっぱい。
2001/08/23(木) 05:26ID:???どうしたらよいのでしょう?
0573名無しさん@お腹いっぱい。
2001/08/23(木) 05:41ID:???0574572
2001/08/23(木) 05:45ID:???レス早くてびっくりしました。
CGIでSJIS以外受け付けないようにすればいいんですね。
調べてみます。
ありがとうございます。
0575名無しさん@お腹いっぱい。
2001/08/23(木) 06:08ID:???俺はEUC-JPの方がお勧めだけど。
jcode sjis 変換 ってキーワードで検索してみてくれ。
0576540
2001/08/23(木) 06:45ID:???検索してしらべましたし、その通りやったのですが
未だに表示しません、こんなに大変なんですか?
っていうか殆どの人は直ぐに問題なく表示されているようですが。。
これって初級ネット向きの質問かな何処に投稿すればいいんだろ、、
それに普通一回設定したら気にも留めなくなるんだろうけど。。
0577名無しさん@お腹いっぱい。
2001/08/23(木) 07:01ID:???ちょっと、質問したいんですけど、結局どのhttpdをお使いなんですか?
0578540
2001/08/23(木) 07:07ID:???>悪い事言わないからHTMLからやれって、絶対パスでリンク貼って
>飛べる様になってからにしろ
少し真面目に調べたのですが此れと如何関係があるのかなぁ
3年前にHP立ち上げたのですが、なんか重要なことが記憶から飛んだのかなぁ
0579名無しさん@お腹いっぱい。
2001/08/23(木) 07:15ID:???これって結構割り切った良い仕様だと思うんだけど。
まぁ、それが嫌なら要はログで複数のコードを混ぜ込ませず一つに統一すればEUCでもSJISでもいいわけだから。
jcode.plのjcode::h2z系を使わない。
jcode::trで全角と半角を置換しない。
jcode::convertの第三引数にzを指定しない。
EUCとSJIS半角カナの区別がつかないほど短い場合もあるので、
getcodeで区別がつかなかったらSJISと決め付けて第二引数に明示的に指定する。
(convertが内部で読んでるgetcodeで区別がつかないと変換しないから)
これぐらいでどうでしょう?
あと、基本だけどJISにはしないこと。
0580名無しさん@お腹いっぱい。
2001/08/23(木) 07:28ID:???以下WINにAN入れてPERLは入ってるとして勝手に書く
ANを解凍して実行
http://127.0.0.1/readme.html
が表示出来たら(これが出なかったらおかしい、PC壊れてます)
ANのオプション→一般 でCGIとか全部チェック w
print "Content-type: text/html\n\ntest";
これをroot直下のcgi-binフォルダにtest.cgiとかで保存
http://127.0.0.1/cgi-bin/test.cgi にアクセス
出来ればもう一台PC買って下さいな、それが一番早いと思いますよ。
0581名無しさん@お腹いっぱい。
2001/08/23(木) 07:33ID:???404とか言ってくれれば説明も出来るのにねー
0582名無しさん@お腹いっぱい。
2001/08/23(木) 07:48ID:???0583名無しさん@お腹いっぱい。
2001/08/23(木) 07:55ID:???0584名無しさん@お腹いっぱい。
2001/08/23(木) 07:58ID:???0585名無しさん@お腹いっぱい。
2001/08/23(木) 07:59ID:???0586580
2001/08/23(木) 08:05ID:???多分仮想ディレクトリとか、ループバック辺りが解ってないと思ったんだ。
だから2台繋いでやれば後の方の問題は関係無くなると思った。
>>583
そんなことココで聞くなー!!(;´Д`)
DOSはCPMってOSのパクリでCPMでは/はコマンドと引数の区切り文字だった
それが途中からディレクトリサポートする様になって仕方なくアホなMSは
バックスラッシュをスラッシュの代わりにした
ところが事もあろうかJISコード策定したオッサン達はバックスラッシュを
消してここに\を入れちゃった訳 その後バックスラッシュはどんどん
エスケープキャラクタになっちゃったりしたから、こんな事になった
0587名無しさん@お腹いっぱい。
2001/08/23(木) 08:13ID:???0588540
2001/08/23(木) 09:18ID:???>以下WINにAN入れてPERLは入ってるとして勝手に書く
>ANを解凍して実行
>http://127.0.0.1/readme.html
>が表示出来たら(これが出なかったらおかしい、PC壊れてます)
>ANのオプション→一般 でCGIとか全部チェック w
>print "Content-type: text/html\n\ntest";
>これをroot直下のcgi-binフォルダにtest.cgiとかで保存
>http://127.0.0.1/cgi-bin/test.cgi にアクセス
何度もやりました、ちょっとした勘違いかとも思い
設定も替えながら幾つか試しました。でも結果は同じ404エラーです。
しつこく訊いたのは自分のPCだけの問題かと認識したかったのです
しかし、みなさんにはご迷惑かけました
ここで自分の固有の問題だと確信しました、っていうかしか
しかありません。
で一つ固有の環境として糞ザクソンネットレコーダーをいれている
のですが、以前物凄い使い勝手の悪さにアンインストールをした
のですがファイルが壊れているらしくアンインストール出来なかった
のでそのままにしているので、主犯はこいつと睨みました。
同じ境遇の人いますか?って居ないよね。
今から強引にアンインストールを実行します、それでAN(HTTPD)
動いたらザクソンのソフトは2度と買いません!
0589名無しさん@お腹いっぱい。
2001/08/23(木) 09:45ID:???もしかしてその何タラネットがローカルプロクシとか後omitronとか
入っててトンでも無い所探しに行ってんじゃないだろね
IEの接続オプションの詳細で「このアドレスにはプロクシを使わない」
とか有るからそこに127ほにゃ って入れてみ
0590名無しさん@お腹いっぱい。
2001/08/23(木) 09:48ID:???もしかしてLAN組んで、127ほにゃ でアクセスしてるのか!??
0591名無しさん@お腹いっぱい。
2001/08/23(木) 09:57ID:???大変な事になって参りました (・∀・)
ここの住民は何だかんだ文句言いながらすげえ親切だと思うよ俺は、うん
0592名無しさん@お腹いっぱい。
2001/08/23(木) 11:38ID:???C:\www にインストールしているとして、オプションのドキュメントルートは C:\www 。
これは何も変えてなければデフォルトで大丈夫だ。
次に、
オプション/一般 → バーチャルホスト → バーチャルホストを使う、
オプション/一般 → 一般 → HTTPサーバ機能、
オプション/一般 → 一般 → バーチャルホスト、
これらにチェックを入れる。
んで、とりあえず http://127.0.0.1/readme.html にアクセス。
…これで何も表示されなかったら俺には何もアドバイス出来ない。
あぁ、そういえば http://127.0.0.1/ にアクセスした時はどうなる?
0593名無しさん@お腹いっぱい。
2001/08/23(木) 12:05ID:???結局ANのファイル全部見えてないんじゃんか (呆
それでcgiが動かないってreadmeもFAQも読んで無いからだって
もう一回一から見直しなよ
0594名無しさん@お腹いっぱい。
2001/08/23(木) 15:05ID:R1XxEp52よくここではkentのスクリプトは糞とか重いとか書かれていますが
どこらへんが糞で重いのでしょうか?
1つここで学んだことはログから出力するときは
open (IN,"$logfile");
@log = <IN>;
foreach (@log) {
}
ではなく
open (IN,"$logfile");
foreach (<IN>) {
}
の方がサーバーへの負荷が少ないということです。
他にもkentのここは駄目だ。こうした方が軽くなるということがあったら教えてください。
kentの真似ごとから一皮むけたいのです。
0595名無しさん@お腹いっぱい。
2001/08/23(木) 15:17ID:???> foreach (<IN>) {
> }
Afo?
まぁ前者より僅かながら早いかもしれんが…。
とりあえず貴方はまだKENTに真似事でもしていてください。
0596sage
2001/08/23(木) 15:29ID:5IP6et1kこれを表示するときには頭の0を削除したいのです。
例) 0001 -> 1
0053 -> 53
$value = '0001';
$value =~ s/^(000|00|0)//;
もっとエレガントな方法ないですか?
0597名無しさん@お腹いっぱい。
2001/08/23(木) 15:35ID:lw4Nr9lIあんたアホか?
万単位になったときははるかに前者より効率良いぞ。
たいした知識も無いくせに煽るな。糞が。だったら実例出してみな。
0598名無しさん@お腹いっぱい。
2001/08/23(木) 15:47ID:???$v =~ s/^0*//;
0599596
2001/08/23(木) 15:53ID:5IP6et1kおお!なるほど。
こういうときに*つかうんですね。+でもいけそうですね。
どうもです。
0601名無しさん@お腹いっぱい。
2001/08/23(木) 15:58ID:???$value = $value+0;
0603596
2001/08/23(木) 16:04ID:5IP6et1kそんなこともできるんですね!確かになります。
これは演算することで文字列から数値にキャストされる
ようなことと考えていいんでしょうか?
0604名無しさん@お腹いっぱい。
2001/08/23(木) 16:16ID:???そうです。
演算することで、パールのほうで、数値型にかえてくれます。
ただ、暗示的やりかたは、横にコメントも入れたほうがいいような気がする。
0605596
2001/08/23(木) 16:28ID:5IP6et1kなるほど、勉強になりました。エレガントさでいくと
602さんのが簡潔ですね。コメントも入れるようにします。
どうもありがとうございました。
0606名無しさん@お腹いっぱい。
2001/08/23(木) 17:27ID:???open (IN,"$logfile");
while (<IN>) {
}
じゃない?
0607名無しさん@お腹いっぱい。
2001/08/23(木) 17:29ID:???何故かウチのローカル環境だとエラー出るから一々
$v =~ s/^(0*)//;
とか括弧付けてるよ…
0608名無しさん@お腹いっぱい。
2001/08/23(木) 17:40ID:???いろんな解説書によるとパッケージ名::関数 で呼ぶようになってますよね
でも公開されてるスクリプトなどが&jcode'convertみたいにそのまま関数名で
呼んでるのは何故ですか?
0609572
2001/08/23(木) 17:42ID:???>>579
ありがとうございます!
な、なんか難しそうですね…。
方法としては、
・SJIS以外受け付けないようにする
・SJIS(EUC-JP)にコンバートする
・ログでコードを一つに統一する
のどれかということでしょうか?
頑張ってみます。
0610奈々資産
2001/08/23(木) 17:58ID:h9wrQ49Q&jcode'convertなどは普通のサブルーチンとして呼び出しているからです。
パッケージ名::関数の方はその"パッケージ名::関数"クラスの
インスタンスを生成して、生成されたオブジェクトに属するメンバ
関数(メソッド)として呼び出すからです。
0611名無しさん@お腹いっぱい。
2001/08/23(木) 18:05ID:???オイオイそれは違うゾ。
どっちもただの関数呼び出しだよ。まったく一緒。
ただPerl4のパッケージデリミタがシングルクォートなだけ。
0612名無しさん@お腹いっぱい。
2001/08/23(木) 18:12ID:pz5WVy56ありがとうございます
でも普通のサブルーチンとして呼ぶ方法と
パッケージの関数として呼ぶ方法の違いはなんでしょう?
test.pl 内に
package test;
sub test1{〜略〜}
return 1;
としてて呼ぶほうのスクリプトで
$test = 'test.pl';
require $test;
test::test1($a);
というようなことをしててもエラーがでて困ってます
0613612
2001/08/23(木) 18:17ID:???0614名無しさん@お腹いっぱい。
2001/08/23(木) 18:18ID:???それで問題ないはずだけど。
perlのバージョンは?
0615名無しさん@お腹いっぱい。
2001/08/23(木) 18:20ID:h08Ccr32として呼び出す方法として説明したんじゃないんだろうか。
0616612
2001/08/23(木) 18:26ID:???5です
jcodeやmimewなどはそのまま関数名で呼んでるんですよね(他の人が配付してるのを見ると)
で、612の方法でやってみても&で呼んでみてもエラーなんですよね・・・
関数自体は今まで同じファイル内にあったもので問題なく動いてたんですけど
もう少しいろいろ試してみます
0617611
2001/08/23(木) 18:34ID:???どう贔屓目にみてもそうは取れないでしょ。
オブジェクトメソッドなら、
convert jcode () か、 jcode->convert()
だけど、jcode.pl はオブジェクト指向じゃないしね。
単に、関数呼び出しとメソッド呼び出しの区別がついてないだけと思う。
>>616
エラーがなくなるまでスクリプト削ってみれ。
とりあえずこれでもエラー出るの?
#test.pl
package test;
sub test1{ print 'This is test::test1()';}
1;
#main.pl
require 'test.pl';
test::test1();
_END__
0618612
2001/08/23(木) 18:37ID:???パッケージ名とファイル名は同じでないといけなかったですか?
同じにしたら::で呼ぶ方法で動きました 御迷惑かけました
(でも&関数名で呼んでる奴との違いがなんなのかさっぱりです)
0619612
2001/08/23(木) 18:46ID:???私のパッケージは単純に関数が一つあるだけです
jcode.plの関数のように&で呼ぶには何か他に必要なのでしょうか?
(エラーの原因はパッケージ名が部分的に大文字でファイル名が
全部小文字というのが原因だったようです お手数かけました)
0620611
2001/08/23(木) 18:52ID:???> パッケージ名とファイル名は同じでないといけなかったですか?
それも関係ない。たぶんどこかに間違いがあったはず。
ファイル名::関数名()とかにしちゃってたんでは?
>(でも&関数名で呼んでる奴との違いがなんなのかさっぱりです)
&test::test1(); でもOKだよ。
&test'test1(); でもまったく一緒。
直後に( があって、その関数名がすでに宣言されていると
perlが関数呼び出しと判断してくれるだけ。
& の有無と、 :: と ' の話は関係ないよ。
0621612
2001/08/23(木) 19:00ID:???何度もありがとうございます
昔とほほで拾ったものなんですけど
mimew.plにあるmimeencodeって関数を&mimeencodeだけで読んでるんですよね
'も::も無しで
これが何故可能なのかがきになって・・・
0622611
2001/08/23(木) 19:06ID:???あ、そういうことですか。
これはmimew.plの関数宣言が、
sub main'mimeencode {
とかになってて、mainパッケージの関数を宣言してるから。
Perl5なら、
sub main::mimeencode {
とか書く。
0623名無しさん@お腹いっぱい。
2001/08/23(木) 19:08ID:???0625名無しさん@お腹いっぱい。
2001/08/23(木) 19:11ID:???0626名無しさん@お腹いっぱい。
2001/08/23(木) 19:41ID:???0627名無しさん@お腹いっぱい。
2001/08/24(金) 01:19ID:???my $value = 0001;
$value = abs($value);
print $value;
これでどうよ?
0628名無しさん@お腹いっぱい。
2001/08/24(金) 01:46ID:???sift-jisに変換してブラウザに出力してますがこの部分だけ化けます
0629名無しさん@お腹いっぱい。
2001/08/24(金) 01:53ID:???表示→表\示
0630名無しさん@お腹いっぱい。
2001/08/24(金) 02:59ID:???sprintf
0631名無しさん@お腹いっぱい。
2001/08/24(金) 03:02ID:???以外でブラウザを識別する方法ありますか?
0632名無しさん@お腹いっぱい。
2001/08/24(金) 03:04ID:???627のほうが効率よいうえ速いと思われ
0633名無しさん@お腹いっぱい。
2001/08/24(金) 03:05ID:???何故そのような事をお望みで?
それがわからないと答えにくいっす
0634名無しさん@お腹いっぱい。
2001/08/24(金) 03:13ID:???ええとですね
正確に言うとブラウザ名とOS名を別々に取得したいんです
HTTP-User-AgentだとOS名とかもくっついて来ますよね
このテキストが規則性があれば抽出できるんですけど、俺の頭じゃなんか無理で、、、
何故そんなことをしたいかというと
ブラウザやOSごとに吐き出すHTMLを微妙に代えたかったんです
0635名無しさん@お腹いっぱい。
2001/08/24(金) 03:18ID:???何故微妙に変えたいかというとINPUT TYPE="text"などのサイズが
同じ数字でもブラウザによりばらばらですよね
で、最初はブラウザだけ解れば何とかなると思ったですけど
Macのブラウザで見ると更にサイズが変わるらしく、OSも
と思ったわけです
0637すたいるしーとと言えば
2001/08/24(金) 03:29ID:???0638名無しさん@お腹いっぱい。
2001/08/24(金) 03:31ID:???結構ユーザーいるんだよな
6は評判悪くて乗りかえてない見たいだし
0639名無しさん@お腹いっぱい。
2001/08/24(金) 03:40ID:???Mozilla/4.7 [ja] (Win98; I)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Mozilla/4.01a [ja] (Macintosh; I; PPC)
Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)
以外にも組み合わせによりたくさんあるけど
win Macって言う文字列が含まれてるかどうかチェックすれば
OSは判別できるかな?
0640名無しさん@お腹いっぱい。
2001/08/24(金) 03:42ID:???対応はしてますが何か?
0641名無しさん@お腹いっぱい。
2001/08/24(金) 03:44ID:???0642名無しさん@お腹いっぱい。
2001/08/24(金) 03:46ID:???0643名無しさん@お腹いっぱい。
2001/08/24(金) 04:02ID:h7Yg7pIw0644名無しさん@お腹いっぱい。
2001/08/24(金) 04:19ID:???>>643
print sort keys %ENV
0645名無しさん@お腹いっぱい。
2001/08/24(金) 04:24ID:???0646名無しさん@お腹いっぱい。
2001/08/24(金) 04:25ID:???根本的に話題がずれてます。
0647名無しさん@お腹いっぱい。
2001/08/24(金) 04:35ID:???WEB制作板
http://natto.2ch.net/hp/index2.html
0648名無しさん@お腹いっぱい。
2001/08/24(金) 06:09ID:???やはりCGIとPerlの区別がつかないドキュソが多いのか
0649名無しさん@お腹いっぱい。
2001/08/24(金) 07:15ID:???0650名無しさん@お腹いっぱい。
2001/08/24(金) 15:21ID:???夏になると暑さで頭やられた馬鹿が出てくるし
秋になると食欲の秋で腹壊す馬鹿が出てくるし
冬になると脳みそ凍りついてる馬鹿が出てくる
年がら年中馬鹿ばっかだね。
0651307
2001/08/24(金) 16:09ID:???再利用出来るんだけどねー、
ここは流れゆっくりそうだから、DAT落ちしてないし
ちょっと見たけど、上の方のHTTPDのとか最悪じゃん :-D
0652名無しさん@お腹いっぱい。
2001/08/24(金) 16:10ID:???0653名無しさん
2001/08/24(金) 16:18ID:???ローカルプロクシがport80でlistenしてたってオチか?
もうcgiでも無いし
0654名無しさん@お腹いっぱい。
2001/08/24(金) 17:29ID:???0655名無しさん@お腹いっぱい。
2001/08/24(金) 17:32ID:???いいけど、スレ違い。
0656540
2001/08/24(金) 17:46ID:???ザクソンネットレコーダーアンインストール終了して
幾つかの調整してIEがやっと復旧しました、その
>C:\www にインストールしているとして、オプションのドキュメントルートは C:\www 。
>これは何も変えてなければデフォルトで大丈夫だ。
>次に、
>オプション/一般 → バーチャルホスト → バーチャルホストを使う、
>オプション/一般 → 一般 → HTTPサーバ機能、
>オプション/一般 → 一般 → バーチャルホスト、
>これらにチェックを入れる。
はやってます、でもやはり404でした。。今日思ったのですが
インターネットwebマネージャがIISの機能を満足していない
からではないんでしょうか?
やっぱネット初級あたりに質問したほうがいいですか?
0657名無しさん@お腹いっぱい。
2001/08/24(金) 18:09ID:???IIS??AN入れてるんじゃ無いの?
404って事はserverは見えてるの?
エラーコード位勉強してくれないかな
あきらめた良いと思いますよ。
0658名無しさん@お腹いっぱい。
2001/08/24(金) 18:17ID:???「ホームページが動きません!!助けて!!!!!!」
と言うスレを立てて下さい、すると当然ボコボコに叩かれるますので
そしたら部屋の窓を一杯に開けて「アチョーーー!!」と叫びながら
パソコンを外に投げて下さい。
ちょっと難しいけど、、、、がんばって!!
0659653
2001/08/24(金) 18:23ID:???だからオメエOSは何だっつってんだよ 厨房の癖にNTなんか使うな
どうせPORT80なんかに使われてんだろ それは404って言わねえんだよ
ポートとか書いてる所に10000って入れて
http://127.0.0.1:10000/
につなげ 繋いだらそのまま師ね
0660初心者A
2001/08/24(金) 18:26ID:???0661名無しさん@お腹いっぱい。
2001/08/24(金) 18:34ID:???>やっぱネット初級あたりに質問したほうがいいですか?
取り合えずここは出て行った方がいいと思われ。。。。
0662名無しさん@お腹いっぱい。
2001/08/24(金) 18:51ID:???状況がわからないのに正確な答えが出てくると思うか?
もし、こんな情報は必要無いな、とか思って情報を出さないのであればそれは間違いだ。
何もわからないテメェが必要な情報と不必要な情報を分別できると言うのか?
0663名無しさん@お腹いっぱい。
2001/08/24(金) 18:59ID:???同じ質問の仕方じゃどの ML でも掲示板でも荒れるよ
君には技術の前に正しい質問の仕方と論理的な物事の説明の仕方を
学ぶことをお勧めする
0664540
2001/08/24(金) 18:59ID:???別に切れたりはしませんが、多分だれも分らないんだと思う。
でもパソコンは会社のLan環境で使っていたやつなので
設定が普通と違うせいかもしれません。
0665名無しさん@お腹いっぱい。
2001/08/24(金) 19:09ID:???聞き方って一体・・・・・
ログ読むと何人かは真面目に答えようとしていた筈だが
0666540
2001/08/24(金) 19:21ID:???思うのですが。。
0668名無しさん@お腹いっぱい。
2001/08/24(金) 19:24ID:???0669540
2001/08/24(金) 19:24ID:???と何度も言ってるから違うのでしょうが。
0670名無しさん@お腹いっぱい。
2001/08/24(金) 19:27ID:???0671540
2001/08/24(金) 19:36ID:???lan環境の事だとすれば
必要な情報と不必要な情報を選別する事は
出来ないし何がlanかもわからないので
恐ろしく不必要な情報ばかりになるでしょう。。
ただ通常ある程度のレベルべ起こる不具合であれば
普通の人にも説明できると思ったからこのように
訊いたのです、でも現在自分のpcはおよそ想像出切る範囲の
通常設定とはかけ離れているので説明のしようがにないのだと
思います。
それは専門家の想像にもかけ離れているので
私はこれを正業としていないので、何を記述してよいか分りません。
0672名無しさん@お腹いっぱい。
2001/08/24(金) 19:45ID:???すげぇ、こいつは大物だ。
初級ネットより電波板のほうがよくないか?
おそらくあなたは気づいてないかもしれませんが、
あなたは質問の仕方が恐ろしいほど下手で誰も理解できません。
日本語勉強しなおすか、OS再インストールしてもう一度試すか、
回線切って首吊ってください。
0674名無しさん@お腹いっぱい。
2001/08/24(金) 19:48ID:???0675名無しさん@お腹いっぱい。
2001/08/24(金) 19:53ID:???ネットワークについて、基礎的な知識をもって欲しい。
何も難しい事を言ってるんじゃ無くて、http〜〜〜 と
ブラウザに入力したアドレスの内容が何故表示出来るのかと言う事です。
pingやport,listenをキーワードに検索すればある程度
導通検査の仕方が出てくるからその辺りから見ていけば時間は掛からない。
それと、
>多分だれも分らないんだと思う。
こんな事を言ってるけど、それは違う。
貴方が自分なりに試行錯誤した結果をここに書き込まないから
誰も答える事が出来ないんだ。
具体的に言うと、エラーメッセージ、ブラウザに〜〜〜と書かれています
とか、4**、5**といったエラーが出ていますとか。
それを前の方の人も何度も聞いているね。
貴方はそれに答えずに、自分なりに考えた事だけを一方的に書き込んでいる
だけだから、両者の間にコミュニュケーションは存在していないんです。
つまり、今までだらだらと続けて来た事は、たった一人でトラブルシューティング
してるのと何ら変わらない結果しかもたらしていないと言う事です。
アプローチは沢山あるんだから、あせらず廻り道するのも手ですよ。
0676名無しさん@お腹いっぱい。
2001/08/24(金) 19:55ID:???あんたやさしいな
0677名無しさん@お腹いっぱい。
2001/08/24(金) 20:08ID:???質問する時は環境とエラーメッセージ位は書くようにしような。
それと回答者が聞いてる事に答える事。
そうすれば再利用する事も出来る訳だし。
問題解決までのプロセスが明確なら、ちょっとしたFAQサイト位の情報量
は十分有ると思う。 という訳で、、
============ 質問 再開 =============
0679名無しさん@お腹いっぱい。
2001/08/24(金) 21:00ID:???という記事を書くための取材をしていると推測してみる。
0680名無しさん@お腹いっぱい。
2001/08/24(金) 21:04ID:???良い感してる
0681名無しさん@お腹いっぱい。
2001/08/24(金) 23:55ID:???漏れもきぼん
ログ流して〜
0682名無しさん@お腹いっぱい。
2001/08/25(土) 00:11ID:???毎行 # を付けるのが面倒で…
0683名無しさん@お腹いっぱい。
2001/08/25(土) 00:13ID:???[^\.-z]
これの意味がいまいちわからないのですが...
0684NeTa
2001/08/25(土) 00:55ID:???sub comment{ undef }
comment <<EOD;
foo
bar
hoge
EOD
ってのはどうでしょ
0686名無しさん@お腹いっぱい。
2001/08/25(土) 00:57ID:???>>682
こんな感じでいけるよ
でも実はこれではオプティマイザにとって
完全に無視される存在にはならないらしい(過去ログ参照)
komentoは何でも良いです
=cut
0687名無しさん@お腹いっぱい。
2001/08/25(土) 01:06ID:???http://www.e-words.ne.jp/page.asp?p=r-ascii
この辺を見ながら
$a = '-+.aA@()*abdc';
$a =~ s/[^\.-z]//g;
print "$a";
こんな感じでやってみると解りやすいかもしれない
0688名無しさん@お腹いっぱい。
2001/08/25(土) 01:16ID:???レスありがとうございます.
[^\.-z]で対象となるのは、
0x20 から 0x2d と 0x7b から 0x7e ですか?
(夕方実際にやってみてそういった感じでした)
どの文字が実際にマッチするかは
実際に実験してみればわかるのですが...
0689名無しさん@お腹いっぱい。
2001/08/25(土) 01:32ID:???そそ、でも正確には制御文字(CRやLF)も含めてだから
[^\.-z]だと改行コードなんかもマッチする(\nとか付けてやってみて)
実験したと言う事はもっと深い所でトラブってるの?
だったら俺はわかんないや :-)
0690名無しさん@お腹いっぱい。
2001/08/25(土) 12:26ID:???っとどうしようもねえ糞餓鬼ばっかだな
0691あげてみる
2001/08/25(土) 14:33ID:fEbHiUCs匿名掲示板で有益な情報を得たぜ日経IT記者よあげ
0692名無しさん@お腹いっぱい。
2001/08/25(土) 18:48ID:???みんな>>674を思ってやってるだけなんだから気にするなよ。
0693名無しさん@お腹いっぱい。
01/08/26 16:41ID:s0cllzR.戻り値とすることはできるのでしょうか?
遅くなると聞いたので、あまりreturnは使いたくないんです・・・。
グローバル変数使うしかないんでしょうか・・・?
0694名無しさん@お腹いっぱい。
01/08/26 19:33ID:deglGRg.りたーんすると遅くなるなんて聞いたことがないが、たぶん関数内ででかい(連想)配列を作って、それを返す時にコピーするのが時間がかかるということかな?
全体的に言ってることがおいらには理解できないが・・・。
一応おいらは呼び出し側で配列作って、関数にはリファレンスで渡してる。
それが有効かどうかは知らない。意味無かったら誰か煽ってくれ。
あと、所詮perlで書くスクリプトなんてたかがしれているから、グローバルでも平気で使ってる(わらぃ
0695名無しさん@お腹いっぱい。
01/08/26 21:24ID:WYakJQegなるほど、returnをすると遅くなるというのはそういうことだったんですね。
デカイ配列は無いので、returnを使うことにしました。
ありがとうございました。
http://www.cec.co.jp/usr/hasegawa/Docs/perl-jman/perl-4.019/perl_30.html#SEC49
0696名無しさん@お腹いっぱい。
01/08/27 10:30ID:5EwuC8Dg例:
require 'jcode.pl';
my $hoge="アホ";
&jcode::sjis2euc(\$hoge);
どうもeucになってないんですわ、、、
0697真夏の名無しさん
01/08/27 11:41ID:3PUeFMAE$a=1; $b=2;
print "一致したよ" if ($a = $b);
# なぜ「一致したよ」とプリントされるのでしょうか?
0698名無しさん@お腹いっぱい。
01/08/27 11:43ID:5CqKaT3I0699名無しさん@お腹いっぱい。
01/08/27 11:47ID:5CqKaT3I何故と聞かれたら、答えになってないか。
$aに$bが代入され、$aの値(2)が評価された結果真になるから。
0701名無しさん@お腹いっぱい。
01/08/27 16:48ID:r2JsPnN.ネタですか?スコープ、局所化、my、localって言葉について
全部調べた後だったら、僕も一緒に考えてもイイ。
0702名無しさん@お腹いっぱい。
01/08/27 17:03ID:arNi4VjY$hogeがアスキーオンリーだったというオチは無しな
0703名無しさん@お腹いっぱい。
01/08/28 04:34ID:Y9HJU1Vk読み書きが同時に起こることはないから、いらないのかなという気も
するのですが、どうなのでしょうか。
0704名無しさん@お腹いっぱい。
01/08/28 04:52ID:18vpKowIりーどおんりーなら必要なし。
追加おんりーも必要なし。
0705名無しさん@お腹いっぱい。
01/08/28 07:10ID:YMgWxGD6> 追加おんりーも必要なし。
嘘教えるのはやめてください。
追加がほぼ同時に起こったら両方の追加分が混ざってしまいます。
たとえ追加がprint文一個だけだったしても、内部的には
一回じゃない可能性があります。
0706名無しさん@お腹いっぱい。
01/08/28 12:45ID:/J/VCZIY0707名無しさん@お腹いっぱい。
01/08/28 16:16ID:83R3Dqboperlの場合は、
main:
my($hensu,
@hensu
);
見たく一々指定しなくてはならないのでしょうか?
PHPみたくそのままいきなり変数を指定できないのでしょうか?
0708名無しさん@お腹いっぱい。
01/08/28 16:29ID:vRwY8t2k0709名無しさん@お腹いっぱい。
01/08/28 16:50ID:83R3Dqboそうなんですか?
そうなると、サブルーチンで使う変数も一々グローバル変数として
指定しなきゃいけないことになりますよね?
たくさん、変数を使う時かなりソースが長くなっちゃいますね(^^;;
0710名無しさん@お腹いっぱい。
01/08/28 17:13ID:S6hb/fHcmy $hoge;
でローカル変数になるだろが。
0711名無しさん@お腹いっぱい。
01/08/28 17:21ID:83R3Dqboいやいや・・ちょっと文章おかしかったです(^^;
同じ変数がローカルとサブルーチンに1つずつあると
エラーが起こるから、一々、ローカルでサブルーチンで使う変数を
変数指定するのもおかしいかなと思ってみただけです。
自分は、サブルーチン時に「@_」を使ってないのでそのまま引数を
ローカルの変数として呼び出してるやり方をしているもので・・・(−−;;
0712名無しさん@お腹いっぱい。
01/08/28 17:41ID:83R3Dqbotype="HIDDEN" NAME="hoge"で次のページにわたる時
一々
&ReadParse(\%cgi_data);で呼んで
$hoge = $cgi_data{'hoge'};
って記入しないといけないのでしょうか?
0713名無しさん@お腹いっぱい。
01/08/28 17:45ID:2OCyfEBQ0714名無しさん@お腹いっぱい。
01/08/28 18:00ID:83R3Dqbo&ReadParse(\%cgi_data)以外の
やり方教えてください!!m(_ _;)m
0715名無しさん@お腹いっぱい。
01/08/28 18:02ID:83R3Dqbo0716名無しさん@お腹いっぱい。
01/08/28 18:11ID:vRwY8t2k0717名無しさん@お腹いっぱい。
01/08/28 18:15ID:83R3Dqbosageの練習だったんです。
すみません。
0718716
01/08/28 18:24ID:ucUrq.A60719名無しさん@お腹いっぱい。
01/08/28 18:36ID:83R3Dqbo>>712を読んでいただければ意味がわかると思います。
ようするに、PHPみたく次のページで即変数として扱えないのか?
と言う質問を問い掛けたのです。宜しくお願いします。
0720名無しさん@お腹いっぱい。
01/08/28 18:43ID:KihuaPf6他は CGI.pmかCGI_Lite.pmを使うぐらいしか知らん。
使い方は
perldoc CGI
perldoc CGI_Lite
で
特別な記述せずに<input ... name="hoge" ... > からのデータを $hoge に
入れるのは不可能。(たぶん)
0721名無しさん@お腹いっぱい。
01/08/28 19:22ID:83R3Dqboやっぱり、cgi-lib以外でやる人は少ないって事なのですね(^^;
無難に、クエリーが渡ってきたら、素直に、ReadParseした方宜しいって事ですね
そうなると、perlはPHPと違って多少面倒なんですね。
0722名無しさん@お腹いっぱい。
01/08/28 19:48ID:NdGnBYkEcgi-lib.plなんて使ってる人のほうが少ない。
普通はCGI.pmですが何か。
0723名無しさん@お腹いっぱい。
01/08/28 21:21ID:AucphgNo0724703
01/08/29 01:50ID:1LK7qRnYありがとうございます。syswriteについても調べてみることにします。
ところで、readonlyの場合でも、そのファイルをFTPでアップロード中に、
読み込みとかが起こったりすると、大変なことになったりするのでしょうか?
0725725
01/08/29 02:28ID:nriXNhX6連想配列を使うときもmyで、「俺のもの宣言」
しなくちゃならないのでしょうか?
そのときは
my %SAMPLE;
で一括で指定できるのでしょうか?
それとも、要素ごとに
my $SAMPLE{'title'} = 'コニーチワ';
みたいにしてやんなくちゃならないのでしょうか?
0726>725
01/08/29 02:33ID:TrXIg0dUできる状況ならそうした方がいいかもっす。
>my %SAMPLE;
>で一括で指定できるのでしょうか?
それでOKっす。個別にmyをくっつける必要はないっす。
0728名無しさん@お腹いっぱい。
01/08/29 09:23ID:GqMg69L.◆FhPerLNE : #336764
◆peRlrNR6 : #585435
◆YITpeRLI : #716717
◆1pERlT4I : #937918
◆2PerLxhc : #1339723
◆PerLxUgU : #2083790
◆p2RPERLo : #2906193
◆pErlw4Uo : #3303125
0730725(ID違うけど...)
01/08/29 09:39ID:7qWdlnWQそれでやってみるっす。
0731名無しさん@お腹いっぱい。
01/08/29 10:14ID:ZDWORICMプログラムを書いてるんですけど
#!/usr/bin/perl
$basedir = "/home/hoge";
opendir(RD,"$basedir") or die;
@dircontent = readdir(RD);
foreach $file_or_dir(@dircontent){
if(-d $file_or_dir){
push(@dirs,$file_or_dir);
}else{
push(@files,$file_or_dir);
}
}
に書いて中身がディレクトリかファイルかを分けてるんですが、
'.'と'..'が@dirsに入ってその他のディレクトリとかファイルは@filesの
方に入ってしまうんですがどうしてかわからないので教えていただけますか?
よろしくおねがいします。
0732名無しさん@お腹いっぱい。
01/08/29 10:30ID:J55zYnlgWinとLinux両方でやりたいのですが
これから始めるとしたらどのバージョンがおすすめですか?
0733名無しさん@お腹いっぱい。
01/08/29 10:43ID:2tzh7XAw> '.'と'..'が@dirsに入ってその他のディレクトリとかファイルは@filesの
> 方に入ってしまうんですがどうしてかわからないので教えていただけますか?
if(-d "$basedir/$file_or_dir"){
...
ね。みんなよくやる失敗だYO!
0734名無しさん@お腹いっぱい。
01/08/29 10:48ID:kt3pSaeg0735名無しさん@お腹いっぱい。
01/08/29 10:49ID:kt3pSaeg0736731
01/08/29 11:01ID:qLYLxYkcありがとうございます。できました。。
そかぁ〜絶対パス(?)指定してあげないといけないんですね。。
初歩的ミスでした。。また何かありましたらよろしくおねがいします。
0737725
01/08/29 11:43ID:7qWdlnWQもう一つご教授ください。
プリントをするとき、
print << "_END_";
コニーチワ
コバーンワ
オハーヨ
_END_
てな具合で書くことができますよね?
そこでなんですが、変数に代入するときも
同じ様な技が使えるのでしょうか?
$aisatsu << "_EOF_";
コニーチワ
コバーンワ
オハーヨ
_EOF_
てな感じでOKなのでしょうか?
0738名無しさん@お腹いっぱい。
01/08/29 11:47ID:9WjD.Pdc.
.
.
_EOF_
イコールが要る
0739725
01/08/29 11:54ID:7qWdlnWQなるほど、なるほど。イコールがいるのですね。
うむ、勉強になります。
イコールがいるってことは演算子が使えるってことですよね?
そしたら、
$aisatsu .=<< "_EOF_";
アローハ
_EOF_
って書けば$aisatsuっていう変数に追記されるって
ことなのでしょうか。
0740名無しさん@お腹いっぱい。
01/08/29 11:59ID:r10mk.nk0741名無しさん@お腹いっぱい。
01/08/29 12:13ID:HC/LQDQAつーか、テメーで試してから聞けよ。
0742名無しさん@お腹いっぱい。
01/08/29 13:03ID:2tzh7XAw鬱だしのう
0743725
01/08/29 13:28ID:7qWdlnWQうまくいきました。
ありがとうございました!
0744There's More Than One Way To Do It.
01/08/29 18:09ID:dbdeNPaQWEBプログラム
#↑が空行である点に注意。
これでもOK。(推奨されない)
<< を使わなくても、
$_ = "
WEBプログラム
";
これでもOK。
0745やりかたがいっぱいあるってのなら
01/08/29 19:15ID:l6kwWt.M$mona = qq{<FONT size="-1" color="#ff0000">
逝ってよし
</FONT>
};
print $mona;
なんてよくやる。
0746教えてさん
01/08/29 21:04ID:xjxFODrs出先から会社のホームページを書き換えたり出来るんでしょうか?
0747名無しさん@お腹いっぱい。
01/08/29 21:09ID:BzSzcky6http://natto.2ch.net/hp/index2.html
Perlとは全く関係ないでしょ?
0748教えてさん
01/08/29 21:14ID:ASEY3DfQ0749725
01/08/30 00:39ID:1xnqMYr2目からうろっこっす!
そんな方法もあるのですね。
0750725
01/08/30 02:34ID:1xnqMYr2local(@pairs) = split(/;/,$cookies);
てな感じでクッキーを分割しようとすると
perl -w でチェックしたとき
Use of uninitialized value in split at toarubbs.cgi line 411.
という警告が出ます。調べてみたのですが、どこが狂っているの
か皆目分かりません。一応通ってはいるみたいなのですが...
ご教授くださいまし。
# これだけの情報では分からないでしょうか?
0751JAPU@うぐぅ
01/08/30 02:38ID:c4jBSiHQ事前に
$cookies = "" if not defined $cookies;
とかしておけば OK かも。:)
# undef と "" は異なります。
0752名無しさん
01/08/30 04:54ID:zTjKOAyE$log ? print LOG <<EOF : print <<EOF;
ヒアドキュメントで…
EOF
0753名無しさん@お腹いっぱい。
01/08/30 05:18ID:7tv.uuPE$log ? print LOG <<EOF : print <<EOF;
ログあり
EOF
ログなし
EOF
# ↓個人的推奨
print length $log ? <<EX : <<NEX;
ログあり
EX
ログなし
NEX
0754752
01/08/30 05:48ID:zTjKOAyE回答の通りやってみたら出来ました。そこまで思い付きませんでした…。
推奨の方を頭に入れます。ありがとうございました。
0755>752
01/08/30 06:20ID:vlPtsTzAselect LOG if $log;
print <<EOF;
....
EOF
select STDOUT if $log;
なんてのもアリですね。
0756725
01/08/30 11:02ID:pcbOuQ4Uうわ、JAPUさんだ、こんにちは。
すみません、前の行で
local($cookies) = $ENV{'HTTP_COOKIE'};
として、環境変数からクッキーを呼び出しています。
これでは$cookiesを定義したことにならないのでしょうか。
JAPUさんの教えてくださった方法でちと試してみます。
ありがとうございました。m(_ _)m
0757名無しさん@お腹いっぱい。
01/08/30 11:08ID:vj7AVUwUlocal が気になる。
0758名無しさん@お腹いっぱい。
01/08/30 11:28ID:zG.eoWl.教えてください。ファイルテストしているところで
opendir(D,$dir)or dir;
$path=readdir(D);
if(-f $path){
処理
}elseif(-d _){
処理
}
の「_」の部分なんですが意味がわからないで教えてください。
本には最後のstatないしlstatの結果を参照って書いてあるんですけど
これってどんな意味なんでしょうか?直前(最後)ファイルテストをした物
と同じって意味でいいんでしょうか?(この場合$pathと同じってこと)
よくわからないので教えてください
0759名無しさん@お腹いっぱい。
01/08/30 11:57ID:3TFNK/cI$pathと同じです。
直前に実行したファイルテスト演算子の結果はキャッシュされるので、
もう一度 (-d $path) とするより効率がよくなります。
0760名無しさん@お腹いっぱい。
01/08/30 12:52ID:psLhnlnEありがとうございます。モヤモヤが解決しました!!
0761名無しさん@お腹いっぱい。
01/08/30 13:00ID:5rfMNbvM『現在の日付』と『入力した日付 例)2000-8-30』を比較し今現在の時間より未来だったら
エラーと表示したいのですが、ソースが全然わかりません。
今日の日付を取得するのはわかるのですが・・・
my ($sec, $min, $hour, $day, $mon, $year, $wdy, $yday, $isdst) = localtime(time);
$year += 1900;
$mon++;
print "ただいま$year年$mon月$day日 $hour時$min分$sec秒\n";
exit;
それと比較する方法がわかりません・・
誰かおしえてよ
0762名無しさん@お腹いっぱい。
01/08/30 13:46ID:9ojiLY2wsub is_future {
my ($b_year, $b_month, $b_day) = split /-/, shift;
require Time::Local;
return time < Time::Local::timelocal(0, 0, 0, $b_day, --$b_month, $b_year -= 1900);
}
foreach my $test_data (qw(
2000-8-30
2001-8-29
2001-8-30
2001-8-31
2001-9-1
)) { print $test_data; print ": エラー" if is_future($test_data); print "\n" }
0763JAPU
01/08/30 13:51ID:c4jBSiHQ変数は
・任意の文字列 (数字としても扱うことができる)
・リファレンス
・未定義 (undef)
のどれかをとる (他にあったっけ? 識者の補足をきぼーん) ので、
local($cookies) = $ENV{'HTTP_COOKIE'};
としても、$ENV{HTTP_COOKIE} が undef なら何もしない限り $cookies も undef なのです。
この場合は、
my $cookies = $ENV{HTTP_COOKIE} || "";
とするのがよいかな。
# 既に指摘がある通り、変数は可能な限り my で宣言するのが吉なりよ。
----
($iyear, $imon, $imday) = split /-/, $input_date;
$input_date = sprintf "%04d-%04d-%04d", $iyear, $imon, $imday;
$system_date = sprintf "%04d-%04d-%04d", $year, $mon, $day;
if($system_date lt $input_date) {
print "はにゃーん エラー\n";
}
0764T女の竹田
01/08/30 15:03ID:UDHJh.zA抜き出して、それからぜんぶUnicode(BE)に変換しようとしたんだけど、いい方法ないかなぁ?
$text =~ s/?(\d+);/pack('n',$1);/seg;
$text =~ s/[\x20-\x7e]/\0$&/sg;
最初↑みたいにしてやったら化けまくって、で中を見て「あ〜ばかじゃん」
と思って上下の文を逆にしてみると…さらに大惨事に…(当たり前)
工夫すればできるとは思うけど、「この正規表現で一発!」みたいなの
ないですか?
0765T女の竹田
01/08/30 15:10ID:UDHJh.zA?(\d+)
は
&#(\d+)
です。。
0766752
01/08/30 16:56ID:FHx3lziUわあ…。
selectの使い方、とても参考になりました。
嬉しい。遅くなりましたけど、ありがとうございます。
0767名無しさん@お腹いっぱい。
01/08/30 18:02ID:KPteR7z.掲示板を作ってるんですけど、ログファイル(bbslog.datとかuser.datとか)のファイルに
ブラウザから直接アクセス出来ないようにしたいんですけど、
みなさんどういう方法をとっていらっしゃいますか?
自分の貧困な発想で思いついたのは、ログファイルの拡張子を『cgi』にして、
Permission Deniedさせてしまうぐらいしか思いつかなかったんです(;_;)
0768名無しさん@お腹いっぱい。
01/08/30 18:30ID:E9M3DAmo0769名無しさん@お腹いっぱい。
01/08/30 18:32ID:pomXMsVA>>767
それで良いと思うよ。でもそれはスクリプト側でする事じゃ無いんで
考えなくてOK、public_htmlの外に置くとかhtaccess置くとか
デフォルトの名前を変える様にユーザーに呼びかけましょう。
それがやり易い様に変数の中に入れておくと親切かも。。。
0770名無しさん@お腹いっぱい。
01/08/30 19:08ID:U7WzvMDs例)http://corn.2ch.net/php/index2.htm?hogehoge=sage&....
@referer_box = split /?/,$ENV{'HTTP_REFERER'};
0771767
01/08/30 19:41ID:KPteR7z.自分でも、他のディレクトリにシンボリックリンク 貼って
そこにデータ置いたりとかいろいろ四苦八苦してたんですけど、
そのやり方だと他の人に渡したときに、動かせないかもしれないので、
ここで質問させて戴いたしだいです。
やっぱり、拡張子をcgiにする方式でやってみます。
ただ、この方式だと下の問題点の方が残ってしまうんですよね。
改善される問題:ログファイル(パスワードを含む物など)を読まれる危険性がなくなる。
残っている問題:ブラウザからログファイルに直接に何度もアクセスをかけられると、
ファイルロックされていないので、書き込みがミスってしまう。
ログファイルの名前がユーザーにばれる事は掲示板の弱点として、割り切るしか無いんでしょうか(;_;)
うぅ、長くなってごめんなさい。別に粘着レスでは無いんですー(;_;)
0772名無しさん@お腹いっぱい。
01/08/30 20:06ID:TttdmJZYprint { $foo ? *STDOUT : *STDERR } "HOGE\n";
っても使えるよ。
>>T女たん
perldoc -f packを見れば良いのでわ(折れは英語ダメだけど
pack 'u'とか(?)
0773名無しさん@お腹いっぱい。
01/08/30 20:13ID:pomXMsVA後はアクセス制限掛けるなりしてもらうしかないよ
cgi-bin以下の.cgi以外はwww権限で読めないサーバーとかも有るけど。。
.hthogehogeとかやっとくと結構色んなサーバーで行けそう
0774725(=756)
01/08/30 21:24ID:ytEa/Jb2いやぁ、勉強になります。
みなさんおっしゃっているように、local -> myにかえてみようと
思います。いろいろありがとうございました。
0775T女の竹田
01/08/30 21:54ID:FAiia3.6追加していって普通に?やりました。
最初からこうしてたらよかったかも。。こういうのって「正規表現でできるはず!!」って
思いこんでたけど、結局正規表現じゃ無理なのかな?
0776名無しさん@お腹いっぱい。
01/08/31 01:18ID:0YV4ebqcLWP::UserAgent をつかって、クッキーを受け取って、
次のリクエストでそのクッキーをちゃんと返してやるってのをやってるんですが、
受け取るまでは、出来たのですが、ちゃんと返すことが出来ません。
どうすればいいでしょうか?
cookie.txtには、ちゃんと情報は保存されています。
#!/usr/bin/perl
use LWP::UserAgent;
require HTTP::Cookies;
my $ua = LWP::UserAgent->new(cookie_jar => 1,);
$ua->agent('Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$ua->cookie_jar(HTTP::Cookies->new(file => "./cookie.txt",AutoSave => 1,));
$target = 'http://www.foo.ne.jp/';
my $req = HTTP::Request->new(GET => "$target");
$res = $ua->request($req);
if ($res->is_success) {
print $res->content;
} else {
print $res->status_line;
}
0777名無しさん@お腹いっぱい。
01/08/31 02:22ID:15D5/wj6みなさん、ログファイルに記録するのにデリミタは何にしてますか?
おいらは、\376で区切ってます。
0778名無しさん@お腹いっぱい。
01/08/31 02:43ID:f1g.yh7k0779名無しさん@お腹いっぱい。
01/08/31 02:47ID:15D5/wj6lftp
0780JAPU@腰が痛い...
01/08/31 06:33ID:hOKxRgGgUnicode は良く分からないので具体的な変換処理は書きませんが。
s{(?:\&\#(\d+);|([\x20-\x7e])|(.))}{
if(defined $1) {
"[$1]";
} elsif(defined $2) {
"<$2>";
} else {
"($3)";
}
}seg;
----
私は less などで見やすいように、コンマかタブで区切っています。
0781名無しさん@お腹いっぱい。
01/08/31 11:23ID:NujA9c4g書いたんですが意味がこんがらがって分からなくなってしまいました。
if($host !=~ /$basename/)の!=の部分なんですがこの場合
「$hostに$basenameがなければ真を返す」って意味ですよね?
そしたらif($host !~ /$basename/)も同じ意味ですよね?
でもプログラムを走らせると「!=~」は真を返して[!~]は偽を
返してくれるんですが・・・・頭が混乱してきた。。教えてください。
0782名無しさん@お腹いっぱい。
01/08/31 12:00ID:pfDOYTd.まず、!=~ という演算子はありません。
$host !=~ /$basename/ がどう解釈されるかというと、
$host != ( ~/$basename/ )
という感じです。
で( ~/$basename/ )では、まず /$basename/ を、
$_にマッチさせる正規表現と解釈します。
たぶんそれで0が帰ってそれが ~ 演算子に渡されます。
~0 は 4294967295 ですので、この時点で、
($host != 4294967295) という感じになります。
もちろん、$host は 4294967295 じゃないでしょうから
全体として真が返ってきます。
ちなみに、
$host !~ /$basename/ と同義なのは、
!($host =~ /$basename/) です。
こういう間違いは -w オプションで perl を実行することで
簡単に見つけられますよ。
0783782
01/08/31 12:04ID:pfDOYTd.0784781
01/08/31 13:30ID:gxfm2mi2ありがとうございます。わかりました。。「-w」つけたら一発でエラーが
でてきてわかりました。。説明ありがとうございました。
0785T女の竹田
01/08/31 13:35ID:4Heibaukうまくいきました!ありがとうございます。
↓こんな感じです。
$text =~ s{(\&\#(\d+);)|([\x0-\x7e])|(.)}{
if(defined $1) {
pack('n',$2);
} elsif(defined $3) {
"\0$3";
} else {
'';
}
}seg;
0786725
01/09/01 00:51ID:u.d.epncそしたら、jcode.plで、
&jcode'convert(*send_msg_body,'jis');
#$send_msg_bodyはローカル変数として、my で宣言しています。
のようなコンバートができなくなってしまいました....。
どうすれば、ちゃんと変換できるようになるのでしょう。
ホントに厨な質問でスミマセン。
0787725
01/09/01 01:02ID:u.d.epncjcode::convert(\$send_msg_body,'jis');
でOKなのでしょうか...
0788名無しさん@お腹いっぱい。
01/09/01 01:02ID:3b6idtJ.0789名無しさん@お腹いっぱい。
01/09/01 01:03ID:3b6idtJ.それでOKです。
0790725
01/09/01 01:31ID:u.d.epncありがとうございました。
今使っているjcode.plのドキュメントには載っていなかった
のですが、最新版のjcode.plに使い方が書いてありました。
0791、
01/09/02 05:33ID:4hoKlkq6飛び出すようにするには如何したらいいのでしょうか?
0792名無しさん@お腹いっぱい。
01/09/02 05:48ID:/fL4q/kI豆腐を喉に詰まらせて氏ね
0793はじめたばかり
01/09/02 09:01ID:T1M6nn4Mいまテキストカウンターを作っていて、なんとか作ることができたの
ですが、ファイルを2つに分けて1つのファイルがロックされているときは
もう1つのファイルに書き込みという形にして、同時アクセスでファイルの破損を
防ぐと同時にカウント漏れを防ぐようなカウンターをつくりたいのですが
1つのファイルがロックされているときにもう1つのファイルの方にカウントを
増やすようにするにはどの関数をつかえばよいのでしょうか?
まだはじめたばかりであまりよくわかりません。自分的にはfor文かと思ったのですが
どうも違うような気がします。
もしよろしければ皆さんの知恵を借りられればと思います。
お願いします。
0794名無しさん@お腹いっぱい。
01/09/02 10:07ID:/vkcvuzE基本がなってない。
ここでコードを書くのは簡単だが理解せずに使っても意味がなかろう。
とりあえず参考書籍スレで評判の良い本を買うのをすすめる。
0795名無しさん@お腹いっぱい。
01/09/02 14:18ID:TsnMUyQQファイルの数を好きに設定できるようにすると耐久度が増しますね。
がんばってください。 うまくいけば絶対に破損しないロック方式になります。
0796名無しさん@お腹いっぱい。
01/09/02 15:29ID:lAk/mI7A0797名無しさん@お腹いっぱい。
01/09/02 15:43ID:3zvuzTqoなつかしー
うけた!
0798名無しさん@お腹いっぱい。
01/09/02 17:49ID:EuE1F3p.0799名無しさん@お腹いっぱい。
01/09/02 18:04ID:YqVc4g/kでHTMLを書き出し、HTML中で外部のjavascriptや、CSSファイルを使いたいのですが、
読んでくれません。
print "<STYLE TYPE=\"text/css\">\n<!--\n";
open(IN, "***.css");
print while (<IN>);
close(IN);
print "\n//-->\n</style>\n";
こうするしかありませんか?
とほほのperl入門はよく読んだのですが、特にこれに関係しそうなことは
書いてありませんでした。
よろしくお願いします。
0800名無しさん@お腹いっぱい。
01/09/02 18:14ID:79Ih1PPkprint "<LINK rel=\"stylesheet\" href=\"./base.css\" type=\"text/css\" media=\"screen\">";
これでいいじゃん
0801名無しさん@お腹いっぱい。
01/09/02 18:23ID:YqVc4g/kありがとうございました。
CSSのほうは読んでくれました。
でもまだjavascriptのほうが動きません。
<script language=\"JavaScript\" src=\"***.js\">
</script>\n"
これではまずいでしょうか?
0802名無しさん@お腹いっぱい。
01/09/02 18:28ID:H3IIufEo板違いカエレ!
http://tohoho.wakusei.ne.jp/js/write.htm#jsfile
0803名無しさん@お腹いっぱい。
01/09/02 18:37ID:YqVc4g/klanguage=\"javascript\"が悪かったみたいですね。
これが書いてあっても、CGIで書いたのではないHTMLでは
ちゃんと参照してくれるんですよ。
帰れといいつつ、javascript質問スレではなく、目的のページにリンク
してくれていて、親切ですね。ありがとう。
0804名無しさん@XEmacs
01/09/02 23:20ID:.hTQgQWMuse DBI;
use strict;
use CGI;
use Date::Calc qw(Today Add_Delta_Days);
#パスの設定
my $nkf = '/usr/local/bin/nkf';
#オブジェクトの生成
my $q = new CGI;
#出力文字コードの設定
open HTML, "|$nkf -s";
select(HTML);
$|=1;
#html表示
print $q->header(-expire=>'now');
print $q->start_html(-title=>'bbs',-bgcolor=>'#DDDDDD');
print "掲示版";
print $q->hr;
print $q->start_form(-method=>'POST',-action=>'./bbs2.cgi');
print $q->textarea(-name=>'msg',
-rows=>3,
-column=>16);
print "<br>\n";
print $q->submit(-name=>'submit',-value=>'submit');
print $q->end_form;
print $q->end_html;
close(HTML);
0805名無しさん@XEmacs
01/09/02 23:24ID:.hTQgQWM日本語で掲示版とブラウザ表示しようとすると
internal server erorがおきます。
perl -c bbs2.cgi
では、
Global symbol "$B7G" requires explicit package name at bbs2.cgi line 22.
bbs2.cgi had compilation errors.
といわれるので、文字コードがおかしいみたいなんですが、
どうしたらなおりますか?
0806名無しさん@XEmacs
01/09/02 23:25ID:.hTQgQWMパソコンのブラウザで表示しようとするときに起こるエラーです。
i-modeはためしてません。
0807名無しさん@XEmacs
01/09/02 23:33ID:.hTQgQWMopen HTML, "|$nkf -e";
としても結果は同じです。
0808名無しさん@お腹いっぱい。
01/09/02 23:34ID:q3o1psmo@@ -19,7 +19,7 @@
#html表示
print $q->header(-expire=>'now');
print $q->start_html(-title=>'bbs',-bgcolor=>'#DDDDDD');
-print "掲示版";
+print '掲示版';
print $q->hr;
print $q->start_form(-method=>'POST',-action=>'./bbs2.cgi');
print $q->textarea(-name=>'msg',
0809名無しさん@XEmacs
01/09/02 23:37ID:.hTQgQWM0810初心者2号
01/09/02 23:40ID:rbOW5x.6がいしゅつかもしれませんが、教えてください
入力フォームで電話番号など半角数字の入力のみに限定させたいのですが、
どうしたらいいでしょうか?
0811名無しさん@お腹いっぱい。
01/09/02 23:42ID:H3IIufEoif($tel =~ /\D/){&error('半角数字のみです');}
0812名無しさん@お腹いっぱい。
01/09/02 23:52ID:q3o1psmo多分元のスクリプトは JIS Code で書いているかと思うのですが
問題なのは「掲示板」という文字列がバイト列としてどう表現
されているかという事です
> echo '掲示版' | nkf -j | hd
とかすれば分るかもしれませんが, 「掲示板」をバイト列レベルで見ると
$B7G と見なせる部分が含まれるので " で囲まれてると変数を展開しようとして
エラーになります
別解として元のスクリプトを EUC に変換しても大丈夫だと思います
0813名無しさん@お腹いっぱい。
01/09/03 01:42ID:3oz.BmnQ$line =~ s/,/<>;/g;
$line =~ s/<b>//g;
$line =~ s/</b>//g;
をして、外部へのリンクは<a>タグを外して
自スレリンクの<a href="http://saki.2ch.net/test/read.cgi?bbs=
ana&key=988911584&st=7&to=7&nofirst=true" target="_blank">
を<a href="../test/read.cgi?bbs=
ana&key=988911584&st=7&to=7&nofirst=true" target="_blank">
という風にしたいです
どのように書けばよいでしょうか
0814名無しさん@お腹いっぱい。
01/09/03 01:49ID:W9dhAgAc$line =~ s/<a href="http:\/\/saki\.2ch\.net/../g;
$line =~ s/<a href="http.*?">//g;
とここまで考えて</a>の削除を忘れてたことに気付いた。
スマン。
0815814
01/09/03 02:02ID:W9dhAgAcしかも間違えてるし・・・。
$line =~ s/<a href="http:\/\/saki\.2ch\.net/<a href="../g;
$line =~ s/<a href="http.*?">//g;
0816pp
01/09/03 05:49ID:LMjVYZAM0817test
01/09/03 06:55ID:EfBvrGB.0818813
01/09/03 22:38ID:XIk6iDJI$url=$1;
$lines[$i] =~ s/<a href="http.*?<\/a>/$url/g;
解決しました
0819名無しさん@お腹いっぱい。
01/09/04 01:34ID:jaQVJtkgファイル取得部分は人様のものやこちらのスレッドなどを参考にしてなんとか出来たのですが、
もし(たとえば hoge.html)をすでに取得していた場合
旧hoge.html→hoge.html.1
とりネームする、しかし hoge.html.1 がすでにある場合は hoge.html.2 にする
その後どんどん、.3 , .4 , .5 と増やしていく
という処理をしたいのですが書き方がわかりません
やりたいことはもし更新されていても消さずに残しておきたい、ということです
教えていただけるとうれしいです
#!/usr/bin/perl
use strict;
use constant BACKUP_LIMIT => 5;
use constant FILE_NO_SEPARATOR => '.';
my $html_file = 'hoge.html';
my $received_htmlstr = '<!DOCTYPE html ...';
if (-e $html_file) {
my $oldest = join(FILE_NO_SEPARATOR, $html_file => BACKUP_LIMIT);
unlink $oldest if -e $oldest;
for (my $i = BACKUP_LIMIT-1; $i>0; --$i) {
my ($before, $after) = map join(FILE_NO_SEPARATOR, $html_file => $_), $i, $i+1;
next if not -e $before;
rename $before => $after;
}
rename $html_file => "$html_file.1";
}
use IO::File;
IO::File->new($html_file, 'w')->print($received_htmlstr);
__END__
#!/usr/bin/perl
use strict;
use constant FILE_NO_SEPARATOR => '.';
my $html_file = 'hoge.html';
my $received_htmlstr = '<!DOCTYPE html ...';
sub max { my $max = shift;
foreach (@_) {
$max = $_ if $max < $_;
}
return $max;
}
if (-e $html_file) {
my $file_format = qr/^\Q$html_file\E\.([1-9]\d*)$/;
require IO::Dir;
my $max_idx = max map { /$file_format/o; $1 } grep /$file_format/o, IO::Dir->new('.')->read;
for (my $i = $max_idx; $i>0; --$i) {
my ($before, $after) = map join(FILE_NO_SEPARATOR, $html_file => $_), $i, $i+1;
next if not -e $before;
rename $before => $after;
}
rename $html_file => "$html_file.1";
}
use IO::File;
IO::File->new($html_file, 'w')->print($received_htmlstr);
__END__
0822820,821
01/09/04 03:31ID:uLaYbm/k0823819
01/09/04 03:41ID:jaQVJtkgさっそくレスいただいて恐縮です
わかりやすく教えていただいてうれしいです ありがとうございました
>名前欄に #1, #2 と入れたら妙な文字が出てしまった。なんだろ?
----------------
1 名前:ひろゆき ◆NdKrQ0UM 投稿日:2001/08/09(木) 16:26 ID:OLqDn5LQ
というわけで、名前欄に#をいれて適当な文字列を入れると、
ひとりキャップが使える機能を足してみました。
ほえほえ#password
って感じです。
4 名前:ひろゆき ◆NdKrQ0UM 投稿日:2001/08/09(木) 16:32 ID:OLqDn5LQ
キャップがなくても、本人であるという証明になりますです。
----------------
という機能らしいです
ひとりキャップ 略して 「トリップ」と呼ばれているようです
0824pp
01/09/04 04:11ID:BE/ASauk今、Active Perlをインストールして
早速拡張子.plにして、いろいろやろうかと
思っていたのですが、.plをダブルクリックすると
コマンド画面が出てきて、すぐに消えてしまいます。
これはなぜでしょうか?
問題無くインストールしたのですが・・・
0825名無しさん@お腹いっぱい。
01/09/04 04:55ID:oDOAY7oIMS-DOSプロンプト開いて、コマンドラインで
perl hoge.pl
とか打つべし
0826pp
01/09/04 05:08ID:BE/ASaukわざわざレスどうもです。
コマンドまたはファイル名が違います
と、なってしまいます。
0827825
01/09/04 05:17ID:oDOAY7oIそれperl.exeにパスが通ってないと思うんだけど
もしかしてpathの設定方法とか知らなかったりする?
だとすると説明が面倒なんで俺はパス(←笑うところ)
0828pp
01/09/04 05:21ID:BE/ASaukpathの設定方法知らなかったりします。
取り敢えず、検索してみます。
わざわざ有難う御座います。
0829結城杏奈
01/09/04 08:43ID:WtCIi7QQファイルをおコピーしたいんですけど出来るだけシステム依存
したくないのですわ。
`cp hoge hoe`なんてやるとゲイシなPCだとおキック喰らっちゃって
大変ですわよ
システムコールせずにファイルコピーする関数なんていうのは
ありませんかしら?
open (IN,"<hoge");
open (OUT,">hoe");
while (<IN>){
print OUT $_;
}
これってなんだか田舎娘みたいでとってもアンニュイですの。。。。
0830名無しさん@お腹いっぱい。
01/09/04 08:56ID:MBD3zVhIネカマは死んで。
0831名無しさん@お腹いっぱい。
01/09/04 08:58ID:btJZCxgM0832名無しさん@お腹いっぱい。
01/09/04 09:02ID:SH4sstc2use File::Copy;
copy("hoge", "hoe");
そのソース見ると、最初にシステム見分けてから、
それぞれ最適な関数(もちシステム依存ばりばり)を
呼び出してるつうしろものでっせ。
都会派のネカマちゃんにはお気に召さんかもな。
0833pp
01/09/04 09:04ID:BE/ASaukhello.pl をダブルクリックで
DOS窓起動→hoge.plが起動→hoge.pl終了→DOS窓終了→一瞬で窓閉じる
ってのはどうやったら、直るのでしょうか?
MS-DOSプロンプトのプロパティの
プログラム終了時にウィンドウを閉じる
のチェックは外しているのですが・・・
0834結城杏奈
01/09/04 09:58ID:WtCIi7QQ>>831 (ぽっ
>>832
ありがとうですの、なるべくシステムコールしない
&&標準モジュールをつかうなら田舎娘の出番になるのね
なんて中途半端なのかしら! やですわ
病的折衷主義のガラクタ出力機ですわ
でもそんなperlちゃんが楽しいですの。
かさねがさね感謝ですわ。
>>833
その問題はわたくしが通うバッキンガム高校のBBSでも
いつも書き込まれてますのよ。
わたくしは NTりすと ですけどDOSでの移動が面倒でしたら
さぎょうフォルダのうえで
explorerから右クリックでコマンドプロンプトを開く
と言うのはいかがかしら? 窓の手なんかにそう言う設定
があったとおもいますのよ。
あとはDOSのヒストリ機能なんてのを使うとちょっと便利ですわ
一度dirとかにゅうりょくした後にF1を押していくとよいですの
doskeyなんて検索すると、もうちょと便利かもですわ
0835名無しさん@お腹いっぱい。
01/09/04 17:52ID:cTMkgC.w現在LinuxMLD5でperlをやっているのですが
最初の行にちゃんとした#!/usr/bin/perlといれているのですが
うまく実行されません。
which perlとかでやってもちゃんとあってるし、perl -vとかでも
インストールされていることが確認できます。
今はしかたなく実行前にプログラムの前にperlといれてやっていますが
面倒で仕方ありません。
これってどうやったら動作するのでしょうか?動かない原因が特定できません。
どなたか助けてください。
0836名無しさん@お腹いっぱい。
01/09/04 18:02ID:LkqU29Ks0837_gunzip
01/09/04 18:31ID:E8XEZJvU./script_name.pl
^^
0838名無しさん@お腹いっぱい。
01/09/04 20:31ID:FOQJEj12>>835
同じく chmod 755 ./scriput_name.pl
0839名無しさん@お腹いっぱい。
01/09/04 20:33ID:FOQJEj12Rubbish Lister か。。。 sage
0840835
01/09/04 21:50ID:2Iq0qb32だめでした。
777でもだめでした。
何が原因なのでしょうか?
0841名無しさん@お腹いっぱい。
01/09/04 22:05ID:FOQJEj12#!/usr/local/bin/perl --
↑ 一行目こうしたらどうなる?
0842名無しさん@お腹いっぱい。
01/09/04 22:50ID:cFEUOiVA0843p
01/09/05 04:33ID:sTSRf1BY↑すいませんがどう言う意味か教えて下さい。
0844名無しさん@お腹いっぱい。
01/09/05 05:10ID:L1KgWH9s「"\N"の後にあるべきブレース記号が書いてねーぞ」と言われておる。
\N{hoge}はギリシャ文字なんかを出すためのエスケープシーケンスらしい。
詳しくはperldoc charnameを参照。
ていうかそんなもん使ってんの?"\n"のタイプミス?
0845p
01/09/05 06:07ID:sTSRf1BY申し訳ないです。解決しました。
わざわざレスどうもです。
0846名無しさん@お腹いっぱい。
01/09/05 10:21ID:.KHO7txoどう解決したか書かんかい(*゚Д゚)ゴルァ!
0847名無しさん@お腹いっぱい。
01/09/05 11:37ID:wcZpsAAM0848名無しさん@お腹いっぱい。
01/09/05 12:51ID:zxq1XBSQ0849名無しさん@お腹いっぱい。
01/09/05 12:55ID:MuDbSDcw同じような奴見てるかもとかは考えね訳??
それとも自分が分かった事は重要機密にしてえのか? w
まーどうでもいいや
0850名無しさん@お腹いっぱい。
01/09/05 13:38ID:JJ49xIDw以下のスクリプトだと『タイムアウト』が出力されません。
for文内のelse以下に別のif文として書くときちんと出力されるのですが・・・。
なぜなんでしょう?
この文だと『$lockfileがあって、なおかつ$maxが0なら』ということになるのか
な?うーん。混乱してきた。
$lockdir = "./lock";
$lockfile = "$lockdir/lockfile.txt";
$min = "0";
for ($max = "5"; $max >= $min; --$max) {
if ( -e $lockfile ) {
sleep(1);
print "$max\n";
} elsif ($max == "0") {
print "タイムアウト\n";
exit;
} else {
open(FILELOCK, ">$lockfile");
close(FILELOCK);
exit;
}
}
0851名無しさん@お腹いっぱい。
01/09/05 14:00ID:ORFkPfok>} elsif ($max == "0") {
ここじゃないかな?
0852名無しさん@お腹いっぱい。
01/09/05 14:47ID:qCTwY1FI$lockfile = "$lockdir/lockfile.txt";
$min = "0";
for ($max = "5"; $max >= $min; --$max) {
if ( -e $lockfile ) {
sleep(1);
print "$max\n";
if($max == "0"){
print "タイムアウト\n";
exit;
}
} else {
open(FILELOCK, ">$lockfile");
close(FILELOCK);
exit;
}
}
0853851
01/09/05 14:52ID:ORFkPfokうわ、ちゃんと見てなかった。
すんまそん。
0854名無しさん@お腹いっぱい。
01/09/05 15:13ID:jJXUOw7Yif-elseは、条件一致したらそれ以下のブロックを飛ばすでしょ。
今のif-else文だと、$lockfileがあって$maxが0の時(タイムアウトと出力したい時)は
一番はじめのifブロックで終わってしまってる。
0855725
01/09/05 16:17ID:r9VXJuCk謎が解けました。ありがとうございます。
そこで、また教えていただきたいことがあります。
たとえば、
-- a.pl
$val1 = 'イッテヨシ';
$val2 = 'オマエモナー';
-- b.pl
#!/usr/bin/perl
require './a.pl';
print "$val1\n$val2";
exit 0;
とすると
イッテヨシ
オマエモナー
という出力結果が得られます。ところが、use strict;を使って、
-- a.pl
my $val1 = 'イッテヨシ';
my $val2 = 'オマエモナー';
-- b.pl
#!/usr/bin/perl
use strict;
require './a.pl';
print "$val1\n$val2";
exit;
とするとエラーになってしまいます。どこが間違っているのでしょうか?
多分 my で局所変数宣言しているので、a.pl内で定義した変数が外に
出られないのだとはおもうのです。
他にやり方がある、または無いのでしょうか?
ご教授お願いします。
0856名無しさん@お腹いっぱい。
01/09/05 16:33ID:69W8SPrgsub itteyosi {
my $val1 = 'イッテヨシ';
my $val2 = 'オマエモナー';
return ($val1,$val2);
}
1;
-- b.pl
#!/usr/bin/perl
use strict;
require './a.pl';
my @val = itteyosi();
print "$val[0]\n$val[1]";
exit;
0857( ・∀・)y━~~
01/09/05 21:58ID:MQF/.FlQuse vars qw($val1 $val2);
ぢゃだめですか・・・?
今のperlなら
our ($val1,$val2);
かな。。
my使えないけど、myはそういうものだとあきらめておいらは深追いしていません。
0858835
01/09/05 22:11ID:MH.oUUAs>↑ 一行目こうしたらどうなる?
bash : ファイル名 : command not found
と出ます。
0859名無しさん@お腹いっぱい。
01/09/05 22:43ID:sW4ruaF.外部ファイルから取り込むのは定数なんだろうから、
-- a.pl
use constant VAL1 => 'イッテヨシ';
use constant VAL2 => 'オマエモナー';
1;
--b.pl
use strict;
BEGIN { require './a.pl'; }
print VAL1."\n".VAL2;
って感じがいいと思うよ。
単純にダブルクォートに入れられないのは不便かもしれないけど。
0860名無しさん@お腹いっぱい。
01/09/05 22:59ID:do.WshJoそりゃパス間違えてるよ、つか -- を付けろって言ってるんだろ
後、出来たように見えて本当は7**になってないとか
-rwxr-xr-x こうなってるか?
実は/usr/bin/perl5 だったとか
とりあえずcatでもviでも良いからLinuxで書いてみ
プロンプトで cat >hoe.pl ってやって、
#!/usr/bin/perl
print "test";
これだけ入れる、終わったら Ctrl+z で終了。
chmod 755 ./hoe.pl
./hoe.pl
これで動かなきゃしらない。
0861名無しさん@お腹いっぱい。
01/09/05 23:35ID:ZkxQdk2c0862835
01/09/05 23:41ID:O0y3PBhMやっぱりダメでした。
お手上げです。何が原因かすら不明…
0863名無しさん@お腹いっぱい。
01/09/05 23:46ID:EuQ8BRvI$ which perl
の結果を書いてみ。念のため。
0864名無しさん@お腹いっぱい。
01/09/05 23:58ID:niWMGH6kそれより、どんなエラーメッセージなのかを・・・・
0865名無しさん@お腹いっぱい。
01/09/06 00:10ID:jxYvqj8.0866名無しさん@お腹いっぱい。
01/09/06 00:17ID:4627I8LAread(STDIN, $commandline, $ENV{'CONTENT_LENGTH'});
} else {
$commandline = $ENV{'QUERY_STRING'};
}
どうみても普通のアレなんですけど。。。
method="GET"だと$commandline は取れるのに、
method="POST" にすると$commandline に文字列が入りません。
なんでGETだと取れて、なぜPOSTだと取れないのでしょうか?
同じところでずっとはまっています。
何か悪いところがないでしょうか?よろしくお願いします。
0867850
01/09/06 00:43ID:ESQY.pDMなるほど!
if文は評価式が真なら実行文を実行して終了し、偽なら実行文は実行せずに
elsif文を評価するということですね。逆に言えばif文が偽にならないとelsifは
評価されない・・・。
ありがとうございました。
0868名無しさん@お腹いっぱい。
01/09/06 00:58ID:lkkYIUpYwin98/ActivePerl/Httpd
0869名無しさん@お腹いっぱい。
01/09/06 01:11ID:UxFZPp2oそもそも「use strict;」が何なのかを学ぶと良いと思われ。
0870名無しさん@お腹いっぱい。
01/09/06 01:30ID:4E8AwmEc通常、そういうことをしようとするときは、Exporter を使う。
# a.pm
package a; use base Exporter; @EXPORT = qw($val1 $val2);
$val1 = 'イッテヨシ'; $val2 = 'オマエモナー'; 1;
# b.pl
use a; print "$val1\n$val2";
>>855 >>857
my を使った変数をエクスポートする時は
*global = \$private;
とすると、実質 $private はレキシカルでなくなることを利用してimport を自分で書けば一応可能…かも?
というのも、??? の行を消すとなぜかうまくうごかなかったから。
# a.pm
package a; @EXPORT = qw($val1 $val2);
my $val1 = 'イッテヨシ'; my $val2 = 'オマエモナー';
sub import {
my $c = caller;
my @tmp = ($val1, $val2); # ???
foreach my $e (@EXPORT) {
my ($prefix, $e_sym) = ($e =~ /^([\$\@%*&]?)(.*)/); $prefix = '&' unless $prefix;
*{$c.'::'.$e_sym} = eval "\\$prefix$e_sym"; die $@ if $@;
}
}
1;
(改行が多すぎるらしいため、つめて書いてます)
0871名無しさん@お腹いっぱい。
01/09/06 01:35ID:lkkYIUpYなんなのかは知ってるけど、仕様の依存性とかのデータが見当たらないんですよぅ。
0872名無しさん@お腹いっぱい。
01/09/06 04:57ID:ugAsC9SMいやね、「Apacheがないせいでuse strictが使えない?」みたいなことを
書かれた時点で、こいつわかってんのかと思っちゃったりするわけですよ。
ま、そんなのはどうでもいいんだけど、
use strictが使えないって具体的に何がだめなん?
0873835
01/09/06 09:51ID:0KMUTKPIスクリプトを/usr/binにもっていってperlのあるところで実行すると大丈夫でした。
perlのあるところでしか実行できないところをみると
perlのパスが通ってないみたいです。
こんなこと初めてです。一応検索してはいるのですがそれらしきものにヒットしません。
どうすれば解決するんでしょうか?
0874名無しさん@お腹いっぱい。
01/09/06 10:16ID:cEL2v6yw多分違わないか?
835 で which perl や perl -v が期待した動作をしたと書いているの
だから perl が PATH の通ったところに無いとは思えないのだが
単純にスクリプトの起動のさせ方が間違ってると思うのだが
shell 上からスクリプトをどうやって実行させてる?
スクリプト名を hoge.pl (command prompt を >) として
> hoge.pl
で実行させようとして無いか?
0875名無しさん@お腹いっぱい。
01/09/06 10:27ID:MMkqxmBg0876857
01/09/06 11:01ID:uCOK.3Dsそーゆーふーにやるんだ。今度から使うよ。ありがと〜ヽ(´ー`)ノ
後半のは、良く分からないし、やっぱプライベートな変数を外に出すのは不自然ってことで、気にしないで置きます。
多分>>855も想定しているのは定数だけを記述したファイルを用意したいのだろうし。
それでも外に出したい時は、Getほげほげ関数作ったほうが楽そうですからね(;´∀`)
>>859も、やりかたとしては勉強になりました。
が、""の中に入れられないのは痛い。。。
0878名無しさん@お腹いっぱい。
01/09/06 12:00ID:WXMJq9Po#! /usr/bin/env perl
でも同じでしょうか
0879名無しさん@お腹いっぱい。
01/09/06 12:35ID:I8HVXYHg今は
if ((join "\t", @a) eq (join "\t", @b)){
なんか処理
}
ってやってます。
各要素にタブ文字を使っていなければこれで十分ですか?
if ($a[0] eq $b[0] && $a[1] eq $b[1] && ...
は見にくいからあんまりやりたくない・・・・
0880名無しさん@お腹いっぱい。
01/09/06 13:35ID:cGMUUJcs十分と思われます。ただ、配列のサイズがでかいと巨大な文字列が
生成されることになるので、一個一個調べたほうがいいかもね。
for ($i=0; $i<=$#a; $i++) {
unless($a[$i] eq $b[$i]) { 違ってた場合のなんか処理; }
}
0881名無しさん@お腹いっぱい。
01/09/06 14:29ID:6hy8D4ok順番も一緒か調べたければ
if ("@a" eq "@b") {
hogehoge;
}
が一番簡単かも…。ちなみに要素が同じかどうか調べるなら、
joinする前にsortする必要あり!
0882名無しさん@お腹いっぱい。
01/09/06 14:33ID:8PdBtivg('aaa', 'bbb') と ('aa', 'abbb') が
一緒になっちゃう
0883名無しさん@お腹いっぱい。
01/09/06 14:35ID:813rKJ7sが少なくともスペースやタブよりはましかと。
0884名無しさん@お腹いっぱい。
01/09/06 14:38ID:4d/uz2yQ要素にタブが含まれない配列のタブで結合するんだから大丈夫だべ。
0885882
01/09/06 14:43ID:8PdBtivg0886725(=855)
01/09/06 15:20ID:rIfbk0F2>多分>>855も想定しているのは定数だけを記述したファイルを用意したいのだろうし。
そうです、その通りです。
a.plの変数をb.plとc.plで共有したいなぁと考えていたのです。
教えの通り、hoge.pm作って、use hoge;で上手く行きました。
ありがとうございました。
0887879
01/09/06 15:51ID:I8HVXYHgちょっと調べたら、>>883 の通りに join $; , @a; の方がいいみたいですね。
文字列は結合後でも500bytesくらいだから大きすぎってことはないと思いますが
joinよりいい案ってあんまりないですか?
0888名無しさん@お腹いっぱい。
01/09/06 19:00ID:lOmO3j1cウチの環境(Windows2000 + Active Perl v5.6.1)ではデフォルトで64なのですが、
これはOSまたはperl処理系の仕様上の上限なのですか?
それとも、再定義でもすれば増やせるのでしょうか?
0889888ゲット!
01/09/06 19:04ID:lOmO3j1cあ、同時に、という意味です。
0890core
01/09/06 19:36ID:n.BZs/nc./hogehoge.plというように./をつけないとうまく機能しません。
./をつけなくても機能するようにはできないでしょうか?
使っているのはRedHatLinuxでperlは5.6です。
0891名無しさん@お腹いっぱい。
01/09/06 19:53ID:gTPPtJlU0892ひまぢん
01/09/06 19:59ID:ji/LQ9h6他にも良いスレ探して適当に置いとくんでよろ
>>890
パスを通すってやつ、bashだっけ?の.profile辺りをいじるべし
検索すればFAQごろごろ、但しセキュリティー上よろしくないのでよろ
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
0893$PATH
01/09/06 20:01ID:7zClg5yE0894名無しさん@お腹いっぱい。
01/09/06 20:06ID:8PdBtivg(root以外の場合ね。)最近インストールしてビクーリ
したよ。というわけで >>890 はSlackwareに乗り換え
を推奨。
0895名無しさん@お腹いっぱい。
01/09/06 20:49ID:hH7VhveIActivePerlでperldoc perlforkを見たら、forkの最大数は
システムのいろいろな制限で上限が決まる、とかなんとか書いてあったよ。
WinNTだとスレッドの最大数が64て制限があったかもしれない。
0896名無しさん@お腹いっぱい。
01/09/06 21:43ID:???PATH="$PATH":.
# source ~/.bashrc
0897888
01/09/06 22:12ID:lOmO3j1cドキュメント見ました。
perlのみでの変更は出来そうも無いですね。
ありがとうございました。
0898名無しさん@お腹いっぱい。
01/09/07 04:45ID:???新スレ立てるときに参考リンクに入れましょー。
0899超超初心者
01/09/07 10:08ID:24e7eVxc今やりたいことはUNIX環境上にあるファイルを開いて半角カタカナを
全角カタカナにしようとすることです。
そういう質問はこちらで聞いても構わないでしょうか?
またもし過去ログに同質問があったらごめんなさい。
過去ログ見たのですが、なかったように見えましたので.....。
レスお待ちしてます。
0900名無しさん@お腹いっぱい。
01/09/07 10:24ID:???http://www.din.or.jp/~ohzaki/perl.htm#JP_HK2ZK
この辺。
0901初心者
01/09/07 12:25ID:pn62mP8wある変数に入っている文字列が「全角カタカナ」のみという
正規表現の書式を教えてください。
「全角ひらがな」はいろいろと検索してでてきました。
$hoge =~ /(?:\x82[\x9F-\xF1])/
でした。
0902名無しさん@お腹いっぱい。
01/09/07 12:35ID:???1に「>>2のリンクを一通り見てみよう。」と書いてるのが見えませんか?
0903わからず
01/09/07 18:01ID:???配列とハッシュの混在したものを渡して、
それぞれを使うということはできないのでしょうか?
グローバル変数にしてしまえば、、とも思ったのですが。どうしてもローカル変数でやりたくて。
リファレンスや型グロブのあたりを調べたのですが、正直わかりませんでした。
解決の手ほどきをお願いします。
↓こんなことをしたいです。
@list = &getList;
%hash = &getHash;
$str = &routine(@list, %hash); # これがやりたい
sub routine {
my(@list, %hash) = @_; # これも希望
my(@keys) = keys(%hash);
my ($a, $b, $s, $str);
foreach $a (@list){ # こんな感じで使いたい
foreach $b (@keys){
$s = $a + $b;
}
$str .= $s;
}
return $str;
}
0904わからず
01/09/07 18:03ID:3Gw2HsKo@list = &getList;
%hash = &getHash;
$str = &routine(@list, %hash); # これがやりたい
sub routine {
my(@list, %hash) = @_; # これも希望
my(@keys) = keys(%hash);
my ($a, $b, $s, $str);
foreach $a (@list){ # こんな感じで使いたい
foreach $b (@keys){
$s = $a + $b;
}
$str .= $s;
}
return $str;
}
0905名無しさん@お腹いっぱい。
01/09/07 18:29ID:???routineを呼ぶとき、リファレンスを渡す形でいい?
それでよければこんな感じで。
$str = &routine(\@list, \%hash);
sub routine {
my($list_ref, $hash_ref)=@_;
my @keys=keys(%$hash_ref);
foreach my $a (@$list_ref) {
:
以下略
0906わからず
01/09/07 18:48ID:???仰せの通りでした!できました!!
サンプル見てがんばってたとき、「@$hash_ref」とやっていました。(サンプルがそうだったので・・・)WebProgしかやったことないので、リファレンスとかポインタとか微妙にわかってません・・・。
勉強します!!
ありがとうございました!
0907Ne! Perl
01/09/07 20:41ID:???> これは、いくつかのperlモジュールを利用して動きます。
> それらは全てフリーで配布されているものです。
>
> Mail::POP3Client;
> Mail::Sendmail;
> MIME::QuotedPrint;
> MIME::Base64;
> CGI;
> 'jcode.pl';
って書いてあります。
共有サーバーなんですけど、どのフォルダに入れればいいんですかね?
パーミッションはいくつに…?
もろ、初心者質問でスマソ。
0908なー
01/09/07 21:08ID:LmWrXSYQ0909maji?:res
01/09/07 21:21ID:jyahklrMどこでも突っ込んでパスを叩いてください。
パーミッションはそれぞれの指定に従って。
この感じだとメールフォームだと思うけど
そもそもsendmailは使用可能かどうかも調べてね。
0910名無しさん@お腹いっぱい。
01/09/07 23:30ID:???>>2-3
というようなのURLみたいに変換するのどーやればスマートに書けますか?
初心者なんで解説付だと嬉し。
0911名無しさん@お腹いっぱい。
01/09/07 23:50ID:???ここに行って何も考えずにソースをパクリましょう。
後、自動リンク、正規表現、とかで検索すれば色々出てくるので
これも又何も考えずにそのままコピペして下さい。
とにかく解ろうとしない事です、正規表現メモなんで見るもんじゃないよ
0912名無しさん@お腹いっぱい。
01/09/08 00:01ID:???これでいいだろ (ワラヒ
0913名無しさん@お腹いっぱい。
01/09/08 14:21ID:???$comment =~ s|(http://[\~\./\?\=\&\:\-\%\w\$\#]+)|<a href="$1">$1</a>|;
上とかこれを参考に自分で変えていけば面白いと思うよ。
0914910
01/09/08 17:39ID:???ありがとうございます。
911のリンク先には人間が書いたとは思えない
正規表現とかもありますね…(汗
if (index($str, $keyword) > -1) {正規表現 }とindex使うとスピードUPするなど勉強になりました。
URLのリンクではなくてスレッド内レスへのリンクで
>>911と>>911-913
というような2種類をひとつの正規表現で書けるのかな?
僕はどうしても>>911マッチ後-913がついているヤツをマッチと2つ書かないと
うまく出来ません。
0915名無しさん@お腹いっぱい。
01/09/08 18:34ID:???@INCに付いてなのですが、任意のディレクトリを追加したいと考え
push (@INC,"./module/") などとしても全くダメな様です。
これはPerl自身が叩かれた時にセットしなければならないのでしょうか
それともう一つ、strictモジュールなのですが何故か、Perl5.6 on Cygwin
な環境では一切機能しない様です。'vars'としても何事もなく危険な構文が
通ってしまいます。 5.0 FreeBSD では問題無く動いているのです。
一応ソースを見てみたものの、短いけれど理解出来ませんでした。。
他の標準モジュール(Cwdなど)は全く問題無く動いています。
ヒントを頂けたらとても嬉しいです。
0916名無しさん@お腹いっぱい。
01/09/08 19:01ID:???| >>911と>>911-913
| というような2種類をひとつの正規表現で書けるのかな?
うー。俺もかけません。正規表現の中で条件判断とかするのかな。
正規表現道場スレに移って偉い人に聞いてみるか?
>>915 前半
@INCはperl起動時に設定しないといけないので、そういうのは
BEGINブロックに入れるんだと思った。
BEGIN { push (@INC,"./module/"); }
0917名無しさん@お腹いっぱい。
01/09/08 19:01ID:???BEGIN{ unshift(@INC, "$ENV{HOME}/perl5lib") }
#or
use lib "$ENV{HOME}/perl5lib";
cygwinのPerlでもstrictは普通に動くが?
$ perl -Mstrict -e 'print $var'
Global symbol "$var" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.
$
0918>914
01/09/08 19:41ID:???>というような2種類をひとつの正規表現で書けるのかな?
たとえば、
$subject =~ s|>>(\d+)(-(\d+))?|qq(<a href="$this_script?bbs=$board&key=$key&st=$1&to=).($3 or $1).qq(&nofirst=true" target="_blank">>>$1$2</a>)|eg;
とか・・・。
0919918
01/09/08 19:42ID:???0920名無しさん@お腹いっぱい。
01/09/08 20:18ID:???どうも、即レス感謝です。勉強になります。なるほど!
BEGINブロックとENDブロックは特殊な読まれ方をするんですね。
>>BEGIN ブロックは即座に実行されるため、
>>サブルーティンなどの定義を他のファイルから読み込んで、ファイ
>>ルの残りの部分から見えるようにすることができます
と書いてるので、これは他にも便利そうです ^^
>$ perl -Mstrict -e 'print $var'
あれ??? 僕も今やり直したらちゃんと動いています。 おかしいな。。
確かに同じソースを、Freeにアップして両方catして確かめた筈なのですが、、
ごめんなさいです、今はちゃんと怒られています。
一々FTPで上げてるから分からなくなったのかな、、環境を考えないと。。。
勉強になります、ありがとう御座います。
0921名無しさん@お腹いっぱい。
01/09/08 20:27ID:???えっと、僕も2ch型のソースを見てみました。
2段階に分けてる様です。
ログに吐き出す操作では。。。
bbs.cgiで ('>>\d' 形式は変換、http〜はそのまま)→ログに書き込み→
→読み出し時に (read.cgiでhttp〜を自動リンク)
index2.htmlの生成では。。。
bbs.cgiで、まず('>>\d')形式を変換、次に(http〜)形式を変換→print
としてる様です。2回正規表現くぐってるんですね。
何故 '>>\d' を変換してログに書くのかが謎ですが、、
多分後から追加された機能だから、read通す時にまずい事になるのかな。。。
0922920
01/09/08 22:02ID:???何だかマヌケですが原因が分かりました (-_-
perl -Mstrict -e 'print "$a";'
だとダメで、、
perl -Mstrict -e 'print "$hoge";'
だとちゃんと動いてます。
Cygwinの方はコマンドを叩いて($aを良く使ってしまうんです)、
BSDの時はスクリプトを実行してたのが原因でした。(あほだ、、
aって何なんだろう。。特殊変数じゃない筈だし、、、、
勉強します。 strictのソースかなぁ
しかし、aとfooなんて一緒と思うから理解するのに1時間位かかった(鬱
0923名無しさん@お腹いっぱい。
01/09/08 22:03ID:???$aと$bはsortの時に使う特殊変数になっているはず。
0924920
01/09/08 22:06ID:???段々恥かしくなって来た、ROMに戻るです。
0925920
01/09/08 22:10ID:???ありがとう御座います。 アルファベットは空だと思ってた
消えますぅ 。。。。(^ ^ )サササッ
0926use Net::SMTPについて
01/09/09 02:43ID:he2UykukNTサーバで動いているプログラムで、use Net::SMTPを使って
サイト上のメールフォームからメールを送信させています。
最近、ファイヤーフォールを変えたらしいのですがその直後から
フォームからのメール送信ができなくなってしまいました。
use Net::SMTPはファイヤーウォールの設定によっては使えなくなったり
するのですか?またその場合、どの部分の設定をどう変更すればいいのでしょうか。
何もわからない哀れなカエルに知恵を授けて下さい
0927体育祭の名無しさん ◆B6fYuXhU
01/09/09 19:15ID:PuCsmJ7Mperlをつかって、cookie認証が必要なページを取得しようとしているのですが、
どうすれば用でしょうか?
普通のページの場合LWP::Simple を使用して、
get("http://〜");
などして取得できるのですが、cookieを使用する場合どうすればいいのでしょうか?
具体的には、Aページで、cookieAを取得し、
次に、Bページで、そのcookieを使用して、認証したいのです。
自分なりに書いてみたのですが、
どうすればいいのでしょうか?
http://blue.ribbon.to/~atu/TestScript.txt
よろしくお願いします。
0928名無しさん@お腹いっぱい。
01/09/09 20:00ID:???リクエストヘッダーにぶち込めば良いと思われ。
LWPにそういった機能がありそうだけど
rfc見て自分でカスタマズしてもそんなには難しくないと思われ。
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2109.html
0929名無しさん@お腹いっぱい。
01/09/10 19:02ID:mDibE0X6LWPを使うときは、そのスクリプトで基本的に問題ないみたい。
UserAgentにcookie_jarをセットすると、あとは自動的に
クッキーの読み込みも書き出しもやってくれるらしい。
↓このスクリプトでちゃんとPageAで得たクッキーをPageBに渡せたよ。
use LWP::UserAgent;
use HTTP::Cookies;
my $PageA = "http://www.my.domain/";
my $PageB = "http://www.my.domain/hoge.cgi";
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new);
$ReturnA = &HttpGet($PageA);
$ReturnB = &HttpGet($PageB);
ただしクッキーを読み書きするときは
ドメイン名に少なくともドットが2個ないとエラーになる。
だから最初 "http://localhost/" でテストしたとき
全然うまくいかなくて悩んだ。
0930ひきこもりたいっ
01/09/10 23:49ID:???良く上の方にある
$script... #-- スクリプトの名前
こんな感じの大域変数の扱いに困ってます、酷いのになると50個位あったり
して、こんな正確なので出来れば閉じ込めたいんですが、自分で考えたのは
全体を sub SETTING とかで囲んで、参照したい時は &SETTING(script)
で使うという感じです。
もっと他に良いやり方はありますか?
0931名無しさん@お腹いっぱい。
01/09/11 00:19ID:???・@Configに入れ、enumを使って定数列を作成。名前で参照[$Config[HOGE()]]
・use constantまたはsub name(){ value }で定数を作成し参照[HOGE()]
・変数を全て大文字にするだけで済ませる[$HOGE]
0932名無しさん@お腹いっぱい。
01/09/11 00:44ID:???package Setting;
our $script = "hoge.cgi";
package main;
print "$Setting::script\n";
0933名無しさん@お腹いっぱい。
01/09/11 18:45ID:.epadQJgTwnLounge Faith editionというスクリプトにクッキーを発行させたくて
悪戦苦闘しています。KENTさんのスクリプトのクッキー発行・取得の部分をとってやって見たのですが
うまくいきません。どなたか教えていただけるとありがたいです。
http://www.hpfree.com/giants/lng.txt
↑実際使っているサーバーはCGI可です。
0934名無しさん@お腹いっぱい。
01/09/11 19:48ID:???スレ違いです。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988808396
どういう値をcookieで渡したいのかを明記すれ。
0935名無しさん@お腹いっぱい
01/09/11 20:24ID:???(つーか解らなかったらAskaのをそのまま使いなよ)
~~~~~~~
んで何故ダメかと言うと多分
printする場所が間違えている(Content-typeを指定した後で吐いている)
不幸にも Set-Cookie させてくれないServerを使っている
ブラウザのクッキーがOFFになっている(・∀・)
この辺かな、確認用のスクリプト書いてみる事をおすすめする
0936名無しさん@お腹いっぱい。
01/09/11 22:13ID:dnQFE/9wやっぱりスレ違いなのかな・・・
0937名無しさん@お腹いっぱい
01/09/11 22:17ID:???渡した奴が化けるのかって感じで それ書いたらソース見る事にするわ
0938名無しさん@お腹いっぱい。
01/09/11 22:29ID:???ドコ?トクトクだったらブトバスー
0939名無しさん@お腹いっぱい。
01/09/11 22:39ID:dnQFE/9wSETはできてるのかわかりません・・・
サーバーはトクトクじゃないです。(無料じゃありません。)
0940名無しさん@お腹いっぱい。
01/09/11 22:55ID:dnQFE/9wSETできてません。
GETはできてるのかわかりません・・・
0941名無しさん@お腹いっぱい。
01/09/11 23:31ID:lMfDpcz20942941
01/09/11 23:35ID:???両国国技館につっこんでしまったようなモンだな
0943名無しさん@お腹いっぱい。
01/09/11 23:48ID:???意味がよく分からんけど、俺も興奮してるから激しく同意!!
0944名無しさん@お腹いっぱい。
01/09/12 02:09ID:???950を踏んだやつが新スレを立てる、ってことでいいっすか?
0945名無しさん@お腹いっぱい。
01/09/12 02:18ID:???初心者が書き込みしづらい状況になりうると思うから反対。
もしくは何も知らない初心者が踏んでも困るだろ。
逆に950を踏みたくないが為に初心者に対するレスが出なくなるのも困る。
これ以降の人で誰か有志が立ててくれ。
0946名無しさん@お腹いっぱい。
01/09/12 03:11ID:???Perlのページ
http://homepage1.nifty.com/nomenclator/perl/
文字コードに関する話題
Shift_JIS関係のモジュールなど
Perl初心者の部屋
http://www.harukaze.net/~mishima/perl/
定番だが何故か無いので
古いから?
0947名無しさん@お腹いっぱい
01/09/12 12:41ID:???0948名無しさん@お腹いっぱい
01/09/12 13:11ID:???, l[》《]| ヽ
/ i/ i ノノノ ))))〉 / ̄ ̄ ̄ ̄ ̄
. / i i |(リ ( | | | ! / 質問答えてくれたみなさん
〈ヘ|_|l| l ゝ~ lフ/| <. .ありがとうっ
/ | | |( ヽwliヽ | \ このスレはおしまいだよ。
/ /! | l ヘ《~ヘii~∧ ∧ \_____
/ /ノノ! ノ|リ〉 \/( ゚ω゚)
/ , ./-‐- 、/V\ハ_ヲUU
!/ ./ / / | ゝ つつ
ヽ_/ ./ ! jj \
/ i
〈 / | |'
ゝ / l | !/
`〜‐-L__」〜'^
・新スレッドはこちら:http://corn.2ch.net/test/read.cgi?bbs=php&key=1000267444
0949名無しさん@お腹いっぱい。
01/09/12 13:21ID:???0950_gunzip
01/09/13 06:21ID:???...って950踏んだりして。
0951名無しさん@お腹いっぱい。
01/09/15 11:03ID:???09521000
02/02/03 03:23ID:???\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0953名無しさん@お腹いっぱい。
02/02/22 04:45ID:???0954埋め
02/02/22 04:46ID:???0955名無しさん@お腹いっぱい。
02/02/22 04:46ID:???0956名無しさん@お腹いっぱい。
02/02/22 04:56ID:???0957名無しさん@お腹いっぱい。
02/02/22 04:57ID:???0958名無しさん@お腹いっぱい。
02/02/22 04:57ID:???0959名無しさん@お腹いっぱい。
02/02/22 04:58ID:???0960名無しさん@お腹いっぱい。
02/02/22 05:04ID:???0961名無しさん@お腹いっぱい。
02/02/22 07:38ID:???\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0962名無しさん@お腹いっぱい。
02/02/23 03:19ID:???+ + +
+
. / ̄\ +. ∧_∧アハハハ +
ノリカエセヨー( ´∀`) (´∀` )
(つ つ (つ つ■
. + ( ヽノ ( ヽノ +
し(_) し(_)
0963名無しさん@お腹いっぱい。
02/02/23 03:20ID:???0964名無しさん@お腹いっぱい。
02/02/23 03:23ID:???0965名無しさん@お腹いっぱい。
02/02/23 03:46ID:???ピュ.ー ( ・∀・)<1000ゲット!!
=〔~∪ ̄ ̄〕 \________
= ◎――◎
0966名無しさん@お腹いっぱい。
02/02/23 03:47ID:???0967名無しさん@お腹いっぱい。
02/02/23 03:47ID:???>>948 次スレ。
0968名無しさん@お腹いっぱい。
02/02/23 07:20ID:???ミ*^ー゚彡 < 1000ゲットデス
ミつ''''つミ \__________
ミ∩,,∩ミ
ゞミミミミ
0969名無しさん@お腹いっぱい。
02/02/23 07:23ID:???0970名無しさん@お腹いっぱい。
02/02/23 13:06ID:???0971名無しさん@お腹いっぱい。
02/02/24 04:37ID:???0972名無しさん@お腹いっぱい。
02/02/24 06:09ID:???0973名無しさん@お腹いっぱい。
02/02/24 18:21ID:???0974名無しさん@お腹いっぱい。
02/02/24 22:28ID:???0975名無しさん@お腹いっぱい。
02/02/24 22:31ID:???0976名無しさん@お腹いっぱい。
02/02/24 22:32ID:???0977名無しさん@お腹いっぱい。
02/02/25 01:23ID:???0978名無しさん@お腹いっぱい。
02/02/25 02:51ID:???0979名無しさん@お腹いっぱい。
02/02/25 06:12ID:???0980名無しさん@お腹いっぱい。
02/02/25 06:26ID:???0981こぴぺ
02/02/25 10:19ID:???, l[》《]| ヽ
/ i/ i ノノノ ))))〉 / ̄ ̄ ̄ ̄ ̄
. / i i |(リ ( | | | ! / 質問答えてくれたみなさん
〈ヘ|_|l| l ゝ~ lフ/| <. .ありがとうっ
/ | | |( ヽwliヽ | \ このスレはおしまいだよ。
/ /! | l ヘ《~ヘii~∧ ∧ \_____
/ /ノノ! ノ|リ〉 \/( ゚ω゚)
/ , ./-‐- 、/V\ハ_ヲUU
!/ ./ / / | ゝ つつ
ヽ_/ ./ ! jj \
/ i
〈 / | |'
ゝ / l | !/
`〜‐-L__」〜'^
・新スレッドはこちら:http://corn.2ch.net/test/read.cgi?bbs=php&key=1000267444
レス数が950を超えています。1000を超えると書き込みができなくなります。