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

Perl 初心者コーナー Part22

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

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

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

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


CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
参考書籍の話題は、【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0359nobodyさん03/04/27 00:22ID:???
>>358
それじゃうまくねぇだろ
0360nobodyさん03/04/27 00:23ID:BGNE0ecd
Windowsでperlからパイプでsendmail使いたいんですけど、
できますかねぇ?
0361nobodyさん03/04/27 00:27ID:???
while ( ( $key , $value ) = each %data ){
print "$key $value \n " ;
}

とか

foreach $key ( keys( %data ) ) {
print "$key $data{$key} \n "
}
0362bloom03/04/27 00:29ID:3nPIuagT
http://homepage.mac.com/ayaya16/
036335503/04/27 00:34ID:AWb8yDTe
>>356さん、即レスありがとうです。でも…
syntax error at ./util.pl line 28, near ")["
syntax error at ./util.pl line 45, near "}"
と、perlは逝っております。
0364nobodyさん03/04/27 00:38ID:???
>>357
foreach $key (sort {$a cmp $b} keys %data) {
printf "$key $data{$$key} \n;
}
0365nobodyさん03/04/27 00:40ID:???
>>363
省略して書いてるんだから行番号でエラー書かれたってわからんよ。
0366nobodyさん03/04/27 00:41ID:???
>>364
foreach $key (sort {$a cmp $b} keys %data) {
print "$key $data{$key} \n;
}

