【Perl】初心者コーナー Part17
■ このスレッドは過去ログ倉庫に格納されています
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 8
http://pc.2ch.net/test/read.cgi/php/1032704121/
参考書籍の話題は【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は 【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/
過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0345nobodyさん
02/10/28 19:18ID:MHCjzLTrfunction a(){
with(document.forms[0]){
alert('testtest');
elements[0].value=100;
}
}
ってやっても普通に表示されると思いますが、
この場合はalertには(document.forms[0])は付加されないんですか?
付加されたらエラーですよね?
でもelements[0]には(document.forms[0])が付加されないと
エラーですよね?
その辺の切り分けはjavascriptではどうなっているのでしょうか?
0346nobodyさん
02/10/28 19:18ID:MHCjzLTrPerlのスレでした…。
0347nobodyさん
02/10/28 19:21ID:???ループで
000000から、ffffffまでの全ての色を表示するHTML文字を出力したいんですが、
やばいかな?
6桁だから、10進数で考えても十万ループだよね?
しかもこれ16進数。
CGIで動かしたいから鯖が落ちると困るんですよ。
このくらいのループって余裕なんですか?
それとも無謀ですか?
と言うか出力された画面を見るのも大変そうだね。
10万以上だから。
0348nobodyさん
02/10/28 19:23ID:V8hOlb/Aさっきやったらどうしてもエラーが出るんですが・・
0349nobodyさん
02/10/28 19:29ID:???全部コピーすれば?
レンタルサーバの場合、ファイル構造の制限をちゃんと理解して
プログラムのファイル指定をしっかり変更する事。
0350nobodyさん
02/10/28 19:53ID:OVLPNyBEバックグラウンドでプログラムを走らせる実験として
test.phpというプログラムとtest_back.phpという
プログラムを作りました。
=======test.php==========
<?php
system ("/home/sites/home/test_back.php > /dev/null &");
echo "OK";
>
=======test_back.php========
<?php
sleep (30);
>
=====================
という風に、test.phpから、test_back.phpを
呼び出して、30秒間sleepするものです。
しかし、ps で確認しても、うまく呼び出されていないようです。
そのため、test.phpのほうの > /dev/nullを抜いて試してみた
のですが、すぐにOKが表示されるので、やはり呼び出されていないようです。
色々と調べて、自分では、間違っていないつもりなのですが、
問題点が、分かりましたら是非、教えてください。お願いします。
0351350
02/10/28 19:57ID:???PHPスレに逝って来ます。。
スレ汚しすみませんでした。
0352nobodyさん
02/10/28 20:10ID:???0353名無しさん@Emacs
02/10/28 20:16ID:???0354nobodyさん
02/10/28 20:49ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0355rubyist@カラアゲうまうま
02/10/28 21:08ID:???0356347
02/10/28 21:38ID:???馬鹿なんですか?
0357rubyist@カラアゲうまうま
02/10/28 21:40ID:???…それは不可能だよ。0xffffffって約一千六百万だよ。
それだけのループも大変だけど、
それらの組み合わせ全てを出力すると100MB超えると言うことを考えると、
無茶にも程があるってもんです。
0359347
02/10/28 22:15ID:???出なおしてきます。
では、表示出来る色を全部一気に見る方法はありますか?
perlじゃなくなってきてごめんなさい。
0360nobodyさん
02/10/28 22:34ID:???画像エディタのグラデーションバーでも見てりゃいーじゃん
つか1色ずつ判別できるとでも言うのか
ttp://tohoho.wakusei.ne.jp/wwwjscol.htmこの辺で遊んでれ
0361nobodyさん
02/10/28 23:10ID:???ffffffというと16M色だぞ、どうやって一気にみると言うのだ?
0362nobodyさん
02/10/28 23:42ID:???絵の具でも混ぜてろってこった
0363nobodyさん
02/10/28 23:59ID:???( ´,_ゝ`) プッ 頭弱そう
0364nobodyさん
02/10/29 00:11ID:expKwbl4黄色でも食ってろよ
0366nobodyさん
02/10/29 01:38ID:???どこで見れないのさ?
FTP?ならFTPクライアントに設定項目あるはず。
UNIXシェル?なら ls -alLF で見れるはず。
そもそもほんとにシンボリックリンクが作成されてるのかどうかを疑う。
0367365
02/10/29 08:50ID:???Telnetでls -lで参照してみたらちゃんとシンボリックリンクが存在するんです。
でもFFFTPで見てみると不可視ファイルになってて
設定でLISTコマンドで取得で見てみたら
一応シンボリックリンクは存在するけどシンボリックファイルが全て
<DIR>とかになってて、
Web上からアクセスしに行ってもForbiddenとかになってます。
Perlに関係無ければ他所の板行きますが、
Telnetでls -sで作った時はちゃんと可視ファイルになっていて
Perlで生成した時は何故か不可視ファイルになってたもので。。
0368365
02/10/29 08:54ID:???多分Perlでシンボリックリンク「ファイル」生成したはずが
「ディレクトリ」になっちゃってるのが原因だと思うんですが・・
symlink ("test.cgi","../$id/test.cgi");
でファイルにはならないんですか?
0369nobodyさん
02/10/29 09:21ID:NNir1Y8Iファイルを読み取って、その中の内容をPOSTするのに、
[ $file, $filename, Header => Value... ] とか
init => ["$ENV{HOME}/.profile"],とかあるのですが、
上手くいかないのですが。実際./test.txtをpostするときは
どう記述すればよいのでしょうか?おねがいすます。
0370369
02/10/29 10:29ID:NNir1Y8Itextfileのアップロードではなく、テキストエリアにファイルの内容を
入力したものを送信する状態です。
0371369
02/10/29 10:55ID:???ここに書き込むと自己解決できるすばらしいすれっ度ですね。
ありがとうございました。
0372365
02/10/29 11:24ID:???0373nobodyさん
02/10/29 13:31ID:rgUUtj5zエージェントを見るとマックからだけで、Winからはこの現象は発生しません。
対処法などわかりましたらお願いします。
0374nobodyさん
02/10/29 16:16ID:pVmQBlE60375nobodyさん
02/10/29 16:39ID:???4回スルーする。
0376nobodyさん
02/10/29 16:55ID:???toで100回送らないといけないですよね。
それの負荷ってどんくらいなんでしょうか。
同じ内容のメールならccで一度で送れますけど。
0377nobodyさん
02/10/29 17:42ID:???0378374
02/10/29 18:10ID:pVmQBlE6seekを使う方法で教えてくらさい
0379nobodyさん
02/10/29 19:17ID:???seekを使うにしても、5行目がファイル先頭から何バイトの位置から始まっているかは
先頭から順に読んでいかなければ分からない。
それなら4行スルーしたってやってることは同じだし、なにしろコーディングが楽。
0380nobodyさん
02/10/29 20:16ID:cpI9Pzs7Tie::AppendHashを使って以下のような、1つのキーに複数の値が
追加されていくハッシュを作っています。
use Tie::AppendHash;
tie %hash, 'Tie::AppendHash';
$hash{name} = "nobody1";$hash{name} = "nobody2";
$hash{age} = "24";$hash{age} = "25";
while (my ($k, $v) = each %hash){ print "$k => @$v\n"; }
出力結果:
age => 24 25
name => nobody1 nobody2
このとき、追加される値がすでに格納されている(重複している)
場合は無視し、ユニークな値のときのみ追加したいのですが
どのようにすればよいのでしょうか?
$hash{name} = "nobody1";$hash{name} = "nobody2";$hash{name} = "nobody2";$hash{name} = "nobody3";
$hash{age} = "24";$hash{age} = "25";$hash{age} = "26";$hash{age} = "24";
while (my ($k, $v) = each %hash){ print "$k => @$v\n"; }
期待する出力結果:
age => 24 25 26
name => nobody1 nobody2 nobody3
よろしくお願いします。
0381_gunzip ◆eiH/XdoCNg
02/10/30 03:41ID:???package Tie::MyHash;
use Tie::Hash;
our @ISA = qw[ Tie::StdHash ];
sub STORE
{
my ($self, $key, $value) = @_;
foreach (@{ $self->{$key} }) {
return if $value eq $_;
}
push(@{ $self->{$key} }, $value);
}
格納した順番が不要なら
package Tie::MyHash2;
use Tie::Hash;
our @ISA = qw[ Tie::StdHash ];
sub STORE { $_[0]->{$_[1]}->{$_[2]} = 1; }
sub FETCH { [ keys %{ $_[0]->{$_[1]} } ] }
でもいいい。
0382risarisa
02/10/30 05:09ID:???データをどうやって保持するのか教えてください。
0385nobodyさん
02/10/30 11:08ID:???#$buf はcgiの引数で1桁目の時は1で、6桁目の時は6が入ります。
# ログを読み込む $logfileの中身は 95 とか
open(IN,"$logfile") || &error;
$count = <IN>;
close(IN);
# カウント数を1文字毎に分解して表示画像を定義
@file = split(//, $count);
if($#file + 1 >= $buf){
$view = $file[$#file + 1 - $buf];
}else{
$view = '0';
}
この$#fileってなんですか?
0386nobodyさん
02/10/30 11:14ID:???http://ex.2ch.net/test/read.cgi/news/1035796690/
0387nobodyさん
02/10/30 11:20ID:???0391nobodyさん
02/10/30 12:35ID:ojqysm2L手元の入門書には載ってないのでここで聞いてみます。
変数とのマッチってどうやって調べればいいですか?
0393デフォルトの名無しさん
02/10/30 12:54ID:???「変数とのマッチ」って?
1. マッチというのは、2つ対象が指定されなきゃだめ。
2. 一部のマッチか全体のマッチも分からなきゃだめ。
ここら辺、考えて、ちゃんとした質問し直す。
0395391
02/10/30 13:07ID:ojqysm2L中身は'cat'だったり'dog'だったりいろいろ変わるとして、
あるファイル中でその値にマッチする行をすべて取り出したい、
というようなことです。
/$value/とかって書いても意味ないし・・・
0396394
02/10/30 13:12ID:???0397394
02/10/30 13:14ID:???@match= grep(/\Q$value$E/, <IN>);
0398デフォルトの名無しさん
02/10/30 13:17ID:???いろいろ変わる変数?すごい変数やね。
$value="(cat|dog)";
ってしといて、
/$value/
ってすれば、猫にも犬にもマッチするぜ。
動物全体にマッチさせたきゃ、
/$animal/
とすれ。
$animalはどっかで上の方法で定義してね。
0400380
02/10/30 13:28ID:psFvge9aありがとうございました!
0401nobodyさん
02/10/30 13:58ID:???メタ文字の「\b」の違いと言うか使い分けの仕方を教えてくだちい
0403rubyist@カラアゲうまうま
02/10/30 19:46ID:???0404nobodyさん
02/10/30 19:58ID:???0405272
02/10/30 19:59ID:???問題は解決しましたが、、、みなさんすみません。
実はSybperlを使っていて、SQLのエラーなどで帰ってきたエラーメッセージを独自に書式にしようとしていました。
そして、Sybperlのマニュアル(http://www.mbay.net/~mpeppler/Sybperl/sybperl.html)をもう一度読んでいたら、
エラーメッセージをハンドルする関数について書いてありました。
(dberrhandle、dbmsghandle)
なお、>>283 さんの方法は残念ながら使えませんでした。
うちの会社にはTie::Handleが入ってなかったのです、
そして、一介のプログラマたる私が勝手にモジュールを入れるのを許されるわけでもなく、、、
>>321 さん
そういうわけで、warn/dieのsignalをトラップしても問題を解決できなかったのですよ。
どうもありがとうございました。
0406
02/10/30 21:31ID:lQD7x9bz@b = "foo";
のとき、
@a / @b
@a - @b
@a++
は、それぞれどうなりますか?
また、その結果は保障されていますか?
あと、変数に格納されているのが、数値として評価できるか否かを判定する関数はありますか?
0407デフォルトの名無しさん
02/10/30 22:41ID:???>は、それぞれどうなりますか?
自分でやってみてください。
>また、その結果は保障されていますか?
保証されてる(と思う)。
>あと、変数に格納されているのが、数値として評価できるか否かを判定する関数はありますか?
評価する環境によって数値になったり文字列になったり・・・
0408nobodyさん
02/10/31 00:52ID:HckTbTkRこのsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします
もう一回はります。
http://www.tripod.co.jp/guides/cgi2.html
このsendmail
と、上のWAUを使いたいです。
宜しくお願いします。JAVAアプレットオフの人をとばす文字列も教えてください・・
noscriptみたいな感じでしたっけ・・
又、CGIボーイのアクセス解析いれたら、
左下にGETIPIPPLET と表示されます、クリックしたときに。
これはCGIボーイですか?それとも関係ないでしょうか。宜しくお願いします。
CGIボーイって、アクセス売ってるって話ありますが、裏にどこがついてるんでしょう・・お願いします
0409nobodyさん
02/10/31 00:58ID:???>>401
^は先等を表す記号で、\bは単語の境界を表しているから、違いを言おうとしたら
全然違うとしかいいようがないです。
/^Mona/ 先等がMonaではじまっているときにマッチ
/\bGiko\b/ Gikoという単語にマッチ
0410nobodyさん
02/10/31 00:59ID:???0411nobodyさん
02/10/31 14:27ID:???package time;
sub time{
my $time = "12時";
}
とあって、
main.cgiで、
require 'time.pl';
を呼び出して、
$time = &time::time();
print "$time";
としても表示されません。変数の受け取り方が悪いんでしょうか。
0412nobodyさん
02/10/31 14:29ID:???0414411
02/10/31 14:49ID:cEFw70nysub time{
my $time = "12時";
1;
}
こうですか?
0415411
02/10/31 15:01ID:cEFw70nytime.pl
package time;
sub getparam{
my($QUERY_DATA,@pairs,$pair,$key,$value,@FORM);
if($ENV{ 'REQUEST_METHOD' } eq "POST"){
read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'});
}else{
$QUERY_DATA = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$QUERY_DATA);
foreach $pair (@pairs){
($key,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/"/"/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\r\n|\r|\n//g;
$value =~ s/\,/,/g;
$FORM{$key} = $value;
}
return (@FORM);
}
1;
-------------------------------------------------------------------------------------
time.cgi
require 'time.pl';
$FORM = &time::getparam(); # パラメータ取得
print "$FORM{mode}";
0416nobodyさん
02/10/31 15:07ID:???0418nobodyさん
02/10/31 15:53ID:u48tUPuwむちゃくちゃだなぁ
細かくは見てないが
}
return (\%FORM);
}
1;
-------------------------------------------------------------------------------------
time.cgi
require 'time.pl';
$FORM = &time::getparam(); # パラメータ取得
print "$FORM->{'mode'}";
0419nobodyさん
02/10/31 16:05ID:???考えればよいのでしょうか?よろしくお願いします。
2次元配列"@list":
@list = (
["A","B","C"],
["A","B","D"],
["E","F","G"],
);
Tree出力:
.
├A
│└B
│ ├C
│ └D
└E
└F
└G
0420419
02/10/31 16:11ID:???Tree出力:
.
├A
│└B
│ ├C
│ └D
└E
└F
└G
0421nobodyさん
02/10/31 16:24ID:KmCUnQul覗いてみてね(●^o^●)
0423nobodyさん
02/10/31 18:10ID:???人に聞くなとはいわんけど、聞く前に-w をつけるとか、
use strict; するとかの工夫をしようとは思わないのかい?
use strict; すると面倒だけど、かなりのケアレスミスは
防げますよ。
0424rubyist@カラアゲうまうま
02/10/31 21:19ID:???0425nobodyさん
02/10/31 21:45ID:ALui3Wy3どうすればいいですか?
0426nobodyさん
02/10/31 21:56ID:???それが出来る程度の糞頭があればPerlなんかつってねーよ
つ っ て ね ー よ
0427nobodyさん
02/10/31 22:10ID:???cgiスクリプトからファイルに書き出せばよいだけだが?
open(FILE, ">nantoka.html");
print FILE "html no nakami";
close(FILE);
とかな。
でさ、これだけ判って何か嬉しい?
質問間違ってないか?
0429rubyist@カラアゲうまうま
02/10/31 22:19ID:???厨房でも大きな顔が出来る。それがPerlスレ(わら
0431nobodyさん
02/10/31 22:41ID:???0432nobodyさん
02/10/31 23:57ID:???0433nobodyさん
02/11/01 02:15ID:???print "content-type: text/html\n\n";
print "<HTML><HEAD><TITLE></TITLE></HEAD></HTML>";
$moji_1="りんご";
$moji_2="れもん";
$moji_3=$moji_1 . "\n" . $moji_2;
open(M,">./moji.dat");
print M $moji_3;
close(M);
exit;
これを実行すると、サーバ内にデータを保存されるのですが、
保存されたデータの中身を見ると
りんご・れもん
となっていて"\n"の部分で改行されていないのですが、
どうすれば保存する文字に改行を入れられるのでしょうか?
0434nobodyさん
02/11/01 02:36ID:???0435433
02/11/01 02:46ID:???いえそうではなくて、openで保存したmoji.datを
いったん、ローカルマシンにデータを移してmoji.datのなかをメモ帳などで
見てみると、りんご・れもん となっているんです。
理想はopenでデータを保存したときに、
りんご
れもん
と改行されているようにしたいのです。
0436nobodyさん
02/11/01 02:51ID:???改行コードはOSによって違う。
そのmoji.datとやらをFTPで転送するときはASCIIモードでやれば自動的に変換してくれる。
データの扱いで問題がなければ、最初から目的の改行コードにしておけばよい。
Windows なら \r\n。
0437433
02/11/01 03:09ID:???できました。
ありがとうございました。
0438nobodyさん
02/11/01 04:15ID:???a w k く そ
0439rubyist@カラアゲうまうま
02/11/01 08:23ID:???P E R L は も っ と く そ
.
0440デフォルトの名無しさん
02/11/01 08:40ID:???い ち ば ん 糞
ruby基地外がいるし.
煽り反すのはやめて欲しいなぁ。そんなことしても彼と同レベルに思われるだけだよ。
0442nobodyさん
02/11/01 12:52ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0443nobodyさん
02/11/01 13:44ID:???2:トイレで30分がんばってみたが・・・
3:血が出て上手く排泄できなかった。
0444nobodyさん
02/11/01 14:03ID:???0445nobodyさん
02/11/01 15:09ID:6J8N+PHy背景色とかも再現してくれたらなぁ。
■ このスレッドは過去ログ倉庫に格納されています