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

【Perl】初心者コーナー Part17

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆Go4ZKngPGE 02/10/14 17:24ID:???
いらっしゃーい、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あたりを見よう。
0302nobodyさん02/10/24 18:14ID:???
ttp://www.ibport.co.jp/~yui/cgiwork/code/index.html
0303nobodyさん02/10/24 18:23ID:???
>>302
- - -
まとめると・・
ほとんどのブラウザは、ページの漢字コードと同じコードでエンコードする。
ページの漢字コードがSJIS以外の時にSJISでエンコードするブラウザがある。
- - -
ちょっとイヤンな気分だ。
0304nobodyさん02/10/24 21:01ID:hTxulthN
http://ruffnex.oc.to/ipusiron/hyoujyunn_tokumei_mail.htm
ここにある匿名メーラー設置したら
http://suraimu.s21.xrea.com/tokumei/tokumei.html、

The script did not produce proper HTTP headers.
Please see the error log to see the detail of the errors.
Depending on the server configuration, you can also run this script under CGI
Wrap debugging. Usually, either rename or link the script temporarily to a file which ends with .cgid extension, or add a
AddHandler cgi-script-debug .cgi line to your .htaccess file.

ってエラーがでました。どうすれば直りますか?
0305主婦のサークルで〜す02/10/24 21:19ID:2CJLXaF+
ほんの少し刺激を求めてる主婦のサークルを作りました!
私たち主婦が楽しめる安全でちょっとトキメキのある出会を求めて
只今男性会員を募集中です!! 女性会員も募集(^○^)/"
http://f-cc.com/~tokimail/
0306nobodyさん02/10/24 23:18ID:???
>>295,>>301-303
お前らちっとは勉強しろ。
ttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-40002357
0307nobodyさん02/10/25 00:56ID:NH/dosqC
http://x68000.startshop.co.jp/~68user/net/http-3.html
このページのソースを参考にして外部のHTMLを参照しようとしているのですが
特定のサーバーから正常に取得できません
例えば
http://www.yomiuri.co.jp/04/20021024ic42.htm
をこのクライアントで読み込むと
(以前省略)<H1>Invalid URL</H1>
The requested URL "??ic42?htm", is invalid.<p>
</BODY></HTML>(以降省略)
となぜか/や.が文字化けして返ってきます
$pathは正常で、文字化けしていない状態なのですが
どなたか助言お願いします
0308nobodyさん02/10/25 01:02ID:???
>>307
1つ前のページのヤシを使ってみては?
0309nobodyさん02/10/25 01:27ID:???
前のページの簡易版で
print SOCKET "GET /04/20021024ic42.htm HTTP/1.0\r\n";
というふうに直接指定しても同じように
The requested URL "&#47;04&#47;20021024ic42&#46;htm", is invalid.<p>
と返ってきました

と、ためしにhttpからこんな風に入力してみたら
print SOCKET "GET http://www.yomiuri.co.jp/04/20021024ic42.htm HTTP/1.0\r\n";
無事正常に取得できました
お騒がせしてすみませんでした
0310nobodyさん02/10/25 17:38ID:???
*.cgiにカウンターを埋め込もうと思い、
counter.cgiのperlへのパスの所をpackage counter;に書き換えて
*.cgiに
require './counter.cgi';
と記述したのですが、ローカル(Win)鯖ではrequire 以下も表示されたのですが
プロホスティングにupすると、それ以下が表示されません。

エラーが出るわけでもないので、どうしたらいいか分かりません。
ヒントを頂けないでしょうか?
0311nobodyさん02/10/25 20:33ID:???
>>310
counter.cgiの中でexitしてるとか(それならローカルでも動かないか・・)
0312nobodyさん02/10/25 23:22ID:???
今Perlで掲示板を作っているのですが、
名前、タイトル、文章を書きこむページをbbs.htmで作っておいて、
送信ボタンが押されるとPerlの方で、STDIN・QUERY_STRINGで取得できるのは分かりました。
文字を取得してPerlの中にHTMLのタグを記述して取得した文字を表示したのですが、そこで終わってしまいます。
Perlからまたbbs.htmにジャンプする場合どうすればよいのでしょうか?

