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

【Perl】初心者コーナー Part18

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

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あたりを見よう。
0751nobodyさん02/12/29 13:12ID:???
>>750
まぁ、それが一番簡単じゃないの?何か不満?
0752 ◆hMJAPH9PWA 02/12/29 13:23ID:???
>>750
$hoge .= "hoge";
0753nobodyさん02/12/29 16:14ID:???
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?

0754nobodyさん02/12/29 16:18ID:???
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?
Perlでブラウザゲームを作りたいです。
それで、勉強って一体何すればいいんでしょ?
とりあえず本読んでBBSの構造くらいは分かるようになりました。
公開されてるゲームのプログラムとか読み漁ればいいのですか?
0755nobodyさん02/12/29 17:32ID:???
>>753-754 > /dev/null
0756nobodyさん02/12/29 17:39ID:???
>>753
javaれや ブォケ
0757nobodyさん02/12/29 20:05ID:???
>>753
とりあえず自分のローカルのOS(Win or Mac)でゲーム作れや。
それを移植する段階になってからこのスレで聞け。
0758nobody02/12/30 14:19ID:???
こんにちは。
WinXP 上でActivePerl を使用しています。
This is perl, v5.6.1 built for MSWin32-x86-multi-thread

何故か do ループの中で last を使用するとエラーになります。

do {
last;
} while (1);

>Can't "last" outside a loop block

while (1) {
last;
}

では問題ありません。last はdo ループの中では使用できないのでしょうか?
last ラベル;
としてもエラーになってしまう…。
0759nobodyさん02/12/30 14:21ID:???
>758
doループの意味わかってる?
ループの前にdo部分をやるから、その時点ではループになってないぞ。
0760nobody02/12/30 14:29ID:???
>>759
if (1) { ほげほげ; }
と
ほげほげ if (1);

