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

【Perl】初心者コーナー Part12

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/27 23:17ID:1NNXdNsp
 
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。

CGIの質問は【CGIだけどなんか質問ある Pert 6 】
http://pc.2ch.net/test/read.cgi/php/1019561283/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4 】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10を見よう。
 
062361202/05/11 17:45ID:???
すんません。>>613 >>614 の言っている事が初心の俺には解りません

文字列の "head:" と "abc." は固定です。"head:" は必ず、行頭に
1回しか出てきませんが、"abc." は色んなところで複数回出てきます。
"def" は固定ではないので >>615 の場合だと、"def" 以外の時は
機能しなくなってしまいます
0624nobodyさん02/05/11 18:03ID:???
>>623
勉強する気は無いんかと。()でグルーピングして * とか + とか {m,n} とか知らんのかと。
$hoge =~ s/(?:abc\.)+//;
0625nobodyさん02/05/11 18:54ID:???
>>619
動作見切れて何故迷惑馬鹿?
0626nobodyさん02/05/11 18:59ID:???
>>622
小さいなあ。
君のような弱小レベルでは妄言に見えるけどそういうレベルの
人間も世の中には確実にいるのだよ(藁
0627nobodyさん02/05/11 19:19ID:???
617=625=626 ( ´,_ゝ`)プッ
0628しょぼいSE02/05/11 19:32ID:QCHMLNRj
2chらしい掲示板にマジ質問ですまん。
他人様のホームページをインラインフレームで表示するときに、表示した他人様のページのスクロールバーを消す方法ってある?
CGIでできるかと思ったけど、方法がわからん(−−;
0629nobodyさん02/05/11 19:49ID:???
>>622 設定ファイル書いて「このプログラムも完璧に動いた、俺って天才」つーてるんだよ。
そういう世界もある事をわかってやれ。
063061202/05/11 19:51ID:???
>>624
> 勉強する気は無いんかと。()でグルーピングして * とか + とか {m,n} とか知らんのかと。

ありがとうございます。ほとんど昨日、今日perl始めたばっかりの房なので…
() って、$1 とかに突っ込む以外にも効果あるんですね。
?: が無くても期待する結果が同じなのが謎なのでその辺を自分で勉強します
0631nobodyさん02/05/11 20:19ID:???
>>625
完璧に見切れます、というのならともかく「ほぼ」じゃダメだろ。
そもそも完璧じゃなさそうなのだが。まあ>>629が真実なんだろうな。
0632nobodyさん02/05/11 20:23ID:???
>>628
それはHTMLとかCSSの仕事。
HTMLならscrolling="no"、CSSならoverflow: hidden;あたり。Web製作板へGO。
0633nobodyさん02/05/11 21:42ID:???
>>617が馬鹿だってことは、経験的にほぼ見切れる俺。
063461602/05/11 22:28ID:???
とりあえずオフラインでも動くようにしてみます。ありがとでした。
0635nobodyさん02/05/12 00:32ID:Kq9I9f0M
perlで指定した文字数でランダムな英数字の文字列を生成するには
どうすればいいのでしょうか?
おしえてください。
0636nobodyさん02/05/12 00:38ID:???
>>635
範囲を決めてrand()とchr()で。
0637nobodyさん02/05/12 00:39ID:???
最近教えてスレッドとか改造スレッドみたい、ここ。

6文字で。
my @word = (0..9,'a'..'z','A'..'Z');
my $rand = '';
$rand .= $word[int rand @word] for (1..6);
0638nobodyさん02/05/12 00:43ID:???
>>636-637
できました!
どうもありがとうございます。
0639nobodyさん02/05/12 00:47ID:???
教えて!!!!!
0640nobodyさん02/05/12 01:15ID:???
>>639
や!!!!!
0641パルお02/05/12 01:40ID:eZiXZjwU
LPWモジュールでクッキーを受け取るにはどういう風に記述すればいいのでしょうか?
0642nobodyさん02/05/12 02:08ID:???
>>637 禿同。時々>>1を引用しておいた方がいいんじゃないか?

>いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
>
>1:自分はこう言う事がしたい。
>2:それでこんな風にやってみたが・・・
>3:それだとこんなエラーが出て上手く行かなかった。
>
>1と3が無いと誰も答えられないよ、良い回答は良い質問から。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
というわけで>>641 2:3:が無いよ、と言わせてもらって >>4に載ってるここ見た?
http://member.nifty.ne.jp/hippo2000/perltips/lwpcook.html#COOKIES
0643nobodyさん02/05/12 03:52ID:???
chr に 2byte 以上与えた場合の戻り値の規則を知りたいのですが、
my $num = shift;
print "$num => ", unpack("C*", chr($num)), "\n";

255 => 255
256 => 196128
257 => 196129

なんでこうなるの?
0644nobodyさん02/05/12 14:08ID:9L9P3cqp
Perlのスクリプトが動かないのです。
use Any〜でのデータベース使用の準備の後、
dbmopen〜|die〜;
tie〜|die〜;
の両方が死にます。
WindowsMeではパーミッション666のDBMデータベース使えないのでしょうか?
それともPerl5を入れれば改善されるのでしょうか?
激しく既出だとは思うのですが…
0645nobodyさん02/05/12 14:56ID:???
>>644
がいしゅつ以前の問題だろ…。
何でも良いからマニュアルの演算子の項を見れ。
ちなみに、それだとあらゆるプラットフォームで確実に死ぬ。
064664502/05/12 14:59ID:???
つーかPerl4なのか。
それならそもそもuseをした時点で死ぬだろ。
0647nobodyさん02/05/12 16:08ID:4Ko6xKbI
windows2000Pro.+apacheでCGIを組んでいるのですが、腕の未熟もあって
たまに無限ループを作ってしまうことがあります。
その時にPerl.exeを強制終了させたいのですが、タスクマネージャから落とそうとすると
アクセスが拒否されて落とす事が出来ません。
再起動すれば問題無いのですが、煩雑ですし、Perl.exeが走ったままで使いつづけるのも怖いので
解決方法があればお教え願いたいです。
064864402/05/12 16:26ID:???
>>645
すみません。|演算子は||の書き込みミスです。
Perlは5かもしれません。よく分かりません。
一応、がんばって自力で途中まで調べました…。
use DB_File;
はどうなんでしょう?とりあえず帰ったら試してみます。
これでだめだったらどうしよう…。
0649nobodyさん02/05/12 16:40ID:???
>>648
ハァ…自分が何やってるのかもわからないヤシに何かを教えることは出来ません。
065066402/05/12 16:46ID:???
>>649
何をやっているか…標準クラスモジュールのスコープを使用可能にしているのでは?
Perlは5でした。結局、tieが通らないのが問題だと思います。
Perl附属データベースを優先的に使用するように指定できれば良いのでは…
と思ってはいるのですが…やりかたが…
0651nobodyさん02/05/12 17:28ID:???
>650
やっぱり何やってるかわかってないじゃん。

つーか、「〜すれば良いのでは?」と思うなら勝手にそうしてください。
やり方がわからないならGoogleってください。
ここはあなたに相槌を打つスレじゃないので。


0652nobodyさん02/05/12 20:41ID:???
携帯でgoogleか…鬱だ…
0653nobodyさん02/05/12 22:30ID:???
駱駝本と格闘して自己解決しました。GDBM_Fileとtieの組み合わせで成功。他の方法で失敗する原因は後で考えますです。
0654nobodyさん02/05/12 23:20ID:???
>>643
unpackは1Byteずつ処理。
どうもリストコンテキストで評価されてそんな数字になっているみたいだね。
chrはUTF-8の文字列を返しているみたいだけど… 詳しい方、解説キボン。

my $num = 256;
print "$num => ", join ', ', unpack("C*", chr $num), "\n";
print "$num => ", ord chr $num, "\n"; # chrの反対はord
0655nobodyさん02/05/13 07:46ID:???
どうでもいい事だとは思うけど、コーディングしてて山の様にあっちこっちに
動的変数作ってしまって、プログラム終了まで使われなくなった変数って
やっぱシステムリソース喰ったままなんですかね?

「もう、この変数は使わない〜」と思ったら、undef した方がいいの?
それとも、コンパイラが適当に判断してくれたりするんだろうか?

$a = "(・v・)";
$b = 12345;

{
# ここで $a と $b 使う。これ以降は使用されない
}

{
# 新たに変数 $c を割り当てる。しかし、$a $b が使われていないので
# $a $b 用の領域を使って確保される?(暗黙の undef とか?…)
$c = "( ゚д゚)";
}
0656nobodyさん02/05/13 07:58ID:???
素人のものすごい素朴な質問なんですけども、
-wとuse strict;とuse warnings;$|=1;も入れて可能な限りエラーをなくして見たりしてるんですが
なぜか
Use of uninitialized value in concatenation (.) or string at C:\***.cgi line n.
と
Use of uninitialized value in string eq(またはneとか==とか!=とか。) at C:\***.cgi line n.
というエラーは消えてくれません。
動作にはまったくこれといって支障ないですけど、なんとなく気になってた疑問なのでちょっと聞いてみました。
0657nobodyさん02/05/13 10:50ID:???
>>656
理由はメッセージに書いてあるじゃないか。変数は初期化しろ。
とわいえ、俺もこのwarningはウザイと思う場合もある。そん時はno warnings;〜;use warnings;ではさむ。
0658nobodyさん02/05/13 13:13ID:???
>>655
myしる。そうすればブロック抜けた時に消える。

{
my $c = '( ゚д゚)';
# 〜$cを使う処理〜
}
0659nobodyさん02/05/13 16:13ID:e7rLHiwb
比較結果の表示と保存をするのに

my $patch = system("diff file1 file2");
system ("diff file1 file2 >patch.diff");
print qq|$patch\n|;

これをまとめるのはどのようにしたらよろしいのでしょうか?

my $patch = system("diff file1 file2 >patch.diff");
print qq|$patch\n|;
では表示が 256 になってしまうので宜しくお願いします。
0660nobodyさん02/05/13 20:22ID:???
>>659
何がしたいのか分からないのでこの答えが妥当かどうかはわかりませんが
$patch = `diff file1 file2`;
066165602/05/13 21:29ID:???
>>657
変数のところじゃなくて、
Use of uninitialized value in concatenation (.) or string at C:\***.cgi line n.
が出るのは
print <<"EOF";
の行なんです。これを指摘されるのは何でなんでしょう?
print <<"EOF";
〜
EOF
内で使われる変数は全部use var qw[$a $b 〜];というふうにあらかじめ書いてるんでが。
ヒアドキュメントになにか決まりごとでもあるんでしょうか?
0662nobodyさん02/05/13 21:47ID:???
>>661
宣言と初期化は違う。
宣言しただけだと変数の中身はundefだから、そんな感じで怒られる。
初期化(空文字列を代入するとか)をしておけばエラーは出なくなる。
066365602/05/13 22:55ID:???
>>662 ども。
use strict;
use var qw[$a $b 〜$z];
$a=$b=$c=〜$z="";

{
print <<"EOF";
〜
$a
$b 〜
$z
EOF
}

とやってみましたが、やっぱりprint <<"EOF"; を指摘されます。別に問題なく動くということは
print <<"EOF";で出るUse of uninitialized value in concatenation (.) or string at C:\***.cgi line n.は
やっぱり意味の無いエラーなんでしょうか。
0664nobodyさん02/05/13 22:56ID:S5I/8Zh9
perlでオラクルを使ってDBIのモジュールをインストして使ってます。

selectall_arryとかで値を抜き出す時に使う変数が理解不能です。
$@hogehoge とか $$_[1] って奴です
一応$_[1]とかは解りますが$@を会わせたり$$でjobid以外の使い方が今いち理解できません。
0665nobodyさん02/05/13 23:03ID:???
>>663
んな事はない。どれかの変数の初期化を忘れているだけだ。
目を皿にして良〜く見ろ。
0666nobodyさん02/05/13 23:13ID:???
>>660 ありがとうございました。以下で解決しました。
$patch = `diff file1 file2`;
open (FH, ">patch.diff");
print qq|$patch|;
print FH qq|$patch|;

0667nobodyさん02/05/13 23:22ID:???
>>664
man perlref
0668nobodyさん02/05/13 23:30ID:???
>>663
途中で変数にundefが代入されたんだろう。
試しにprint文の直前でprintに関わる全ての変数に対して defined $z or $z = ''; してみれ。
0669nobodyさん02/05/14 00:14ID:ZpKcImQq
古くなった掲示板の投稿を次々とHTMLページにして過去ログを作成する掲示板がありますが、
1ディレクトリ内のファイル数が多くなるとアクセスが重くなったり、サーバーに問題が起きたりするのでしょうか。
サーバーはファイルにアクセスするときに1ディレクトリずつ辿っていくとするなら遅くなりそうですが。
5000ファイルとかでも大丈夫でしょうか。
0670nobodyさん02/05/14 00:21ID:???
Perl5で掲示板CGIを作っているのですが、CGIの”重さ”ってどうやって調べればよいのでしょうか。
WinソフトならCPU使用率のグラフでも見ればいいんですが、サーバ上となると。

CGIスレで聞こうと思ったんですが、言語に依存しそうなのでこちらでよろしいですか?
0671nobodyさん02/05/14 00:26ID:i98930LO
よく見るとsageだったスマソ
0672nobodyさん02/05/14 00:39ID:o5LDH6aT
>>670
-d:DProf とか。

CGIなら
#!/usr/bin/perl -d:DProf
とかで。
067367002/05/14 00:55ID:???
あの…それってなんのオプションですか?(今調べてますが)
CGIのほうではエラーで起動できず、DOSプロンプト(WinME+Apache)のほうではなにも表示せず終了なのですが。
067467002/05/14 01:04ID:???
あ、なんか出てきた。
ありがとうございましたm(_ _)m

…と言っても、そんなファイルは見つからない〜のw。
0675nobodyさん02/05/14 01:21ID:???
>>658
Perl内部ではメモリ開放されるだろうけど、OSには返されないだろ、
ってクックブックに書いて有ったきがする。つ〜わけで、システム
リソースは喰ったまま。スクリプトが終了した時点で全て回収
される。
ただmyを使用すれば、新たな変数宣言時に跡地が有効利用されて、
全体としてメモリ使用量が減る、ってことになるんですかね。
067665602/05/14 02:11ID:???
>>665
>>668 どうもです。
とりあえずそれをやってみます。
undefってやっぱりPOSTから分解したときに対応している値が空だとundefが入っちゃうんでしょうか?
***.cgi?a=&b=123だと$a=$FORM{'a'};は中身はundefなのか''空なのかどっちになってるのかよくわかってないです。。
0677nobodyさん02/05/14 03:03ID:???
>>676
>POSTから分解したときに対応している値が空
その場合はundefじゃないと思うよ(空)。分からない時は
defined $FORM{'a'} ? print "定義済み〜\n" : print "未定義〜\n";
しちゃえば?

>>672
質問した者では無いんですが、良い事を教わりました。
0678nobodyさん02/05/14 09:12ID:???
とりあえず *無意味なエラー* なんてものは存在しないってことを理解しる
0679nobodyさん02/05/14 09:34ID:???
>>678
なんか当たり前だがハッとなる言葉だな。
0680nobodyさん02/05/14 11:32ID:???
糞ッたれなエラーメッセージは世の中に溢れている。
abnormal termination...
0681nobodyさん02/05/14 13:14ID:???
-d:DProf について解説してるサイトないですか?
0682nobodyさん02/05/14 14:04ID:???
>>681
http://www.perldoc.com
0683nobodyさん02/05/14 14:27ID:cCd3d73e
derectory indexのかわりにSSIで
http://www.xxx.com/cgi-bin/bbs/
のように表示しようと思ったんですが、1つのスクリプトで.shtmlと.cgiを表示させようとすると.shtmlのときにContent-type: text/htmlが表示されてしまいます。
そこでヘッダーに
if($ENV{'SCRIPT_NAME'} eq 'xxx/cgi-bin/bbs/') {
print "Content-type: text/html\n\n";
}
とかいて可変型の出力をさせるとhttpdでは動いたんですが、サーバへ送るとエラーになります。
こういうことってできないんでしょうか。
0684nobodyさん02/05/14 15:42ID:???
>>683
何をしたいんだかいまいちわからない。
もう少し詳しく書いて。
0685 02/05/14 15:57ID:???
>>684
宣伝をしたいんじゃないの?
0686nobodyさん02/05/14 16:02ID:???
>>685
www.xxx.comって適当に書いたのかと思って行ってみたら、エロサイトだったのでビクーリ
0687nobodyさん02/05/14 16:04ID:???
>>686

同じく..
0688nobodyさん02/05/14 17:49ID:ggUNICfm
すいません。
宣伝ではありません。適当に書いただけです。

同じスクリプトをbbs.cgi(元のスクリプト)とindex.shtmlの両方で呼び出したいんですが、
if($ENV{'SCRIPT_NAME'} eq 'xxx/cgi-bin/bbs/bbs.cgi') {
print "Content-type: text/html\n\n";
}
と書くとエラーになってしまうんです。
ようするにbbs.cgiを読んだときにはContent-type: text/htmlを出力して、index.shtmlを読んだときにはContent-type: text/htmlを出力しないようにしたいと思って。
0689nobodyさん02/05/14 18:40ID:IM/zSuxh
>>688
if( $ENV{'SCRIPT_NAME'} =~ /bbs\.cgi/ ) {
print "Content-type: text/html\n\n";
}
としてみてはどうでしょう。
069068802/05/14 22:30ID:gZX6Mv2h
どうもありがとうございました。
うまく動きました。簡単でしたね(汗)
0691nobodyさん02/05/15 07:19ID:???
1行だけのファイルがあったとします、
これを8バイトごとに区切って、
@sort に代入していくにはどうすればいいですか?
split 関数では区切り文字がないとダメなので…
区切り文字はなく、とにかく8バイトずつ区切りたいです。
よろしくお願いします
0692nobodyさん02/05/15 07:33ID:???
0693nobodyさん02/05/15 07:33ID:???
>691
readで一定量づつ読み込んでからunpackで分割
0694nobodyさん02/05/15 12:25ID:???
$/ = 8;
@sort = <FILEHANDLE>;

これでもいけなかったけ。確かめてないけど。
# バージョンが低いとだめっぽいが
0695TO02/05/15 15:52ID:+mZA1LnL
早速質問です。
フォームメールを使い会員宛に情報を送るCGIプログラムをテストしています。
PCやJskyでは無事メールは届きますがi-modeには届きません。
自分の携帯だけかなと思い、友人のi-modeに送ってみたが届きません。
ただしOUTLOOKなどのメーラーを使うと送ることは出来ます。
着信拒否の設定も何もしていないのに...
考えられる原因って何かありますか?
※独自ドメインをレンタルサーバーで運用しています。
0696 02/05/15 16:30ID:???
>>695
一部のドメインからの送信が規制されているらしいという話を聞いたことある
0697TO02/05/15 16:40ID:???
ありがとう。
共有型のレンタルサーバ使用で、
sendmailから送られるメールのMessage-Id:が
レンタルサーバ会社名なので、
もしかして他サイトが迷惑メールを送信したために
規制されてるのかな?うーん...
0698nobodyさん02/05/15 22:07ID:DvGtt9Y8
MLDBMを使ってプログラムが書きたいんですけど、
MLDBMについて詳しく説明しているページや
使い方を教えてください。
0699nobodyさん02/05/15 22:09ID:???
>>698
http://www.google.co.jp/
ここのフォームにMLDBMと書いてボタンを押すとお望みのページが出てきます。
0700nobodyさん02/05/15 23:16ID:???
>>691
use IO::File;
my @ary = IO::File->new('data.txt')->getline =~ /.{0,8}/g;

{ local $" = "\n"; print "@ary" }

>>694
perl5.005 より前だと使えないけど、今となっては問題ないような。
ちなみに、整数へのリファレンスでないといけない。

my $str = 'abc8defg8hijkl';

$/ = 8;
open my ($h), '<', \$str;
print "$.: $_\n" while <$h>;

$/ = \8;
open $h, '<', \$str;
print "$.: $_\n" while <$h>;
0701nobodyさん02/05/15 23:26ID:hRG/E5t+
foo(%abc);

sub foo {
my %hash = @_;
}

って正しい?
0702nobodyさん02/05/15 23:42ID:???
Perlの最新版ってどこにあるの?
0703nobodyさん02/05/16 02:38ID:I5/FxZ58
数値ソートがうまくできません。
下のコードをサーバ(version = 5.004_01)で実行すると、
uninitialized value警告が大量に出て、@aはソートされません。
でもローカル(version = 5.6.1)では警告無しでソートされるようです。
これはどうすればいいですか?

#!/bin/perl -w
# perl version = 5.004_01
use strict;
sub cmp($$);
my %h;
for (my $i = 1; $i <= 30; $i++) {
  $hash{$i} = rand;
}
my @a = sort cmp (keys(%h));
print @a;

sub cmp($$)
{
  my ($i, $j) = @_;
  return ($i <=> $j);
}
0704nobodyさん02/05/16 02:50ID:???
>>701
正しく動くけど、できればリファレンスで渡したいところ。
0705nobodyさん02/05/16 02:51ID:???
>>703
何と言うかメチャクチャだよ。基本から学ぼう。
0706nobodyさん02/05/16 02:56ID:???
>>702
CPANでも逝ってくれ。
窓用のActivePerlならactivestate.comへ。

……activestate[s]にして全然違うところへ飛ぶ罠にご注意(w
0707nobodyさん02/05/16 09:05ID:???
>>705
?
別にむちゃくちゃってわけじゃないだろ。
何故こんな質問が出るのか少しばかり謎ではあるが。

>>703
Perl5.6以前ではsort用比較関数は$aと$bを参照しなけりゃならんのよ。
つまり
sort { $a <=> $b } @array;
とするわけだ。
# プロトタイプの設定で@_でも参照できるようにしたのは
# おそらく別パッケージでも簡単に動かせるようにする為だろうね。

ついでに、cmpはPerlの組み込みキーワードなんで
サブルーチンの名前にするのはやめたほうが無難かもしれない。
特に問題なく動いてるようだし、構わないのかもしれないが。
0708nobodyさん02/05/16 21:25ID:???
質問、というか添削希望です

DB_Fileを使って、
-------------------------
use DB_File;
$DB_BTREE->{'flags'} = R_DUP;
my $d = tie %db, 'DB_File', 'data.db', O_RDWR|O_CREAT, 0600, $DB_BTREE;

if(my $count = $d->get_dup($key)){
  print "key: $key ($count times)\n";
}
-------------------------

というふうに、データベースに指定したキーに対応するデータが
1つ以上存在する場合、その重複数を数えつつ処理したいのだけど、
このifの条件式に問題点はありますか?
0709nobodyさん02/05/16 21:40ID:???
房な質問すいません

ローカル環境でCGIデバグして、動いていたものがほんちゃん用の
鯖にうpしたらエラーだった…

telnetでコマンドライン実行した所、↓のコードがダメだった

# 駄目
delete $hoge[ $i ];

# OK
delete $hoge{ $i };

単なるコーディングミスなんだけど、なんでローカルの perl では
コンパイル通っていたんでしょうか?
071070902/05/16 21:57ID:???
自己レス…素直に splice 使った方がいいね。出直してきます…
0711げ鬱02/05/17 01:00ID:Yz0hLQt9
こんな素プリ区とを作ってみましたがうまく動きません。
どこがまちがっているのでしょうか。。。
ちなみにperl -CPAN -e shellで関係するモジュールはインストール済みです。
-----
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
require 'jcode.pl';

my $ua = new LWP::UserAgent;

my $request = new HTTP::Request('GET', $ARGV[0]);
my $response = $ua->request($request);

if($response->is_success) {
$html_response= $response->content;
}else{
print $response->error_as_HTML;
}

0712げ鬱02/05/17 01:00ID:Yz0hLQt9
@html_response = split(/\n/,$html_response);

foreach (@html_response) {

if ($_ =~ m/name="?[^"]*"? value="?[^"]*"?/g) {
$data{'$1'} = $2;
}
if ($_ =~ m/NAME="?[^"]*"? value="?[^"]*"?/g) {
$data{'$1'} = $2;
}
if ($_ =~ m/NAME="?[^"]*"? VALUE="?[^"]*"?/g) {
$data{'$1'} = $2;
}
}

while(($key, $val) = each レta) {
push @key,$key;
push @val,$val;
}

$data1 = join(',',@key);
$data2 = join(',',@key);

&save_data;

sub save_data
{
$save_url = "./data.txt";

open(IN,">>$save_url");
flock(IN,2);
print IN "$data1\n$data2 \n";
flock(IN,8);
close(IN);
}
-----ここまで
0713厨房02/05/17 03:50ID:bHXEkEom
ご質問です。あるホスト名のみ、アクセス拒否できるCGIってありますか?
教えて下さい。
0714nobodyさん02/05/17 04:09ID:???
tyuubo-だけど言葉ずかいが素敵だから教えたる。
楽勝。
0715厨房02/05/17 04:17ID:bHXEkEom
>>714さん
ご指導ご鞭撻、よろしくお願いします。
0716nobodyさん02/05/17 11:12ID:kkxtU/zb
初歩で素朴な筆問でスマソ

「文字連結」ってどうやるの?

配列に入れて、joinするのはめんどいけど、
正規表現とかでやり方はないっすか?
0717nobodyさん02/05/17 11:42ID:???
>>716
ハァ?何が肢体のかワカラソ。
$catedstr = join "", $str1, $str2;
とか
$catedstr = $str1 . $str2;
のことじゃないよな?
0718nobodyさん02/05/17 15:08ID:jYg7e4+R
便乗質問です。
文字列の500文字目に"abcde"を入れるには
どういたら良いのですか?
0719nobodyさん02/05/17 15:53ID:???
>>718
substr
0720波兵02/05/17 16:06ID:???
>>718

ばっかもーん!それぐらい調べればすくわかることだろうが!!
今度そんな質問したらゲンコツだぞ!!
0721nobodyさん02/05/17 16:18ID:???
つーか何の便乗なのか謎。DQN?
0722nobodyさん02/05/17 23:00ID:???
>>714
お前の言葉づかいは素敵じゃないな。(藁
■ このスレッドは過去ログ倉庫に格納されています