また2chなどのようにbbs.htm(書きこむページ)を作らずに、1つのPerl上で掲示板を作る場合、

print <<"END";
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<FORM ACTION="http://***.****.**.**/*****/******" METHOD="POST">
投稿者<INPUT TYPE="text" NAME="name" SIZE="100" MAXLENGTH="50"><BR>
タイトル<INPUT TYPE="text" NAME="title" SIZE="100" MAXLENGTH="50"><BR><BR>
<TEXTAREA ROWS="7" COLS="50" NAME="box"></TEXTAREA><BR><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</HTML>
END

とした場合submitから送られた文字はSTDINで受け取るのでしょうか?それともQUERY_STRINGで受け取るのでしょうか?
まだPerl始めてまもないもので分かりづらいと思いますがお願いします。
0313nobodyさん02/10/25 23:55ID:???
>>312
http://www.aikis.or.jp/~s-suzuki/cgilabo/kouza/cgi2.html
の
5.ブラウザからの引数の渡し方
5.1 フォームから送信
5.2 METHOD="get"とMETHOD="post"
5.3 フォーム処理のCGI例(METHOD="get"の場合)
5.4 フォーム処理のCGI例(METHOD="post"の場合)
を読めばわかるべ。読んでわからなかったらまた聞いて。
031431202/10/26 01:34ID:???
>>313さん
上の「Perl」って表現じゃなくて「CGI」のほうが良いのですね。すいません。
フォームから来た文字をPOSTの場合とGETの場合で取得するのはわかったのですが、
一度掲示板に書きこむと終わってしまうので、続けて2回3回と書きこむ場合はどうすればよいのでしょうか?
それと、HTMLとCGIを両方を使用した掲示板ではなく、CGIのみで掲示板を作る場合はどうすればよいのでしょうか?

今作っている掲示板の状況です。書き込み用のページをHTMLで用意しています。【bbs.htm】
<HTML>
<HEAD>
<TITLE>サンプル</TITLE>
</HEAD>
<FORM ACTION=http://***.*****.or.jp/*******/bbs.cgi METHOD=POST>
<FONT face="MS ゴシック">
投稿者:<INPUT TYPE=text NAME=name SIZE=50 MAXLENGTH=50><BR>
題名 :<INPUT TYPE=text NAME=title SIZE=48 MAXLENGTH=50><BR><BR>
<TEXTAREA ROWS=7 COLS=40 NAME=textbox>メッセージ</TEXTAREA><BR><BR>
<INPUT TYPE=submit VALUE=送信>
</FONT>
</FORM>
</HTML>
031531202/10/26 01:38ID:???
(つづき)
こっちがCGIです。【bbs.cgi】
#!/usr/local/bin/perl
$buffer="";
$data="";
@date_str_dim;
$num="";
$dummy="";
$count=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}else{
$buffer=$ENV{'QUERY_STRING'};
}
@buf=split(/&/,$buffer);
foreach $data(@buf){
($dummy,$num)=split(/=/,$data);
$num=~ tr/+/ /;
$num=~ s/%0D%0A/<BR>/g;
$num=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
@data_str_dim[$count]=$num;
$count++;
}
($toukou_name,$toukou_title,$toukou_bunsyou)=@data_str_dim;
print <<"end_print";
content-type: text/html\n\n
<HTML><HEAD><TITLE>サンプル</TITLE></HEAD>
投稿者:$toukou_name<BR>タイトル:$toukou_title<BR>$toukou_bunsyou<BR></HTML>
end_print
exit;
0316nobodyさん02/10/26 02:13ID:???
>314
最初からCGIにアクセスすればhtmlは要らない。
本文が空のときは表示だけする。
書込み後も表示する。
FORMも含めて全部CGIから送出すればよい。
0317nobodyさん02/10/26 13:17ID:???
>>313
で、あとは何がわからないの?
031827202/10/26 13:42ID:???
しばらく2chをみてなくて、返事が遅れてしまいすみません。