の違いみたいな物でしょうか…ちがうかな(苦笑

do ループの中ではlast 文は使えないのかな。
勉強していたサイトの1つの中に
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k02.htm
do ループの中でlast 使用できるような所がありますけれど…残念。

レスありがとうございます。
0761nobodyさん02/12/30 14:55ID:???
do はあくまでブロック構文。
whileなどでループ修飾してもループブロックではない。
漏れはPerlはインタプリタ系、スクリプト系だからと妥協してる。
構造化BASICで出来るのもあるし、そのうち対応してくれるとうれしいYO
0762nobodyさん02/12/30 20:31ID:8PVwYuQF
perlの関数内でstatic変数を宣言できるのでしょうか。
0763nobodyさん02/12/30 21:28ID:neFLd3GG
>>759

LOOP:
 {
  do {
   last LOOP;
  }
 }
0764nobodyさん02/12/30 21:29ID:neFLd3GG
あ。>>758だった。
0765nobodyさん02/12/30 21:32ID:neFLd3GG
>>762
{
 my $static;
 sub hoge {
  $static++;
  return $static;
 }
}
0766nobodyさん02/12/30 21:35ID:neFLd3GG
>>763
whileも抜けてた。。
0767nobodyさん02/12/31 00:21ID:???
>>765
ブロック作るんだ。やってみます。ありがとうございます。
0768カミ02/12/31 04:26ID:eTxvyq7o
>>762
use strict;

$aaaa::val = "Global" ;
↑この記法の変数がGlobal変数として扱われる。
0769カミ02/12/31 05:05ID:eTxvyq7o
>>213
$test =<<"TEST";
ここから始まりです。
<FOO>
hogehogehoge
hogehogehoge
hogehogehoge
</FOO>
ここで終わりです。
TEST

という文字列から<HOGE>から</HOGE>までを抜き出したい場合。
Perlでどんな風にかきゃいいんでしょう?
------------------------------
<FOO>から</FOO>の間違いだね。

@picup=();
for (split("\n",$test)){
push (@picup) if /<FOO>/ .. /<\/FOO>/ ;
}

for $ol (@picup) {
print $ol."\n";
}

perl1行野郎参照
ttp://www13.cds.ne.jp/~ohsaru/perl/oneline.html
0770カミ02/12/31 05:18ID:???
>>769 訂正
push (@picup) if /<FOO>/ .. /<\/FOO>/ ;
 ↓
push (@picup,$_) if /<FOO>/ .. /<\/FOO>/ ;
0771カミ02/12/31 06:16ID:???
他で聞くところ無いので私にも教えてください。
某所のコードをモディファイして作成:try.pl
#try , throw ,catch の定義
sub try( &$ ) {
  my( $tryb, $catchb ) = @_;
  eval { &$tryb };
  if ( $@ ) {
   local $_ = $@;
   &$catchb;
  }
}
sub throw {
  die $_[0] ;
}
sub catch ( & ) {
  shift;
}
print "Throw cath Start\n";
try {
 if ($ARGV[0]=~/Exp1/) { throw "Excep1"; }
 elsif ($ARGV[0]=~/Exp2/) { throw "Excep2"; }
 print "Not throw\n";
}
catch {
/Excep1/ && do { print "catch1:$_\n";};
/Excep2/ && do { print "catch2:$_\n";};
};
0772カミ02/12/31 06:19ID:???
>>771
これは思いの他思い通り動きましたが、、
sub try ( &$ ) の&$と
sub catch ( & ) の& の意味が分かりません。
0773nobodyさん02/12/31 09:04ID:???
プロトタイプ厨 降臨

     ↓
0774nobodyさん02/12/31 09:06ID:???
動きません。助けてください。

mhile($i = 1);
print "gohe"
0775nobodyさん02/12/31 09:19ID:???
>>774
ネタ?
0776nobodyさん02/12/31 09:19ID:???
>>775
じゃなきゃ困るだろう。
0777nobodyさん02/12/31 09:20ID:f3dKkAkh
>>772
perlsubに書いてある。そのままサンプルで出てるよ。

http://www.kt.rim.or.jp/~kbk/perl5.005/perlsub.html
> 、&は“sub”キーワードや連続したカンマを要求 しないような無名サブルーチンを要求します。
0778nobodyさん02/12/31 09:31ID:f3dKkAkh
777で、引用してきた和訳はわけわからん・・

An "&" requires an anonymous sub-
routine, which, if passed as the first argument, does not
require the "sub" keyword or a subsequent comma.

&のところに入るのは、無名関数だけど、1つ目の引数としてとられるなら、
subキーワードや、次の引数と区切るコンマは必要ない。
0779nobodyさん02/12/31 09:33ID:???
>>778
&は(“sub”キーワードや連続したカンマを要求 しないような無名サブルーチン)を要求します。

って事じゃないの?subsequentの訳を思いっきり外してる気がするけれど
0780nobodyさん02/12/31 09:41ID:f3dKkAkh
ぅ。自分はこう理解したんだけど・・

↓実験用
#!/usr/local/bin/perl

sub hoge (&&&) {
print join(':', @_) . "\n";
}

hoge {
}
sub {
},
sub {
};
0781nobodyさん02/12/31 11:10ID:aM0LcM99
778が正解
0782nobodyさん02/12/31 11:47ID:YVY0+rTm
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://muryou.gasuki.com/mona/
0783カミ02/12/31 12:01ID:???
>>777-781さん感謝。おかげで頭の中の霧が晴れて来ました。
頂いた内容からその意味コメントしました。この理解で宜しいか?
sub try( &$ ) {
  my( $tryb, $catchb ) = @_;#try内のブロック,catch含むブロックを設定(呼び側ではカンマで区切る必要なし)
        #共に引数として事前評価されているので実行コードとなっている?
  eval { &$tryb };#try内のブロックを実行(dieを判断したいので敢えてeval内で実行)
  if ( $@ ) {
   local $_ = $@;
   &$catchb;#cathブロック実行
  }
}
sub throw {
  die $_[0] ;
}
sub catch ( & ) {
  shift;#catch内のブロックをそのまま実行。左辺の無いshiftは引数をそのまま評価する?
}
print "Throw cath Start\n";
try {
 if ($ARGV[0]=~/Exp1/) { throw "Excep1"; }
 elsif ($ARGV[0]=~/Exp2/) { throw "Excep2"; }
 print "Not throw\n";
}
catch {
/Excep1/ && do { print "catch1:$_\n";};
/Excep2/ && do { print "catch2:$_\n";};
};
0784nobodyさん02/12/31 12:09ID:f3dKkAkh
sub catch (&) {
shift;
}
は、shiftで、引数を一つもってきて、それが最後に評価したものだから、
それを戻り値として返す。っていう意味だね。
sub catch (&) {
return $_[0];
}
と同じ。
結論としては、無名関数のリファレンスが返される。
0785nobodyさん02/12/31 12:51ID:???
perlの勉強をはじめて半年ほどたち、入門本程度の内容なら理解できました。
ちょっと難しめの本をぱらぱらと読んでみると、
パイプとか、mod_perlとか、よくわからないものばかり。しかも読んでもいまいちぴんとこない。
脱初心者のためにみなさんはどのような事をされましたかっ!?
0786nobodyさん02/12/31 12:55ID:???
>>785
大げさなことしなきゃ入門書程度の知識で掲示板くらいは組めるからなぁ。
mod_系はlinuxの勉強してたときに覚えた。パイプはDOSの時名前だけ聞いて
これまたlinuxで本格的に使い始めた。
0787カミ02/12/31 14:19ID:???
>>784氏ありがとう
てことは、実際ctach内のブロックはsub catch内で実行されるのでなく
sub try の&$catchb;にて戻ったレファレンスが実行されると考えればいいのだね。

PS
 ところでmod_perって何?
0788nobodyさん02/12/31 14:37ID:???
俺も知りたい。mod_perって何?
0789nobodyさん02/12/31 14:51ID:???
mod_perl だよ。
検索すれ。
0790nobodyさん02/12/31 15:01ID:???
>>789
みんなmod_perlは知ってると思われ。
0791nobodyさん02/12/31 15:12ID:TZQCX2rE
ソケットでFTP接続して2ch.txtがあるかないか調べる方法ってありますか?
0792nobodyさん02/12/31 15:17ID:???
>>791
Socketパッケージはあるだろ。

で、何でhttpで行かないのか問いただして良いかい?
079379102/12/31 15:19ID:???
>>792
正直ー、ソケットの方とかあまり詳しくなかったです。
今からhttpでググッてきます。

079479102/12/31 15:25ID:???
ほんとは、FTPでログインをしてファイルを削除できればと試行錯誤しているんですが
for (1..10){
last if(FTP先の削除したいファイルが削除できたら)
削除処理
}
のような形にしたいんです。

ホウホウワカリマスデスカ?
0795nobodyさん02/12/31 15:27ID:???
>>794
ごめん、何がしたいのか1から説明して。
079679102/12/31 15:33ID:???
>>795

1. FTPで指定されたホストにログイン
2. ディレクトリィの移動
3. ファイルを削除するまで削除処理を実行する
4. 削除完了後にログアウト

この一連の処理を行いたいです。
0797nobodyさん02/12/31 15:38ID:???
>>796
いや、それを何に利用するのか。
0798nobodyさん02/12/31 17:34ID:???
>>796
system(rm -rf /home/user/hoge/data);
じゃだめ?
0799nobodyさん03/01/01 12:49ID:???
>>791
1 RFC959読む。他に拡張もあるが>>791の目的にはこれで充分だろう。
2 ftpをデバッグモードで動かしてRFCを理解する。
3 Net::FTPを入手して使う。
0800nobodyさん03/01/01 19:44ID:???
もめでとー  >みんな

今年も過疎板でがんばろー (・□・)ノ
0801nobodyさん03/01/01 22:24ID:lIl6EtKn
my $hash_ref =
 \(a => \@list_a,
   b => \@list_b,);

の場合、list_aの配列を取るにはどう書けばいいのですか?
0802nobodyさん03/01/01 22:48ID:lIl6EtKn
すみません。
my @list_a = @{${$hash_ref}{a}};
で逝けました。
0803nobodyさん03/01/01 23:08ID:???
>>802
ネタ?ヲタ?ヨタ?
0804nobodyさん03/01/01 23:17ID:ItqiYY13
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0805nobodyさん03/01/01 23:31ID:RvFz9efr
>>802
my @list_a = @{$hash_ref->{a}};
の方が普通・・だと思う。
0806nobodyさん03/01/01 23:33ID:RvFz9efr
最初のも、、これの方がいい。

my $hash_ref = {
a => \@list_a,
b => \@list_b,
};
0807nobodyさん03/01/01 23:50ID:RvFz9efr
なんかおかしいぞ・・・
(\$a, \$b, \$c)と、\($a, $b, $c)は同じ。つまり、

my $hash_ref =
\(a => \@list_a,
b => \@list_b,);
これは、(\'a', \\@list_a, \'b', \\@list_b)と同じだから、
左がスカラーだから、コンマ演算子で、、$hash_refには、最後の、
\\@list_bが入る
0808nobodyさん03/01/02 00:32ID:???
>>807
うーわー
もう何がなんだか・・・
これだからPerlは(以下略
0809nobodyさん03/01/02 00:35ID:???
>>808
すまんが同意。

Cのポインタは極めたぜ!とか自負してるレベルでは全然倒せないっす。。。
0810nobodyさん03/01/02 01:58ID:???
>>809
char **a[10][20]へのポインタを宣言してみてください
0811カミ03/01/02 03:38ID:???

例えば
$aaa = "aaa";
print ${aaa} ;#aaaが表示

このように変数名そのものは$と言う連想配列の要素らしい事がわかる
0812nobodyさん03/01/02 23:36ID:L6yfXpSS
>>811
それはちょっと無理が・・

その書き方は、単純に、変数名の区切りをはっきりとさせる。というだけだね。
$aaa = "hogehoge";
print "test:$aaabbbccc"; #test:だけ表示
print "test:${aaa}bbbccc"; #test:hogehogebbbccc
0813nobodyさん03/01/02 23:54ID:L6yfXpSS
>>808
わかりにくい部分は、、コンマ演算子の所かな。違うか。

$a = ('a', 'b', 'c'); #$aにはcが入る
$a = 'a', 'b', 'c'; #これは上の普通の書き方。$aにはcが入る
@a = ('a', 'b', 'c');
$a = @a; #これは$aには3が入る
0814yani ◆saNSktNEdQ 03/01/03 00:28ID:0E5Ge7qR
コンマ演算子の働きと言うよりは、list constructor では
と言ったほうがいいかも知れない。
qw(...)でも同じように働くから。
しかし本当のところはPerlのソースコードを読まないと分からないのかも知れない。
内部的にコンマ演算子使ってるかもしれないし。

0815nobodyさん03/01/03 00:57ID:???
>>813
コンマ演算子は代入演算子より優先順位が低い。

$a = 'a', 'b', 'c'; # これはaが入る
@a = 'a', $b = 'b', 'c'; # これは @a = ('a'); $b = 'b'; 'c' と同じ
081681303/01/03 01:13ID:nupLg+Ov
うー知らんかった。単純に。優先順位についてもっと勉強するか・・
0817nobodyさん03/01/03 01:14ID:???
>>816
()で囲めば解決。
0818カミ03/01/03 16:20ID:???
>>812氏、確かにその解釈が正解の様です。
しかし、ちと違うが下の様な実験結果もしてみた。
$hash{array} = [ 1,2,3 ];
$s = scalar $hash{array} ;
if ($s =~/^ARRAY/ ) {
print "scalar :$s\n" ;
for (@{$s}) {
print $_."\n" ;
}
}
1;
これを実行
scalar :ARRAY(0x183f04c)
1
2
3

この場合 @と言う連想配列の要素にARRAY(0x183f04c)が有る様に思える。
0819nobodyさん03/01/03 17:36ID:???
>>813
何が言いたいのかわからんのだが…。
@{$s} == @$s == ただのデリファレンス
じゃないのか?
082081903/01/03 17:37ID:???
間違い、>>813じゃなくて>>818。
0821nobodyさん03/01/03 21:46ID:nupLg+Ov
>>818
そんな難しいことしなくても、Data::Dumperを使うとざざーっと出してくれる

>>811でも変なこと言ってるけど、名前の部分が空っぽの記号だけの変数なんて存在しない。
>>812を読めばわかるじゃろ。
0822nobodyさん03/01/03 22:38ID:???
>>811の理屈は面白いw
0823nobodyさん03/01/03 22:57ID:???
どうやって実装しているかが分かれば…
0824yani ◆saNSktNEdQ 03/01/04 00:02ID:8PdubkBh
参考になるかどうか知らないが、%::っていうのがある。
0825yani ◆saNSktNEdQ 03/01/04 00:03ID:8PdubkBh
まあ、::が入ってるから、関係ないかな。
0826カミ03/01/04 00:38ID:???
>>819-822 単なる参照外しした結果だった様ですね。
先の実験で私が感動したのは
$s = scalar $hash{array} ;して if ($s =~/^ARRAY/ ) {が真になる。

$sにはARRAY(XXXXX)というキーとなる値が入り
@{$s}にて@なる連想配列(配列の親玉の様な)から配列を参照できる。
この様に思えるコードが実行されたところです。

もちっと http://www.kt.rim.or.jp/~kbk/perl5.005/perlref.html を勉強します。

PS
 無名関数ってラムダですよね?
0827カミ03/01/04 16:41ID:???
>>824 氏
その%::ってどう使うのですか?想像つきません。
0828nobodyさん03/01/04 17:29ID:???
>>826
>$s = scalar $hash{array}

で$sにARRAY〜が入っているのは
scalarがリファレンスを返したりもするのですね。

>@{$s}にて@なる連想配列(配列の親玉の様な)から配列を参照できる。

@なる連想配列云々は普段使用している参照となにも変わらないような・・・

$s = \$hash{array};
for each (@$s) { etc... }

リファレンスが入っているのなら
@{$s} は @$sそのものですし。。
0829nobodyさん03/01/04 18:11ID:???
>で$sにARRAY〜が入っているのは
で$sにARRAY〜が入っているのね。
の間違いです。ごめん。。

scalar がリファレンスを返したのは
= [1, 2, 3];
で定数配列? を代入させたからですか・・・

納得。
0830nobodyさん03/01/04 18:51ID:???
>>829

my $a = ['aho'];
print $$a[0];
$$a[0] = 'baka';
print $$a[0];

って代入もできるから定数ではないYO
\[etc...]
で定数配列になる

この変数はアドレスだけで、特に名前は存在しないから
無名変数と言えなくもない

変数名はただのメモリアドレス識別子ともいえるから
特に強調することではないYO
0831nobodyさん03/01/04 19:08ID:???
質問です。 $urlで指定したファイルを取得するプログラムを作ったのですが、正しいURLを入力していても404 Not Found等を返す事があり困っています。
404 Not Foundを返すファイルへの対処方法を教えてください。

正常 http://www.yahoo.com/index.html ダメ :http://www.google.co.jp/index.html

$url="http://www.yahoo.com/index.html";
$url =~ s/http\:\/\///g;
@list = split('/',$url);
$host = shift(@list);
$file = pop(@list);
push(@list,$file);
$path = join('/',@list);
$addr = (gethostbyname($host))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
@data;
socket(S, 2, 1, 0);
connect(S, $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET /".$path." HTTP/1.0\r\n\r\n";
while (<S>) { push(@data,$_); }
close(S);

$delnum = 1;
foreach(@data){ $delnum++; if(/Content-Type:/){ last; } }
splice (@data,0,$delnum);
open OUT,">$file";
binmode OUT;
foreach $var(@data){ print OUT$var; }
close OUT;
0832nobodyさん03/01/04 19:49ID:???
>>831
わざわざsocketを使っているのって凄いでつね。
どんな環境(OSなど)かは判りませんが、楽してモジュール使うとか、system 'wget -色々'; とか使った方が楽なような気がしまつでつ。
あと、UA送信した方がよいかもしれません。
それともPerlが、勝手に付けてくれるのかな?
(自鯖ではUA無しは即アク禁にしていまつ。)
0833nobodyさん03/01/04 19:50ID:???
>>831
件の
http://www.google.co.jp/index.html
は・・・GETだけですと、302のLocationを返すみたいですね。
試してみた限りではHost: を送信するとウェプページが返ってきました。

print S "GET /".$path." HTTP/1.0\r\n";
print S "Host: hogehoge\r\n";
print S "\r\n";

グーグルではHost: もチェックしているようです。
083483103/01/04 22:18ID:BNGRljfr
>>832 さん
>>833 さん
レスありがとうございます。
ググルは御陰様で解決しました。
404を返していた(個人サイトなので公開は控えておきます)サーバは
RefererにHostを入れて送ることで正常に取得出来ました。
どうやら直リンクを禁止してたようです。

>system 'wget -色々';
窓ユーザーなのでPerlからUNIXのコマンドが使えるとは知りませんでした。
これを機会にUNIXの勉強をしようかと思います。

#改良版
print S "GET /".$path." HTTP/1.0\r\n";
print S "Accept: */*\r\n";
print S "Referer: http://".$host."\r\n";
print S "Accept-Language: ja\r\n";
print S "Accept-encoding: gzip, deflate\r\n";
print S "User-Agent: Mozilla/4.0\r\n";
print S "Connection: Keep-Alive\r\n";
print S "Host: ".$host."\r\n";
print S "\r\n";
0835nobodyさん03/01/04 22:27ID:tgEtvNOB
>>827
場所をちゃんと指定した変数(?)を使わないといけない場合(use strict)に使う。かも。
%::a == %main::aだから・・
0836偽PG03/01/05 00:04ID:X0VKDjVo
Perlで開発するのか分かりませんがご教授を。
オンラインで利用可能なツールの作成を考えている状況です。

あるWEBページがあります。
そのページには「IDNumber的な数字」「誕生国」「人名」が並んでいます。

上記はID=人名の関係です。
例)
ID=1 / 誕生国=日本 / 人名=豊臣秀吉
ID=2 / 誕生国=中国 / 人名=諸葛孔明

【考えているツールの流れ】
�@入力フォームを用意して文章を入力する。
 (文章には不要情報も含まれている)
↓
�A文章中にIDが存在する場合、そのIDに該当する生まれ情報を
 指定WEBページより取得する。
 (WEBページの中にテーブルでID・誕生国・人名が並んでいる)
↓
�B取得した誕生国情報が日本3人・中国2人と複数存在した時には
 それぞれの誕生国の数をカウントする。
↓
�C結果をHTML形式にして表示させる。

ローカルの情報ではなくWEBページから情報を取得して
カウントする事は可能なのでしょうか?

いちいちWEBページの情報を参照するのが面倒だと思って
作成を考えた次第です。
方法等はちょっと思いつきに近いものがあります。
スレ違いなら申し訳ないです。
0837nobodyさん03/01/05 00:06ID:???
>>836
環境によって読めない文字を平気で使う奴にWebプログラマとしての心得があるとはとても思えない。
0838偽PG03/01/05 00:15ID:X0VKDjVo
機種依存文字については申し訳ないです。
これからWEBプログラムを学ぼうとしたのに
こんな所で突っ込まれては俺もダメですな。マジ勉強しなきゃ。
0839nobodyさん03/01/05 00:17ID:???
>>838
ああ、すまんな。言い過ぎた。

>ローカルの情報ではなくWEBページから情報を取得して
>カウントする事は可能なのでしょうか?

サーバが外にコネクションを張ることを許可しているならできる。
0840nobodyさん03/01/05 00:29ID:0ij2w7ok
CGIのためにWindows上でテスト用としてperl使えるようにしたいんですけど
実行できないで困っています。ActivePerlをインストールしました。インストール
先はc:\perl\binになっていました。pathも通っているので、DOSプロンプトで
perl -vとやってみると、ちゃんとバージョン情報がでるので、一応動くようなのですが
ブラウザからCGIを実行させようとするとできません。*.plファイルの最初の一行は
#!/perl/bin/perlとしているのですがこれが間違いでしょうか?
エラーメッセージは

Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:

'perl' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となるんですが、どなたか助言お願いします
0841nobodyさん03/01/05 00:31ID:???
>>840
で、どのサーバ使ってるかは秘密?
0842偽PG03/01/05 00:34ID:???
>>839
ありがとうございます!
後は許可しているかの確認とWEBプログラムか。
行うことの目的ができて感謝です。
0843nobodyさん03/01/05 00:50ID:???
>>840
ウェブサーバソフトの名前を書いてよ。
084484003/01/05 00:52ID:0ij2w7ok
>>841 >>843

すいませんでした。
AN HTTPD daemon ver1.42dというやつです。
0845nobodyさん03/01/05 00:54ID:???
>>844
きちんと一行目のPerlへのパスを解釈するようにANHTTPdを設定した?
084684003/01/05 01:00ID:0ij2w7ok
>>845
それはどこで設定するのでしょう?
とりあえずDocumentRootの設定と/~UserNameと /cgi-bin/の仮想パスとローカルパス
というところはチェックしてみました。その他はいじってません
0847nobodyさん03/01/05 01:01ID:???
>>846
ん?
CGIの設定のところにそれらしい項目がないか?

だんだんスレ違いな話題になってきたな。しかたないけど。
084884003/01/05 01:04ID:0ij2w7ok
>>847
すいません。やっとわかりました。
「#!の行を調べる」というチェック項目があってそこに
チェックをいれたら実行することができました。
ありがとうございます。スレ違いごめんなさい。
084984703/01/05 01:05ID:???
試しにインストールしてみた。
拡張子ごとの設定の編集のところで、「#!の行を調べる。」という項目があるでしょ。
そこにチェックを入れてみて。
085084903/01/05 01:05ID:???
あら・・・
■ このスレッドは過去ログ倉庫に格納されています