ゴミが混じってしまった
036735503/04/27 00:59ID:AWb8yDTe
>>365さん、失礼しました。
syntax error at ./util.pl line 28, near ")["
これは、「foreach ( split( /;/, $_)[0] ) {」をいっています。
syntax error at ./util.pl line 45, near "}"
これは、util.plの最後の「}」です。
0368nobodyさん03/04/27 01:01ID:???
>>366
なんでキーで比較してんの
0369nobodyさん03/04/27 01:02ID:???
>>367
それぐらい自分でなんとかしろよ
foreach ( (split( /;/, $_))[0] ) {
0370nobodyさん03/04/27 01:04ID:???
っつーかそもそも>>356ってネタだろ?
0371nobodyさん03/04/27 01:09ID:???
あと>>355は何もエラー出なかったぞ?>355
>Use of uninitialized value in split at ./util.pl line 27.」

>思うに、$_[0]が初期化されていないと言いたいんでしょうが
は本当か?
0372nobodyさん03/04/27 01:17ID:???
>>368
ああいけね。キーで並べるのかと思った。値の降順か。
ま、あとは本人がなんとかできるだろ。
0373nobodyさん03/04/27 01:19ID:???
できないに10円賭けますた。
0374( ´Д`)/< 先生!!こんなのが有りますた。03/04/27 01:34ID:???
http://www.yamazaki.90.kg/hankaku/hankaku07.html
http://www.yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku08.html
http://yamazaki.90.kg/hankaku/hankaku10.html
http://www.yamazaki.90.kg/hankaku/hankaku01.html
http://yamazaki.90.kg/hankaku/hankaku03.html
http://www.yamazaki.90.kg/hankaku/hankaku02.html
http://yamazaki.90.kg/hankaku/hankaku09.html
http://www.yamazaki.90.kg/hankaku/hankaku06.html
http://yamazaki.90.kg/hankaku/hankaku04.html
http://www.yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku05.html
037535503/04/27 01:37ID:AWb8yDTe
>>369
いやはや、申し訳ないです。ド初心者なもんで。
>>371
どうやら、それ以外にマズーな所が有るようですね。
大体、どう考えても、本来エラーは出ないと思うんです。

頭を冷やしてきます。
レスをしていただいた皆様、ありがとうです。
037635503/04/27 01:39ID:???
無意味にageてしまった。ごめんなさい。
037735603/04/27 01:43ID:???
>>370
失礼な!
ちょっと、間違ってしまっただけでネタ扱いか!

スマソ
0378nobodyさん03/04/27 02:16ID:???
なにがなにやら
037937003/04/27 02:27ID:???
>>377
foreachにスカラーを渡すのを教えるなんて素敵な初心者いじめだなあと思ってしまいますた。

スマソ
0380nobodyさん03/04/27 05:22ID:a4qvC/X7
■これだとループさせれるけど、キーを指定しての値表示ができない。
use constant HOGE => ('hoge'=>'aaa','hoge2'=>'bbb','hoge3'=>'ccc');
foreach(HOGE){
print;
}
■これだと、キーを指定しての値表示ができるけどループさせられない。
use constant HONGE => {'hoge'=>'aaa','hoge2'=>'bbb','hoge3'};
print HONGE->{'hoge'};


どうにかしてループOK、個々の値抜き出しOK
な方法は無いでしょうか?
038125003/04/27 05:43ID:???
>>380
use constant HONGE => ('hoge'=>'aaa','hoge2'=>'bbb','hoge3'=>'efh');
%hage = HONGE;
print $hage{'hoge'};


use constant HOGE => {'hoge'=>'aaa','hoge2'=>'bbb','hoge3'=>'efh'};
$hage = HOGE;
foreach(keys(%{$hage})){
print $hage->{$_};
}

CONST使わなければよいってのは駄目なん?
038238003/04/27 05:51ID:a4qvC/X7
>>381
ありがとうございます。
その方法でできました。
けど、他の変数に代入せずに表示させるというのは無理なんですかね?
CONST使わなければ良いんですけど勉強の為という事で。。
038338003/04/27 05:55ID:???
定数だとすぐ分かる、というのと
定数として扱うなら変数にぶち込むより、なにかが良いらしい、というのと
へっぽこな自分にとってはなんかかっこ良く見える(結構なウエイトを占める)
というのも理由の一つですw
038425003/04/27 06:04ID:???
グロブとか昔の仕様(Perl4)絡みっぽいので、詳しい事はわからないのだけど・・・
{
  my $hage = {'hoge'=>'aaa','hoge2'=>'bbb','hoge3'=>'efh'};
  foreach(keys(%{$hage})){
    print $hage->{$_};
  }
}
とか定数だとこうやっちゃうことが多いから、使う所無かったりします
038538003/04/27 06:13ID:???
>>384
その方法で行こうと思います。
こんな時間にどうもありがとうございました。
0386nobodyさん03/04/27 06:35ID:MIfRpB25
http://www.k-514.com/
0387世界にひとつだけの花(コピペ推奨)03/04/27 11:28ID:???
<血液型A型の一般的な特徴>(見せかけのもっともらしさ(偽善)に騙されるな!!)
●とにかく神経質で気が小さい、了見が狭い(臆病、二言目には「世間」(「世間」と言っても、一部のA型を中心とした一部の人間の動向に過ぎない))
●他人に異常に干渉して自分たちの古いシキタリを押し付け、それから少しでも外れる奴に対しては好戦的でファイト満々な態度をとり、かなりキモイ(自己中心、硬直的でデリカシーがない)
●妙に気位が高く、自分が馬鹿にされるとカッと怒るくせに平気で他人を馬鹿にしようとする(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けていることが多い)
●権力・強者には平身低頭だが、弱者に対しては八つ当たり等していじめる(強い者にはへつらい、弱い者に対してはいじめる(特に人が見ていない場合))
●あら探しだけは名人級でウザく、とにかく否定的(例え10の長所があっても褒めることをせず、たった1つの短所を見つけては貶す)
●基本的に悲観主義でマイナス思考に支配されているため性格が鬱陶しい(根暗)
●何でも「右へ習え」で、単独では何もできない(群れでしか行動できないヘタレ)
●少数派の異質・異文化を理解しようとせず、あるいは理解を示さず、排斥する(差別主義者、狭量、視野が狭い、多数派=正しい と信じて疑わない)
●集団によるいじめのリーダーとなり皆を先導する(陰湿かつ陰険で狡猾)
●他人の悪口・陰口を好むと同時に、自分は他人からどう見られているか、人の目を異常に気にする(自分がそうだから容易に他人を信用できない、ポーズだけで中身を伴っていない、世間体命)
●たとえ友達が多くても、いずれも浅い付き合いでしかなく、心の友達はおらず孤独(心の感度が低く、包容力がなく、冷酷だから)
●頭が硬く融通が利かないためストレスを溜め込みやすく、また短気で、地雷持ちが多い(不合理な馬鹿)
●たとえ後で自分の誤りに気づいても、素直に謝れず強引に筋を通し、こじつけの言い訳ばかりする(もう腹を切るしかない!)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男前やのに、なんでや!(あの野郎の足を引っ張ってやる!!)」)
0388nobodyさん03/04/27 19:17ID:???
use constant HASH => (hoge => 'aaa', hoge2 => 'bbb', hoge3 =>'efh'};
use constant HASHREF => {hoge => 'aaa', hoge2 => 'bbb', hoge3 =>'efh'};

print ${{+HASH}}{hoge};
# print {+HASH}->{hoge};は出来ない…

foreach (keys %{HASHREF()}) {
 print HASHREF->{$_};
}
foreach (keys %{+HASHREF}) {
 print HASHREF->{$_};
}
0389nobodyさん03/04/27 20:30ID:AxMzTUBk
*.cgi?a
とかありますよね?
このように、?aならαという処理をする、?bならβという処理をする
というふうにするにはどうすればいいのでしょうか?
あと、これってGET,POST関係ありますよね?
トクトクです。動作可能かもお願いします
0390nobodyさん03/04/27 20:35ID:???
>>389
*.cgi?a だと$ENV{QUERY_STRING}に"a"が入ってる。
$ENV{REQUEST_METHOD}はGETになる。
0391nobodyさん03/04/27 20:38ID:AxMzTUBk
>>390
ありがとうございます。
$ENV{QUERY_STRING}は環境変数だからGET POST関係ないですね。
$ENV{REQUEST_METHOD}がGET専用ということですか?
0392nobodyさん03/04/27 20:42ID:???
>>389
死ね糞マルチ
0393nobodyさん03/04/27 20:44ID:???
>>391
どっちも環境変数だよ!
わけわからねえよ!氏ねよヴォケ!
0394nobodyさん03/04/27 20:49ID:AxMzTUBk
>>392
わざわざプログラム板からご苦労です。( ´,_ゝ`)
0395nobodyさん03/04/27 20:52ID:???
>>391
違う$ENV{REQUEST_METHOD}はGETなら"GET"が、POSTなら"POST"が入ってる。
で、何がしたいの?自分でスクリプトを組みたいのか、
どっかから拾ってきたやつを動かしたいのかどっちだ?
0396nobodyさん03/04/27 20:54ID:???
>>391
自分でCGI書いたことある?
0397nobodyさん03/04/27 20:54ID:AxMzTUBk
>>395
丁寧にありがとうございます。
自分で組んでいるんです。
中身がopenなら、テキストにipを書き込み、
closeならcloseと書き込むスクリプトです。
自宅鯖の公開中かどうかというのを表示するスクリプトです。
0398_03/04/27 20:55ID:???
( ´∀`)/< 先生!!こんなのを見つけました。
http://www.yamazaki.90.kg/hankaku/hankaku02.html
http://www.yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku05.html
http://yamazaki.90.kg/hankaku/hankaku10.html
http://www.yamazaki.90.kg/hankaku/hankaku08.html
http://yamazaki.90.kg/hankaku/hankaku03.html
http://www.yamazaki.90.kg/hankaku/hankaku07html
http://yamazaki.90.kg/hankaku/hankaku01.html
http://www.yamazaki.90.kg/hankaku/hankaku06.html
http://yamazaki.90.kg/hankaku/hankaku04.html
http://www.yamazaki.90.kg/hankaku/hankaku09.html
0399nobodyさん03/04/27 20:58ID:???
Perlスレは大型連休になるとあからさまに初心者が増えるよな。
連休でCGI作ろうっていう学生が多いんだろうが、自分で努力する前に聞こうとする奴が多いのは萎えるな。
>>1も読めないような奴が多い。

まぁ、そんなバカでも挑戦しようと思える程、Perlが優しいってことなのかもしれないが。
0400nobodyさん03/04/27 20:58ID:???
>>397
$ENV{'QUERY_STRING'}に何が入るか分かってる?
0401nobodyさん03/04/27 21:01ID:???
プログラム技術板とこっちにマルチポストしたうえに、Perlとは関係ない話だし。
しかも悪びれる様子もない。
0402nobodyさん03/04/27 21:04ID:AxMzTUBk
>>401
間違えてプログラム板にカキコしてしまい、こちらに書き直しました。
申し訳ありませんでした。
0403nobodyさん03/04/27 21:06ID:???
>>397
半角英数だけなんだったらデコードする必要は無いよ。
その後の処理は$ENV{'QUERY_STRING'}にどんな値が入っているか分かれば簡単ですよ。
0404nobodyさん03/04/27 21:10ID:AxMzTUBk
>>403
ありがとうございました。マルチポストでご迷惑おかけしました。。
040540403/04/27 21:46ID:AxMzTUBk
すみません。問題が生じました。
#!/usr/bin/perl

open(FILE, ">ip.txt");
$addr = $ENV{REMOTE_ADDR};
$mode = $ENV{QUERY_STRING};

if($mode eq 'open'){print FILE "$addr\n";}
elsif($mode eq 'close'){print FILE "close\n";}
close(FILE);

open(FILE2, "ip.txt");
$data = <FILE2>;
if($data =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/){
&connection;
}
else{
&unconnection;
}
0406404 続き03/04/27 21:47ID:AxMzTUBk
sub connection
{
print "content-type: text/html\n\n";
print "<html><head><title>公開中</title></head>\n";
print "<body><a href=\"http:\/\/$data\"><font color=\"blue\">公開中です。</font></a>\n";
print "</html>\n";
exit;
}
sub unconnection
{
print "content-type: text/html\n\n";
print "<html><head><title>非公開中</title></head>\n";
print "<body><font size=\"2\" color=\"red\">非公開中です。</font></body>\n";
print "</html>\n";
exit;
}

とすると、.cgiに?つけないでアクセスしたらテキストファイルの中身を消してしまいます。
どうしてでしょうか?
0407nobodyさん03/04/27 21:54ID:???
>>406
消さないようにすればいい。
消すようにしてるから悪い。
ちゃんと勉強しろ。
0408404 続き03/04/27 21:55ID:AxMzTUBk
>>407
分かりました。一晩かんがえてみます
0409nobodyさん03/04/27 22:05ID:???
>>408
どの時点でファイルが消えてるのかをちゃんと把握しよう。
0410404 続き03/04/27 22:22ID:AxMzTUBk
>>409
open(FILE, ">ip.txt");
の時点できえるんですよね。。。
うーん。どうするべきか・・・
0411動画直リン03/04/27 22:29ID:3nPIuagT
http://homepage.mac.com/hitomi18/
0412404 続き03/04/27 22:32ID:AxMzTUBk
解決しました。openより前で分岐しなければならなかったんですね。勉強になりました。ありがとうございました。
$addr = $ENV{REMOTE_ADDR};
$mode = $ENV{QUERY_STRING};

if($mode eq 'open'){
open(FILE, ">ip.txt");
print FILE "$addr\n";
close(FILE);
}
elsif($mode eq 'close'){
open(FILE, ">ip.txt");
print FILE "close\n";
close(FILE);
}

open(FILE, "ip.txt");
$data = <FILE>;

if($data =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/){
&connection;
}
else{




0413__03/04/27 22:34ID:???
 ( ・∀・)/< こんなのみつけたっち♪ 
http://www.yamazaki.90.kg/hankaku/hankaku02.html
http://www.yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku08.html
http://yamazaki.90.kg/hankaku/hankaku10.html
http://www.yamazaki.90.kg/hankaku/hankaku05.html
http://yamazaki.90.kg/hankaku/hankaku03.html
http://www.yamazaki.90.kg/hankaku/hankaku07html
http://yamazaki.90.kg/hankaku/hankaku01.html
http://www.yamazaki.90.kg/hankaku/hankaku06.html
http://yamazaki.90.kg/hankaku/hankaku04.html
http://www.yamazaki.90.kg/hankaku/hankaku09.html
0414nobodyさん03/04/27 23:10ID:???
>>412
前に来たやつだろ?
しかし、無駄なやり方してんなぁ
0415404 続き03/04/27 23:12ID:AxMzTUBk
>>414
まだ初めて間もないもので・・・・
1ヶ月・・かな
0416nobodyさん03/04/28 00:33ID:???
1ヶ月もやってんのか。
0417nobodyさん03/04/28 01:21ID:Gjra4FR3
JavaScriptのように、リアルタイムでブラウザ表示させる
ようなプログラミングはPerlやPHPではできないのでしょ
うか。

初心者過ぎて申し訳ございません。
0418nobodyさん03/04/28 01:24ID:???
>417
リアルタイムに「上から順番に」表示するだけ(単純に表示を遅らせるだけ)なら
できなくもないが、基本的には無理。
HTTPの仕様。
というかスレ違い。
0419nobodyさん03/04/28 01:25ID:???
>>417
表示って何を?
http:はコネクションレスだからアクセスに対して結果を
受け取ったら終わりだぞ
JavaScriptはスクリプトのコードを受け取って自分のPC上で
動いているからリアルタイムに動いているような動作をするだけだ
0420nobodyさん03/04/28 01:59ID:???
cgi-libのようなもので、もう少し強化した
Htmlソースを書き出してくれるモジュールってありませんか?
0421nobodyさん03/04/28 02:07ID:???
>>420
Perlモジュールについて
http://pc2.2ch.net/test/read.cgi/php/997829243/l50

こっちのテンプレや過去ログ探して見たら?
0422nobodyさん03/04/28 02:18ID:???
ブラウザの解放の話もわからないレベル低い奴らだから
このスレでは無理ぽ
0423nobodyさん03/04/28 02:25ID:???
>>422
へぇ〜、君ってすごいんだね( ´,_ゝ`)プッ
0424nobodyさん03/04/28 02:43ID:Gjra4FR3
>>419
そうですよね。
厨房過ぎて恥ずかしい次第です。
カウントダウンの表示とかは、JavaScriptとか
アプレットとかFlashとかでクライアント操作
させて、指定時刻になったらcgiに渡す操作を
するしかないのですよね。

厨房質問に答えていただき有難うございました。
0425sage03/04/28 02:45ID:Gjra4FR3
>>418
質問にわざわざ答えていただき有難うございます。

そしてsage忘れてすみません。
やはり厨房丸出し。。。
0426nobodyさん03/04/28 04:29ID:???
>>425
下がってないぞ(w
0427nobodyさん03/04/28 17:35ID:???
>>422
このスレの住人は、browser_release.pmの使い方も知らないDQNだから
あまり相手にしないほうがいいよ。
0428nobodyさん03/04/28 17:45ID:???
>>427
(^∀^)ゲラゲラ
0429nobodyさん03/04/28 23:24ID:???
error()でexitじゃなくて、Error.pmとかを使って例外処理が入ってる
掲示板などを配布してる所ってありませんか?知ってたら教えてください。
0430nobodyさん03/04/28 23:59ID:???
>>429
よーわからん。
例外処理って何がしたいのさせたいの?
そもそも「例外処理」の意味自体もはき違えてそうだけど。
いやその前にスレ違いだな。藁
0431nobodyさん03/04/29 00:09ID:???
出力中に、ファイル開けなかったぽい、って出て中途半端な状態で表示されたり、
もうちょっと上品に(致命的な)エラーを伝えたいなーって思って…

具体的なやりかたを教えて、、って書いてもいいんですが、もしそういうのがあれば
いちいち説明してもらわなくてもいいからいいかなって思って。。
0432nobodyさん03/04/29 00:14ID:???
>431
まずは日本語を正確に伝えられるようになってくれ。
0433nobodyさん03/04/29 00:21ID:???
頭がサスペンドしてるんでー…1行目と2行目がつながってないな。。

自分がやりたいのは、どのerror()で強制終了しても、後始末をすることを
考慮に入れてるスクリプトが全然無いから、そういうのを自分で作るということ。

それが広まれば、少しは、そんなことを考慮に入れたものが作られるようになるかなって思ったから。
0434bloom03/04/29 00:29ID:23csOg+c
http://homepage.mac.com/ayaya16/
0435nobodyさん03/04/29 00:39ID:???
>>433
がんばってくださいな
0436ライラ03/04/29 03:30ID:???
最近、ホームページ作ろうと思いそれに伴って
BBSを付けたいのです。
それで、この2chのBBSをまねようと思うのですが、
どこで、どうやればいいのですか?

出来れば、分かりやすく教えて下さい。
0437nobodyさん03/04/29 03:38ID:???

誰かが、ものすごい勢いで2ch型掲示板を探すスレ
http://pc2.2ch.net/test/read.cgi/php/1023589390/
0438ライラ03/04/29 04:14ID:???
さんきゅ
0439nobodyさん03/04/29 04:25ID:???
>>429
改造したいのか?
でなければどう実装されていようがどうでもいいはずだけど。

PerlにこだわらなければRubyで書かれたものを探せば見つかるんじゃないかな。
0440bloom03/04/29 04:29ID:23csOg+c
http://homepage.mac.com/ayaya16/
0441nobodyさん03/04/29 05:37ID:???
>>433
どこまで慎重にエラー処理するかはプログラムやそれで
扱うデータの重要度にもよる。

ランタイムエラーを起こす可能性がある箇所を全て把握
するには結構な知識が必要だし、そもそもいつシグナルが
飛んできて殺されるか分からん。トラップにコストをかける
意義があるか無いかを判断した上で、要らんと思ったら省く。

まぁどんなスクリプトを見てきた上で、「後始末をすることを
考慮に入れてるスクリプトが全然無い」という感想を持つに
至ったかは知らんが。(w
0442nobodyさん03/04/29 06:37ID:???
こういう本が参考になるかも。
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06420-4
0443nobodyさん03/04/29 08:56ID:???
>>439
Ruby自体はいいと思うんだが、最新Ver.を導入している鯖が少ないんだよな。
0444nobodyさん03/04/29 10:02ID:j97vjhfH
>>429
die使え
0445nobodyさん03/04/29 11:12ID:???
>>443
perlも最新verのサバーは少ない
0446nobodyさん03/04/29 16:00ID:qzwrs6CU
$kurae="スカラー波";
print $kurae; # 暗殺
=cut
【電磁波?】パナウェーブって何よ?【白装束】@お祭りch
http://live5.2ch.net/test/read.cgi/festival/1051521132/l50
[タマちゃん]謎の白装束軍団に対抗して黒装束オフ2@突発OFF
http://life2.2ch.net/test/read.cgi/offevent/1051588043/l50
=cut
0447nobodyさん03/04/29 16:12ID:???
>>445
Perl5以上なら最新と言えないか?
0448nobodyさん03/04/29 16:15ID:???
素朴な疑問なんですが、ハッシュなどの添え字の部分
$abc{xxx} / $abc{'xxx'}
添え字が英数字だけの場合、「''」をつけない場合のデメリットってありますか?
今まではつけるようにしていたんですが、
特にデメリットがないなら、別に付けなくてもいいかなと・・・。
0449nobodyさん03/04/29 16:19ID:qzwrs6CU
>>447
Perl5.8未満の場合、JPerl使わないと正規表現に一部日本語が使えなかった筈
0450nobodyさん03/04/29 16:20ID:7QU29USV
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0451nobodyさん03/04/29 16:33ID:???
http://perldoc.jp/docs/perl/5.8.0/perldelta.pod
しっかり読もう。
0452nobodyさん03/04/29 17:10ID:jjc4BdFL
引数にメールアドレスを使う(http://hoge/hoge.cgi?mailaddress=メールアドレス てな感じ)
メーリングリストのCGIを使ってるのですが、
メールアドレスに + などが含まれるとうまくいきません(当たり前ですが)
対処法はあるでしょうか?
0453nobodyさん03/04/29 17:16ID:???
>>452
あいまいな記憶だが、+はデコード時に半角スペースにしてた気が・・・
0454nobodyさん03/04/29 17:22ID:???
+を %20 に変更すればその場をしのげるが、
どのみち、0-9 a-z A-Z _ - . * 以外の文字を使われると破錠する。
詳しくは、URLエンコードでググって。
0455独り言03/04/29 17:26ID:???
448を見て、ちょっと思ったのだが、
プログラミングPerl改訂版の4章(リファレンス)を読んでも全然意味がわからないよ。
C言語のポインタとか分かってる方が理解が早いのかな?(Cは全然知らんが)
リファレンスがスッキリ分かる書籍とかないかなぁ。

以前、オブジェクト指向ってどんなんかなぁと思って、
PerlとかJavaのそれ関連の本読んで全然意味が分からなかったことがあったが、
Rubyプログラミング入門って本を読んだらちょっと理解できたことがあったな。
それを読むまでは、
オブジェクト?はぁ?
メソッド?はぁ?
クラス?はぁ?
って感じだったんだが、その本では、自動販売機を例にしていて
すごく分かりやすかったなぁ。
クラスとは自販機の設計図です。
オブジェクトはそれをもとに作られた自販機そのものです。
メソッドは自販機のボタンです。と。
オブジェクトは機能とデータを持っていて、メソッドで機能を呼ぶと。
自販機だったらボタンを押す(メソッド)とジュース(データ)が出てくる(機能)と。。。
ちょっと感動したもんだ。

そんな感動するような、リファレンスの解説があったら読みたいもんだ。
0456nobodyさん03/04/29 22:34ID:???
クラスもオブジェクトだけどな。
自販機そのものはインスタンスだろ
0457nobodyさん03/04/30 00:12ID:???
>>455
リファレンスとは、Cのポインタ相当。
変数に入ってるデータのメモリアドレスを返す。
変数の中に、長文の文字列が入ってるとする。
それを、サブルーチンに引数として渡す場合、すべての長文の文字列をコピーする。
リファレンスで渡すと、文字列の先頭のアドレスだけを渡す。
文字列は、連続したアドレスに入ってるので、先頭のアドレスが分かれば、文字列すべてがわかる。

・・・わかるか?
045825003/04/30 01:20ID:???
$data = ayaya->new($hanya)->hoe->return;

ってかけるとカッコいいしとかいってみる・・・
■ このスレッドは過去ログ倉庫に格納されています