>>272 さん
ご回答ありがとうございます。これは、、、いけそうですね。
来週の月曜に試して、それから再度結果を書き込みます。

ここには書いてませんが、ご返答下さった皆さん、ありがとうございました。
031927202/10/26 13:46ID:???
318の書き込み間違えました。s/>>272/>>283/
>>283 さん にお礼をいいたかったのです。

(自分で自分にお礼をいってどうする、俺)
032031202/10/26 17:32ID:???
>>313,316さん
すこしずつ形になってきました。
書き込んだの文章を保存する処理はまだですけど、なんとか頑張ってみます。
ありがとうございました。
0321 ◆hMJAPH9PWA 02/10/26 19:12ID:???
warn/dieをトラップするのなら>>278にあるように$SIG{__WARN__}, $SIG{__DIE__}を使った方が軽くていいと思われますが。
0322nobodyさん02/10/27 00:11ID:???
AwkとPerlは実際どちらが、速いのですか?
0323nobodyさん02/10/27 00:20ID:???
>322
出来ることが違うんだからスピードなんか比較すんな。
AWKで出来ることしかしないならAWKつかっとけ。
0324rubyist@カラアゲうまうま02/10/27 01:30ID:???
Perlしかできない糞厨房どものたまり場はここですか?
0325nobodyさん02/10/27 02:03ID:???
perlもできない>>324が来るスレです。
0326nobodyさん02/10/27 03:56ID:bCdIKdeb
同じ処理ならPerlの方が速い。(よっぽど簡単な処理でもない限り)
AwkのできることはみなPerlにできるが逆は真でない。
よって、Perlでやるが吉。
0327nobodyさん02/10/27 04:47ID:???
上級者えwkjgfっちうえうふぃえwrふぇrfdgbjfdぶほfdbjhっpjp
0328nobodyさん02/10/27 08:38ID:???
最近良く見かける、
#! perl

って文頭に書くのはどういう意味でショーか?

パス通さなくていいの?


0329322 02/10/27 08:40ID:???
へー、そーなんですか?

-rwxr-xr-x 2 root root 708188 8月 10 2001 /usr/bin/perl*
-rwxr-xr-x 2 root root 224860 7月 31 2001 /bin/gawk*

プロセスのサイズとかでワンライナーとかのときは、
プロセス起動(ロード)時間って関係してこないのでしょうか?
0330nobodyさん02/10/27 11:36ID:???
>>329
何故自分で実測してみないのだ?
0331rubyist@カラアゲうまうま02/10/27 12:12ID:???
>>328
程度ひくぅ
一からUNIXとシェルの勉強やり直したら?
0332 ◆hMJAPH9PWA 02/10/27 12:15ID:???
>>328
Unixで実行可能コマンドにするためにはパスは必要だよ。
でも単に#!perlとするだけでもその行のコマンドラインオプションが有効だし、
どこからコードになるのかを明示するためにも(-xオプション参照)そうしてる。
0333nobodyさん02/10/27 17:01ID:???
誰かruby使いの奴の相手してあげろよ
0334nobodyさん02/10/27 18:01ID:vtRyJ45U
あるHPにアクセスした場合、アクセス解析があるのかどうか、
どうしたらわかるんでしょうか?
ソースを表示したらなんて書いてあるのですか?
超初心者ですみません。
教えて下さい。お願いします。
0335nobodyさん02/10/27 18:08ID:???
>>334
<!-- アクセス解析はじめました -->
0336nobodyさん02/10/27 19:25ID:???
普通webサーバのログをみて解析しますから、HP見ただけではわかりません。
0337nobodyさん02/10/27 23:57ID:pqTA1DY8
また、ruby基地が紛れ込み始めたから注意しろ。
あいつ周期的に出てくるな。ム板のrubyスレでもあほ言ってる。
0338nobodyさん02/10/28 00:02ID:???
ImageMagick & perlで
画像の高さ・幅のどちらかが200ピクセル以上ならば
大きい方を200にしてリサイズするスクリプトって
どんな風に書けばいいのでしょうか?

ぐぐっても情報がすくないんで よろしくお願いします。
0339_gunzip ◆eiH/XdoCNg 02/10/28 02:28ID:???
>>338
$ ./thumb.pl infile.jpeg output.jpeg 200
のように使ってね。

#!/usr/local/bin/perl

use strict;
use Image::Magick;

die "usage: $0 infile outfile pixel" if @ARGV != 3;
my ($infile, $outfile, $pixel) = @ARGV;

create_tumbnail($infile, $outfile, $pixel);

sub create_tumbnail
{
    my ($infile, $outfile, $pixel) = @_;
    my $image = new Image::Magick();
    $image->Read($infile);
    my ($width, $height) = $image->Get("width", "height");
    my $r = $width > $height ? $width / $pixel : $height / $pixel;
    if ($r > 1) {
        $image->Resize(width => $width / $r, height => $height / $r);
    }
    $image->Write($outfile);
}
0340nobodyさん02/10/28 06:18ID:???
$hoge = "0x01";
この$hogeを数値として扱う方法は無いでしょうか?
ただ、0x01のかたちは崩さないようにしたいんです。

pack("C*",$hoge)とpack("C*",0x01)じゃ同じ結果が出なかったので。。
0341nobodyさん02/10/28 11:42ID:???
>>340
eval "\$hoge = $hoge";
0342nobodyさん02/10/28 17:41ID:???
Perlで、
symlinkでシンボリックリンクファイルを生成したら
全部不可視ファイルになってしまいました。
どうすれば可視ファイルになるんでしょうか?
それから、symlinkで生成したシンボリックファイルを
読み込むことも消すことも出来ません。
0343nobodyさん02/10/28 18:37ID:MVvLcWrn
>>342
ApacheならOptions +FollowSymLinkにしてみたら
0344nobodyさん02/10/28 18:39ID:???
>>341
うまくできましたTHX!
0345nobodyさん02/10/28 19:18ID:MHCjzLTr
javascirptで、

function 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:MHCjzLTr
失礼しました。。
Perlのスレでした…。
0347nobodyさん02/10/28 19:21ID:???

ループで
000000から、ffffffまでの全ての色を表示するHTML文字を出力したいんですが、
やばいかな?

6桁だから、10進数で考えても十万ループだよね?
しかもこれ16進数。

CGIで動かしたいから鯖が落ちると困るんですよ。

このくらいのループって余裕なんですか?
それとも無謀ですか?

と言うか出力された画面を見るのも大変そうだね。
10万以上だから。
0348nobodyさん02/10/28 19:23ID:V8hOlb/A
ゲームCGI置いてるんですが、データをそのままで別の鯖に移動する事はできますか?
さっきやったらどうしてもエラーが出るんですが・・
0349nobodyさん02/10/28 19:29ID:???
>>348

全部コピーすれば?
レンタルサーバの場合、ファイル構造の制限をちゃんと理解して
プログラムのファイル指定をしっかり変更する事。
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が表示されるので、やはり呼び出されていないようです。

色々と調べて、自分では、間違っていないつもりなのですが、
問題点が、分かりましたら是非、教えてください。お願いします。

035135002/10/28 19:57ID:???
失礼しました。perlスレでした。
PHPスレに逝って来ます。。
スレ汚しすみませんでした。
0352nobodyさん02/10/28 20:10ID:???
ログイン機能の作り方を教えてください。
0353名無しさん@Emacs02/10/28 20:16ID:???
(゚Д゚)ハァ?
0354nobodyさん02/10/28 20:49ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0355rubyist@カラアゲうまうま02/10/28 21:08ID:???
馬鹿ばっか
035634702/10/28 21:38ID:???
347はどうなの?
馬鹿なんですか?
0357rubyist@カラアゲうまうま02/10/28 21:40ID:???
perlなんかやっている時点で馬鹿です。
0358 ◆hMJAPH9PWA 02/10/28 21:51ID:???
>>356
…それは不可能だよ。0xffffffって約一千六百万だよ。
それだけのループも大変だけど、
それらの組み合わせ全てを出力すると100MB超えると言うことを考えると、
無茶にも程があるってもんです。
035934702/10/28 22:15ID:???
やっぱ馬鹿でしたね。。
出なおしてきます。


では、表示出来る色を全部一気に見る方法はありますか?

perlじゃなくなってきてごめんなさい。
0360nobodyさん02/10/28 22:34ID:???
>>359
画像エディタのグラデーションバーでも見てりゃいーじゃん
つか1色ずつ判別できるとでも言うのか
ttp://tohoho.wakusei.ne.jp/wwwjscol.htmこの辺で遊んでれ
0361nobodyさん02/10/28 23:10ID:???
1024*768に1ドットづつ表示しても786432(768K)色しか表示できないんだぞ。
ffffffというと16M色だぞ、どうやって一気にみると言うのだ?
0362nobodyさん02/10/28 23:42ID:???
>347

絵の具でも混ぜてろってこった
0363nobodyさん02/10/28 23:59ID:???
>絵の具でも混ぜてろってこった

( ´,_ゝ`) プッ 頭弱そう
0364nobodyさん02/10/29 00:11ID:expKwbl4
>363
黄色でも食ってろよ
036534202/10/29 00:18ID:???
>>343
書いてみたんですがダメでした・・
Options +FollowSymLink
ですよね・・
0366nobodyさん02/10/29 01:38ID:???
>>365
どこで見れないのさ?
FTP?ならFTPクライアントに設定項目あるはず。
UNIXシェル?なら ls -alLF で見れるはず。

そもそもほんとにシンボリックリンクが作成されてるのかどうかを疑う。
036736502/10/29 08:50ID:???
>>366
Telnetでls -lで参照してみたらちゃんとシンボリックリンクが存在するんです。
でもFFFTPで見てみると不可視ファイルになってて
設定でLISTコマンドで取得で見てみたら
一応シンボリックリンクは存在するけどシンボリックファイルが全て
<DIR>とかになってて、
Web上からアクセスしに行ってもForbiddenとかになってます。

Perlに関係無ければ他所の板行きますが、
Telnetでls -sで作った時はちゃんと可視ファイルになっていて
Perlで生成した時は何故か不可視ファイルになってたもので。。
036836502/10/29 08:54ID:???
>>367 に追加
多分Perlでシンボリックリンク「ファイル」生成したはずが
「ディレクトリ」になっちゃってるのが原因だと思うんですが・・

symlink ("test.cgi","../$id/test.cgi");

でファイルにはならないんですか?
0369nobodyさん02/10/29 09:21ID:NNir1Y8I
LWPのHTTP::Request::Commonなのですが、
ファイルを読み取って、その中の内容をPOSTするのに、
[ $file, $filename, Header => Value... ] とか
init => ["$ENV{HOME}/.profile"],とかあるのですが、
上手くいかないのですが。実際./test.txtをpostするときは
どう記述すればよいのでしょうか?おねがいすます。

037036902/10/29 10:29ID:NNir1Y8I
追加。
textfileのアップロードではなく、テキストエリアにファイルの内容を
入力したものを送信する状態です。
037136902/10/29 10:55ID:???
解決しました。
ここに書き込むと自己解決できるすばらしいすれっ度ですね。
ありがとうございました。
037236502/10/29 11:24ID:???
368の問題自力で解決しました。
0373nobodyさん02/10/29 13:31ID:rgUUtj5z
フォームメールからの受信内容で「NsNu」という文字化けがたまに発生します。
エージェントを見るとマックからだけで、Winからはこの現象は発生しません。
対処法などわかりましたらお願いします。
0374nobodyさん02/10/29 16:16ID:pVmQBlE6
test.logを5行目から読み込む方法教えてください
0375nobodyさん02/10/29 16:39ID:???
))374
4回スルーする。
0376nobodyさん02/10/29 16:55ID:???
sendmailでメールを送るとき、例えば100人に別々のメールを送る場合
toで100回送らないといけないですよね。
それの負荷ってどんくらいなんでしょうか。
同じ内容のメールならccで一度で送れますけど。
0377nobodyさん02/10/29 17:42ID:???
共用鯖では止めとけってくらいの負荷。
037837402/10/29 18:10ID:pVmQBlE6
>>375
seekを使う方法で教えてくらさい
0379nobodyさん02/10/29 19:17ID:???
>>378
seekを使うにしても、5行目がファイル先頭から何バイトの位置から始まっているかは
先頭から順に読んでいかなければ分からない。
それなら4行スルーしたってやってることは同じだし、なにしろコーディングが楽。
0380nobodyさん02/10/29 20:16ID:cpI9Pzs7
お尋ねします。

Tie::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:???
>>380
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]} } ] }

でもいいい。
0382risarisa02/10/30 05:09ID:???
ショッピングカートCGIで、一回CGIから抜けて別のページにいって、またショッピングカートCGIに戻っても買い物かごの中身が保持されてるのは、
データをどうやって保持するのか教えてください。
0383nobodyさん02/10/30 06:20ID:???
>>382
cookieを覚えればできることでしょう。
perlとは特に関係がないでしょう。
038437402/10/30 09:43ID:???
>>379
サンクスコ
0385nobodyさん02/10/30 11:08ID:???
KENTのカウンターでわからないとこがあります。

#$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:???
【速報】Perl神ことKent氏、コーディング中に失神
http://ex.2ch.net/test/read.cgi/news/1035796690/
0387nobodyさん02/10/30 11:20ID:???
ヽ(`Д´#)ノ 騙された
0388nobodyさん02/10/30 11:20ID:???
>>386 なんでそのリンク visitedな色になってるんだろうね(藁
0389nobodyさん02/10/30 11:26ID:???
>>386
コーディング中に失神したからどうした?
0390nobodyさん02/10/30 12:30ID:???
>>385
@fileの添字の最大値。

たとえば@fileが[0..5]の場合、$#fileは5。scalar(@file)は6。
0391nobodyさん02/10/30 12:35ID:ojqysm2L
すみません。アフォみたいに初歩的な質問だと思うのですが、
手元の入門書には載ってないのでここで聞いてみます。
変数とのマッチってどうやって調べればいいですか?
0392nobodyさん02/10/30 12:44ID:???
>>390
へー、そんな裏技があったんですか。勉強になりました。
0393デフォルトの名無しさん02/10/30 12:54ID:???
>>391
「変数とのマッチ」って?
1. マッチというのは、2つ対象が指定されなきゃだめ。
2. 一部のマッチか全体のマッチも分からなきゃだめ。
ここら辺、考えて、ちゃんとした質問し直す。
0394nobodyさん02/10/30 13:05ID:???
>>391
/\$[a-zA-Z]\w*/; ←スカラー変数のマッチ(${xyz}形式は除く)
039539102/10/30 13:07ID:ojqysm2L
$valueという変数があったとして、
中身は'cat'だったり'dog'だったりいろいろ変わるとして、
あるファイル中でその値にマッチする行をすべて取り出したい、
というようなことです。
/$value/とかって書いても意味ないし・・・
039639402/10/30 13:12ID:???
@match= grep(/$value/o, <IN>);
039739402/10/30 13:14ID:???
やっぱり、書き直し($valueの値が途中で変わるということなら)

@match= grep(/\Q$value$E/, <IN>);
0398デフォルトの名無しさん02/10/30 13:17ID:???
>>395
いろいろ変わる変数?すごい変数やね。
$value="(cat|dog)";
ってしといて、
/$value/
ってすれば、猫にも犬にもマッチするぜ。
動物全体にマッチさせたきゃ、
/$animal/
とすれ。
$animalはどっかで上の方法で定義してね。
039939102/10/30 13:22ID:???
>>396
ありがとうございます。
意味わかってないのでしばらく勉強しに逝ってきます。
040038002/10/30 13:28ID:psFvge9a
>381さん
ありがとうございました!
0401nobodyさん02/10/30 13:58ID:???
正規表現の「^」と
メタ文字の「\b」の違いと言うか使い分けの仕方を教えてくだちい
0402nobodyさん02/10/30 15:40ID:???
>>401
\bってバックスペースでしょ。
■ このスレッドは過去ログ倉庫に格納されています