【Perl】初心者コーナー Part15

このエントリーをはてなブックマークに追加
1nobodyさん
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【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あたりを見よう。
21:02/08/08 23:20 ID:???
3nobodyさん:02/08/08 23:20 ID:???
2げと
4nobodyさん:02/08/08 23:20 ID:???
4get
51:02/08/08 23:20 ID:???
[総合]
 ・Perl Com: http://www.perl.com/pub/
 ・CPAN.com: http://search.cpan.org/
 ・ActivePerl: http://www.activestate.com/
 ・CGI-ML:http://forest.ne.jp/cgi-ml/

[お薦め]
 ・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm ★読んどけ
 ・Perl Recipes: http://www.effectiveperl.com/recipes/
 ・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
 ・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
 ・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/
 ・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htm
 ・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/
61:02/08/08 23:21 ID:???
[Document&Tutorial]
 ・Perl News: http://www.news.perl.org/
 ・Perl Monks: http://www.perlmonks.org/
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.html
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/
 ・The Perl Archive : http://www.perlarchive.com/
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/
 ・use Object; : http://perl.infoware.ne.jp/

7nobodyさん:02/08/08 23:21 ID:???
zusa----------------------------------------------------------------
81:02/08/08 23:21 ID:???
[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm

[Security]
 ・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
 ・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.html
 ・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.html
 ・CGI and Security http://www.ansi.co.jp/tech/cgi/security/
 ・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
 ・How to Write Secure Code:http://www.shmoo.com/securecode/
 ・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txt

[OS]
 ・Linux日本語マニュアル:http://www.linux.or.jp/JM/
 ・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/
91:02/08/08 23:22 ID:???
なんとか>>2-10に収まってホッと一息
10nobodyさん:02/08/08 23:22 ID:???
--------------------------------終了---------------------------------
11nobodyさん:02/08/08 23:23 ID:???
>>10=前スレ1000 死ね
1211:02/08/08 23:25 ID:???
コテハンは死ね
1311:02/08/08 23:27 ID:???
>>12=10
騙んなボケ
14nobodyさん:02/08/08 23:29 ID:???
香ばしいな
1511:02/08/08 23:33 ID:???
>>12=10
騙んなボケ
1611:02/08/08 23:33 ID:???
>>12=10
騙んなボケ
1711:02/08/08 23:34 ID:???
>>12=10
騙んなボケ
18nobodyさん:02/08/08 23:42 ID:???
荒れてるな。ぷっ
19nobodyさん:02/08/08 23:56 ID:???
         \   !   |!  /::l  | | |i  |i \   ヽ  ヽ ヽ
       ノ (  \|   ||   !:::i  | | |:|  !ヽ \  ヽ、 ヽ ヽ  \
        ⌒    \ |:|  |.:.:.:i  |i.|! |.:|  |:.\ ヾ/ ヽ\ヽ ヽ   ヽ  |
        立  気 | |::|l、 |ノ (.! i|l.| |.:|i  i.:.:.\/、\. ヽ:ヽヽ ヽ    i  |
              | |: !lヽ|.:⌒:.ヽ ヾ:l !.:.ヽ i..:../\ヽ‐'',..i -', !、. ヽ   |  |
        て   や | |!‐!-l,\:..:..:ヽヽ:i|:..:..ヽ. i:/..:..;.>,ヾ\i  ',l i,     !  i
 ┌──           |.i.l i. |``'ヽ、.:.ヾ!.ヽ.:..:.ヽ//  ヾ、 ヽ  'X,    |  |
 ノ 豆寸   ん  す  | ヽ ヽ!   \.:..\..:..:.//\  ・ \  /.: .i      |
                 |      ・  ヽ!|l.:.ll/.:ヽ、      /:. :. :. :i      |
         じ   く  |、       ノ:.:.:.:.:.:.:.:.:.:.:`'''‐----‐'"..:、_, :. :. .i 
                | `''ー----‐''".:.:.:.:.:.   :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:) (   lヽ
  ──    ゃ   ス |\:..:..:..:..:..:..:..:  ,             ⌒  / ! |i
  l二,二l             二ニ=‐      ヽ               / | | !
 ノ フラ    ね   レ | |l ヽ\.  r ,....._______     /:  | | |
              |  !ヽ\ \ヽヽ, ,、        ,、,ィ‐ヽ  /:::  | l |!
            |       |  |l,ヽ ヾ; `i‐、ヽ `´`´__,,,... -─‐''''゙,/:::::::   |. | |,i  |ヽ|
 !!!         |  |、.i \ヽ  i  i`''ーニ_ -‐‐   ,.、':::::::::::   l i'"i l  |  |
         ゾ    /,  |ヽヽ \、 l  |  | iヽ._, イ / `ヽ:::   , | / |/| !  |
                 / |  | ヽヽ  \ |  l  | |  | | |/ /| .ヽ  / l / /  | i  |
            /l l  !  \    iヽ |  | i  | /i | / l | V  l/ /   i   |
20nobodyさん:02/08/09 03:31 ID:bBZPsuqF
ここ(太洋社のコミック発売一覧)

ttp://www.taiyosha.co.jp/comic/comic0209_date1.html

にある HTML を LWP::Simple の get を使って取得してみたんですが、
いつもは

@lines = split(/\n/, (get $target_url));

みたいにするとサクっと取得できるのに、このサイトのソースだと
文字列の終端のコードがちょっと違うらしくてうまく split できないん
ですけどどうしたらよいのでしょうか?

色々と試してはみたのですけど、ちょっとよくわからなかったので
ココでお聞きしてみました。
どうぞよろしくお願いします。
21nobodyさん:02/08/09 03:45 ID:???
>>20 /\x0D\x0A|[\x0D\x0A]/ でどうぞ。
22nobodyさん:02/08/09 04:25 ID:???
( ゚д゚)ハッ! 立ってる!
23nobodyさん:02/08/09 06:37 ID:???
( ゚д゚)ハッ! 立ってる! 2
24nobodyさん:02/08/09 06:56 ID:???
これは

use lib './module';

test.cgiに

use lib './module';
use module;

のように記述するんでしょうか?
2524:02/08/09 07:08 ID:???
ありがとうございます。できました(´_`)ノ
26nobodyさん:02/08/09 11:22 ID:???
%hogeというハッシュがあります。
中身は 名無し=> 2 ひろゆき=>5 ネオ麦茶=>3
という感じです。
で、これを値(数字)の大きい順に名前を表示したいんですがどうしたいいでしょうか。
27nobodyさん:02/08/09 11:32 ID:???
>>26
あらかじめ値がわかってる場合はこうすりゃいいじゃん。

print "ひろゆき\nネオ麦茶\n名無し\n";
28nobodyさん:02/08/09 11:59 ID:???
>>26
値でソート
sort { $hoge{$b} <=> $hoge{$a} } keys %hoge
29nobodyさん:02/08/09 13:56 ID:???
>28
ソート出来たら$hogeをどうするんですか?
30nobodyさん:02/08/09 14:13 ID:???
なんなりとお好きなように
31nobodyさん:02/08/09 14:41 ID:???
>>29
その質問おかしいだろ。w
print sort { $hoge{$b} <=> $hoge{$a} } keys %hoge;
で確認してみ。
32g:02/08/09 14:48 ID:pPvuKcdo
-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能住み込みも可
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
33nobodyさん:02/08/09 14:49 ID:???
>>32
氏ねよ。
34nobodyさん:02/08/09 14:50 ID:???
ひろゆき 5
ネオ麦茶 3
名無し 2

こういう感じで名前と値を表示させたいんですけど
print sort { $hoge{$b} <=> $hoge{$a} } keys %hoge;
これだと名前しか出なかったでし。
35nobodyさん:02/08/09 15:02 ID:???
>>34
オマエ、どこ中 在学だよ! 2回氏ね!
36nobodyさん:02/08/09 15:04 ID:???
>>34
Perl昨日始めたばかりのオレでも出来ましたが…。

foreach $i (sort { $hoge{$b} <=> $hoge{$a} } keys %hoge) {
print $i, " " , $hoge{$i} , "\n";
}
37nobodyさん:02/08/09 15:05 ID:???
>>34

もう質問しなくていいよ
38nobodyさん:02/08/09 15:59 ID:???
>>36
僕はperl3時間前にはじめたんで。
39nobodyさん:02/08/09 16:10 ID:???
>>38
ネタ?君は生まれた時からハッシュを知っていたんだね。素直に感謝しなさい。
>>26の時点で11:22。
>>38の時点で15:59。
40nobodyさん:02/08/09 16:19 ID:???
            +
      +         +     +
  +
     / ̄\  +.    ∧_∧ アハハハ  +
ノリカエセヨー( ´∀`)     (´∀` )  
    ( つ つ      ( つ つ
.   + ( ヽノ       ( ■ノ        +
     し(_)      ... し(_)
41nobodyさん:02/08/09 16:20 ID:???
 +
      +         +     +
  +
.     /■\  +.    ∧_∧ アハハハ  +
 クサーイヨー(  +∀+)    (´∀` )  
    ( つ つ      ( つ つ
.   + ( ヽノ       ( ヽノ        +
     し(_)       ...し(_)
42nobodyさん:02/08/09 16:20 ID:???
          +
      +         +     +
  +              アハハハ
.           +.  ∧_∧  / ̄\
本体カエセヨー         (´∀` )(/⌒ヽ__)
      ヽ■ノ     (つ  つ|   |
.   +   ノ\      ( ヽノ .|  ∪    +
              し(_) しし′
43nobodyさん:02/08/09 16:20 ID:???
母「おい、おまいら!!夕食ができますた。リビングに集合しる!」
父「詳細キボーヌ」
母「今日はカレーですが、何か?」
兄「カレーキターーーーーーーーー」
妹「キターーーーーーーーーー」
姉「カレーごときで騒ぐ奴は逝ってヨシ」
母「オマエモナー」
父 --------終了-------
兄 --------再開-------
妹「再開すなDQNが!それより肉うpキボンヌ」
母「ジャガイモうp」
姉「↑誤爆?」
兄「タマネギage」
父「ほらよ肉>家族 」
妹「神降臨!!」
44nobodyさん:02/08/09 16:21 ID:???
ん?
45nobodyさん:02/08/09 16:21 ID:???
オワッタ…
  ;y=ー( ゚д゚)・∵. ターン
  \/| y |)
46nobodyさん:02/08/09 17:56 ID:???
ヽ(`Д´)ノ
47nobodyさん:02/08/09 19:05 ID:???
子yってんkjさgbfひあhしおdに絵得ん!
48nobodyさん:02/08/09 21:35 ID:???
$value =~ tr/+/ /;
$value =~ s/&/&/g;
$value =~ s/"/"/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/,/¸/g;

これを短く書きたいんですが何かありますでしょうか?
49nobodyさん:02/08/09 21:36 ID:???
訂正

$value =~ tr/+/ /;
$value =~ s/&/&amp;/g;
$value =~ s/"/&quot;/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/,/&cedil;/g;

50nobodyさん:02/08/09 22:38 ID:84ebYeoV
連邦のゲットニュースみたく別鯖のデータを読むのには、perlでどうやればいいでうか?
51nobodyさん:02/08/09 22:48 ID:???
LWP
52親切な人:02/08/09 22:53 ID:???

ヤフーオークションで、凄い人気商品、発見!!!

プランテック製の「 RX-2000V 」を改造済み
にした、アイティーエス製の「 RX-2000V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。

ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
53nobodyさん:02/08/10 00:12 ID:???
>>49
そんなの短くできないって。あきらめなさい。

と言いつつトライ。
$value=~s/[\+&"<>,]/($t=index'+&"<>,',$&)?'&'.qw(amp quot lt gt cedil)[$t-1].';':' '/eg;
これ以上無理かな…
54 :02/08/10 00:46 ID:???
>>49
わけたままのほうが圧倒的に処理が速いぞ。

と言いつつ>>53のバグフィックス&処理速度向上版
$value=~s/\+|([\+&"<>,])/$1?'&'.(qw(amp quot lt gt cedil))[index'&"<>,',$1].';':' '/eg;
55nobodyさん:02/08/10 01:36 ID:???
>>49
ソース短くしたら処理が早くなるわけじゃないぞ
正規表現あたりは激しく可読性に影響が行くから
>>53 >>54
が言ってるとおり素直にそのままにしとけ

#俺は厨だから>>54のをさらに改良したりとかできん
#てか、もう読めません・・・(;´Д`)
5654:02/08/10 03:11 ID:???
余計な部分消し忘れてた

$value=~s/\+|([&"<>,])/$1?'&'.(qw(amp quot lt gt cedil))[index'&"<>,',$1].';':' '/eg;
57nobodyさん:02/08/10 03:15 ID:???
トリッキーコードスレか?厨房心満載で参加しちゃうぞ〜?
とりあえず、(cedilはいらんだろう)
$value=~s/([\+&"<>])/$1 eq '+' ? ' ' : '&'.{qw(& amp " quot < lt > gt)}->{$1}/eg;

無名ハッシュと+を外に出せばそこそこ速くなるんじゃ無いだろか?
%slist=qw(& amp " quot < lt > gt);
$value=~tr/+/ /;
$value=~ s/([@{[join '', keys %slist]}])/'&'.$slist{$1}/eg;
か、もっと素直に、
$value=~s/$_/'&'.$slist{$_}/eg for keys %slist;

どっちにしろ>>49のままの方が速いだろうが、、
んで最終的にはこれを勧めておく。
use HTML::Entities;
$value=~tr/+/ /;
encode_entities($value,'"<>&');
5854:02/08/10 03:35 ID:???
>>57
>とりあえず、(cedilはいらんだろう)
条件を勝手に変えては・・・

エンティティ文字だから末尾の ; が無くては・・・

>@{[join '', keys %slist]}
この部分は典型的な処理おそーだから・・・

>$value=~s/$_/'&'.$slist{$_}/eg for keys %slist;
ハッシュキーをまわすと & が出現する順番によっては整合性が・・・
59nobodyさん:02/08/10 03:55 ID:???
>>54すまんのうつっk見どころ満載だったな。
> 条件を勝手に変えては・・・
> エンティティ文字だから末尾の ; が無くては・・・
$value=~s/([\+&"<>,])/$1 eq '+' ? ' ' : '&'.{qw(& amp " quot < lt > gt , cedil)}->{$1}.';'/eg;

> この部分は典型的な処理おそーだから・・・
ここは一回しか評価されないので速さにはほとんど影響しないだろう。
が、
> ハッシュキーをまわすと & が出現する順番によっては整合性が・・・
を忘れとったよ。
@slist{@k=qw(& " < > ,)} = qw(amp quot lt gt cedil);
$value=~tr/+/ /;
$value=~ s/([@{[join '',@k]}])/'&'.$slist{$1}.';'/eg;
か、
$value=~s/$_/'&'.$slist{$_}.';'/eg for @k;
なら文句無いか?

あと encode_entities($value,'&"<>,'); ね。
6020:02/08/10 04:07 ID:2iXM5pV6
>>21 さん
遅ればせながらありがとうございました。
おかげさまで無事に綺麗なHTMLを取得できましたー。
61nobodyさん:02/08/10 06:08 ID:???
>>どっちにしろ>>49のままの方が速いだろうが、、
>>んで最終的にはこれを勧めておく。
>>use HTML::Entities;
>>$value=~tr/+/ /;
>>encode_entities($value,'"<>&');

>>49のと↑だとどっちが早いんですか?
62nobodyさん:02/08/10 09:37 ID:???
>>61
encode_entities()のなか見てないからわからないけど
多分どちらも大して変わらないだろう。
てかね、Perlで速さを求めないでください。
速くしたいならCね
63nobodyさん:02/08/10 17:02 ID:???
namco

swap
↓ ↓
n a m c o

m a n c o

manco

(・∀・)マンコー
64nobodyさん:02/08/10 17:04 ID:???
誰かデバッグして。

$f=$d?-1:1;$D=pack('C*',33. .86);$p=shift;
$p=~y/a-z/A-Z/;$U=~s/( . *)U$/U$1/;
$D=~s/U( . )/$1U;';($V=$U)=~s/U/V/g;
$p=~s/[A-Z]/$k=ord($&)-64,&e/eg;$k=0;
while(<>){y/a-z/A-Z;y/A-Z//dc;$o.=$_}$o.="X"
while length ($o)%5&&!$d;
$o=~s/.chr(($f*&e+ord($&)-13)%26+65)/eg;
$o=~s/X*$//if$d;$o;$o=~s/.{5}/$&/g;
print"$o|n";sub v{$v=ord(substr($D,$_{0}))-32;
$v>53?53:$v}
sub w{$D=~s/(.{$_{0})(.*)(.)/$2$1$3}}
sub e{eval"$U$V$V";$D=~s/(.*)([UV].*[UV])(.*)/$3$2$1/;
&w(&v(53));$k?(&w($k)):($c=&v(&v(0)),$c>52?&e:$c)}
65nobodyさん:02/08/10 17:15 ID:???
読むのすらいやになる。
66nobodyさん:02/08/10 17:22 ID:???
http://www.cse.iitk.ac.in/news/primality.pdf
これの4ページ目の13行。
67nobodyさん:02/08/10 17:43 ID:???
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
68nobodyさん:02/08/10 19:15 ID:???
モジュールの質問なんですが、

&print($logfile,@data);

とやって

sub print

{

open(DATA,">$_[0]") || exit; print DATA $_[1];

}

ってやるとうまく書きこめません。

$logfileはログファイルの場所→ $logfile = "./log.dat";
@dataには記事のデータが。中身はだいたいこんな感じです↓
$data[0] = "2<>test<>名無し<>test<>0123<>\n";
$data[1] = "1<>test<>名無し<>test<>0123<>\n";

どうすればうまく↑のようなやり方で書きこめるでしょうか?
つまり@dataの中身をサブルーチンprintに受け渡したいのですが、、
69nobodyさん:02/08/10 19:29 ID:???
>open(DATA,">$_[0]") || exit; print DATA $_[1];
これの意味がわかってやってんだろうな。
70nobodyさん:02/08/10 19:30 ID:???
あ・・もしかしたら・・・ハッ(゚д゚)!
7168:02/08/10 19:44 ID:???
open(DATA,">$_[0]") || exit;
print DATA $_[1];

こうやってみたんですがどうも。。

open(DATA,">$_[0]") || exit;
print DATA $_[1];

一行目でlog.datを書きこみ専用でオープンしてもし開けなかった場合はexit
2行目でファイルハンドルDATAに$_[1]の中身を書きこんでるんですよね?

$_[1]に@dataの中身をいれたいんですがどうも配列の先頭要素しか受け渡しできませんでした。
@_[1]にもしてみたんですがうまくいきませんでした・・
どうやれば配列を受け渡せるのでしょうか?
7268:02/08/10 19:49 ID:???
なんとなくわかったかも・・
ちょっと渡来してみます
73nobodyさん:02/08/10 19:50 ID:???
いくつか思ったこと。
どこがモジュール?
サブルーチンにしなくてもいいんじゃないか?
7468:02/08/10 19:54 ID:???
できました

>>73

たしかにそうなんですが何回か読み書き作業をするので行数がかさんできたため
モジュールに、、サブルーチンとかパッケージ化でもよかったんですが
モジュールが一番よさそうだったので・・
あと趣味で作ってるので使いまわしするのでできるのは全部モジュール化しといたほうがあとでらくかなーと思いまして・・
75nobodyさん:02/08/10 20:43 ID:???
$input 内に、URLがいくつ含まれるか数える方法を教えてください
URLはタグ等で囲まれたりしていません
76nobodyさん:02/08/10 21:00 ID:???
>>75

$inputの中身は?
77nobodyさん:02/08/10 22:10 ID:???
split(/$uri_pattern/i,$input) - 1;
78nobodyさん:02/08/10 23:09 ID:0iqc1GSZ
初心者です。自分のHPに掲示板置いたのですけれども(たとえばYYボード) 次回書き込んでも名前やアドレスや文字の色が記録
されません。どうやるのですか?
79夏厨見習い ◆FRUIT8pk :02/08/10 23:15 ID:???
>>78
Cookieの設定ができてない。
板違いです
80コギャルとHな出会い:02/08/10 23:15 ID:FTkfInMw
http://kado7.ug.to/net/


朝までから騒ぎ!!
   小中高生
 コギャル〜熟女まで
   メル友
  i/j/PC/対応

女性の子もたくさん来てね
                  
おこずかいの欲しい女の子もたくさん来てね!!

全国デ−トスポット情報も有ります
81ど厨房:02/08/10 23:41 ID:???
フリーウェアなどをDLする時にoctetstreamが無い!のようなエラー表示が出て
困ってます。でMSのactiveXギャラリーに行けと言う表示が出たので行ってみ
たけど何をDLしていいのか・・罵倒覚悟です。誰か教えてください・・・
82nobodyさん:02/08/11 02:25 ID:uMk9XU0w
>>81
PERLと関係あるのか?
漏れが無知なだけか
83nobodyさん:02/08/11 11:47 ID:U9P8YsFW
WEBで落としたチャットCGIをいじってます。

書き込み時にログに記録されたIPを、そのままHTML出力に表示させたいのですが、
全部の行が今の自分のIPになってしまいます。

$ad = $ENV{'REMOTE_ADDR'};
とCGIに記述して、
表示させたい部分に$adを埋めるだけじゃダメなんですか?
IP表示ができるCGIを落として解析しても、同じような記述しか出てこないもので。
ex) print (($ENV{'REMOTE_HOST'}) ? $ENV{'REMOTE_HOST'} : $ENV{'REMOTE_ADDR'});
ex) if($sw_host==1){
print "<FONT SIZE=$moji1 COLOR=\"$DTcolor\">\n";
print "$date<BR>$ip $host\n";
print "</FONT>\n";
84nobodyさん:02/08/11 12:01 ID:???
>>83
それだけじゃ答えようがあまりないが、とりあえず
リモホを取得したらログに保存しないとだめぽ。
85nobodyさん:02/08/11 12:32 ID:U9P8YsFW
>>84
ログには保存しているんです。
ただ、HTML出力のソースを見ると、>>83のように、
$ENV{'REMOTE_ADDR'}; したものを$adみたいにして出力するような記述なんですね。
ログから引っ張ってるような記述が見当たらない…
86nobodyさん:02/08/11 12:37 ID:???
>>85
【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/l50

上のスレのお世話になってはいかが?
8785:02/08/11 12:41 ID:U9P8YsFW
KENTWEBの WINDY CHAT でテストしてたんですが、これの場合、
# IPアドレスを取得
$addr = $ENV{'REMOTE_ADDR'};
if ($name eq "") { $name = $addr; }

して
unshift (@lines,"$date<>$n_name<>$n_email<>$com<>$n_color<>$addr<>\n");
つまりログには保存されています。
これがなぜ、吐き出しになるとだめなのか、今やっとわかりました。

# ログを展開
open(IN,"$logfile") || &error("Open Error : $logfile");
while (<IN>) {
$head = $point;
local($date,$name,$mail,$com,$color,$ip) = split(/<>/);
$addrとすべきところを故意に$ipとして吐き出さないように記述してあったからみたいです。
88nobodyさん:02/08/11 13:10 ID:???
最後の一行に激しい勘違いがあるようだが、、、
8985:02/08/11 13:15 ID:U9P8YsFW
もう一個のCGIでもテストしましたが、
こちらはDBファイルのデータがタブ区切りで、読み出しもただ変数を羅列しているため、
その順番どおりに表示するようになっていました。

もともとIPは記録しない仕様のため、適当にタブの間にIPを付け足したのが間違いで、
読み込みの順番どおりにDBファイルのタブ区切りを修正したら表示されるようになりました。

俄然perlが面白くなってきますたよw
9085:02/08/11 13:16 ID:???
>>88
それはどういったことでしょうか?
91nobodyさん:02/08/11 13:37 ID:???
「吐き出さないように記述してあった」って書き方がひっかかっただけ。
スクリプトはちゃんと吐き出してる。$ipとして。
9285:02/08/11 14:09 ID:???
>>91
そうですね。DBが空だから表示はされないけど処理はされてるんですよね。
語弊があったようです。
93nobodyさん:02/08/11 16:05 ID:wwIT5eGL
http://php.s3.to/bbs/up/img/014.txt

このスクリプトなのですが、時間設定で
sprintfを使わずに、
if ($month < 10) { $month = "0$month"; }
if ($mday < 10) { $mday = "0$mday"; }
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
としたり、
($sec_t,$min_t,$hour_t,$mday_t,$mon_t,$year_t,$wday_t,$yday_t,$isdst_t) = localtime(time + 7*24*60*60);

($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60);
という風にlocaltimeとgmttimeを使い分けたりする意味はあるのでしょうか?

前者は処理が早くなるとか・・・?
オシエテクダサイ
94nobodyさん:02/08/11 16:18 ID:???
>>93
作ったヤシに聞けよ     
95nobodyさん:02/08/11 18:04 ID:???
>>93
典型的なアフォコード
96nobodyさん:02/08/11 19:30 ID:???
>>95
他の部分もそんな感じでしょうか?
じゃ、使わない方がいいですかね・・・
97nobodyさん:02/08/11 19:40 ID:???
そりゃ自分で決めれ。
98nobodyさん:02/08/11 19:44 ID:???
アフォコードでも動けばいいんじゃないですか
そうでもないものなんですか
99nobodyさん:02/08/11 19:44 ID:???
98ですが96の方ではありません
100nobodyさん:02/08/11 19:46 ID:???
つか use strict してない時点でクソ確定。
101お願い!:02/08/11 19:56 ID:5quTF2lD
2ch2ch2ch
というテキストを
2ch
2ch
2ch
というように改行させたいです。
テキストエディタの置換機能で「2ch」→「2ch\r\n」としたら、
2ch\r\n2ch\r\n2ch\r\n
となってしまいますた。
テキストエディタで改行するのって無理ですか?
ActivePerl入れなきゃだめかな?

102nobodyさん:02/08/11 19:57 ID:???
あほだ。
103nobodyさん:02/08/11 20:32 ID:???
掲示板に、〜日以内に更新されたらNEWを付けるようにしたいのですが

たとえば7日以内としたら
#!/usr/local/bin/perl

$times=書き込み時のtime;

$limit=7*60*60*24;


$now=time;
$limit_time="$now-$limit";

print "Content-type: text/html\n\n";


if($times>$limit_time){print"NEW";}

でいいと思うのですが、上手くできませんでした。
ヒントを頂けないでしょうか?
104 ◆adminSE. :02/08/11 21:34 ID:???
>>103

$times が当時の書き込み時間で
$now が現在の時間なんでしょ?
だったら

$now - $times

で何秒たったか分かる

たとえば$nowに110000がはいってて$timesに100000がはいってれば
その差は10000秒になる

んでこれと$limitを比べればいいんでないの?
105nobodyさん:02/08/11 22:12 ID:???
>>104
上手くできました。
ありがとうございましたヽ(゚∀゚)ノ三≡
106nobodyさん:02/08/11 22:53 ID:QpOp3e8Y
http://www.tsuri123.com/index2.htm
おい。お前ら!応援投票しろ!
107nobodyさん:02/08/11 23:56 ID:???
掲示板スクリプトで、ファイルを読みこんで表示する場合に、
whileで回す方法と、配列に一気に読んでforeachで回すのとでは
メモリは食うけど、foreachで回すほうが処理は速いんですかね?
それともwhileで回す方法が速い?
108nobodyさん:02/08/12 00:15 ID:???
速いほうがいいのならシステムコールを直で叩くsysreadだろう。でも初心者には
使いこなせるかな? readでも使ったら?
109nobodyさん:02/08/12 00:25 ID:???
知ったか警報!
110nobodyさん:02/08/12 01:49 ID:y1lt6txe
ゆいぼっとについて相談があります。
ブラウザに記憶される名前が変になります。
ひろゆき、だとしたら、「ひろゆき_30__checked_red_30_8/12(月)1:30_2_checked_」

どうも、リロード時間や文字色等の情報まで全部ついてきてしまってるようで…
これは固有のバグでしょうか。
111nobodyさん:02/08/12 01:58 ID:???
改造間違いの可能性。
112nobodyさん:02/08/12 02:02 ID:y1lt6txe
>>110
でも、他サイトの無改造のゆいぼっとにクッキー全部消去してからお邪魔して
退室したあとにまた入室画面で名前欄を見ると同じようになってるんですよ。
113110:02/08/12 02:11 ID:y1lt6txe
クッキー処理の部分
なぜ、 \t で区切ったものが、吐き出されるときに _ に変わってるんだろう。

sub getcookie{#くっきーを頂きます。
$cooks = $ENV{'HTTP_COOKIE'};
$cooks = '' unless($cooks =~s/.*yuidata=(.*)yuiend.*/$1/);
($name,$reload,$email,$mode,$color,$window,$lastdate,$count,$autoclear) = split(/\t/, $cooks);
$histry = "$count回目:LAST LOGIN:$lastdate" if($lastdate);
if(!$count){#くっきー情報の無い場合のデフォルト値
$reload = 30; $mode = 'checked';$color = 'red'; $window = 30;
$count = 1;$autoclear = 'checked'; }
}#getcookie END

sub setcookie{#くっきーをブラウザにプレゼントします。
local($dmy,$mdc,$monc,$yrc,$wdayc,$mc,$yc);
($dmy,$dmy,$dmy,$mdc,$monc,$yrc,$wdayc,$dmy,$dmy) = localtime($times + 7776000);
$yc = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') [$wdayc];
$mc = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') [$monc];
$yrc = $yrc+1900;$mdc = "0$mdc" if ($mdc < 10);
$count++;
$data = "$name\t$reload\t$email\t$mode\t$color\t$window\t$date\t$count\t$autoclear\tyuiend";
$data = 'yuiend' if($FORM{'cook'} ne 'ok');
print "Set-Cookie: yuidata=$data; expires=$yc, $mdc-$mc-$yrc 00:00:00 GMT\n";
114nobodyさん:02/08/12 02:14 ID:???
タブってデータとして、許されてたっけ?
115110:02/08/12 02:41 ID:y1lt6txe
とりあえず、\t が_ になってしまうならと
= split(/\t/, $cooks);

= split(/_/, $cooks);

にしてしまったらうまくいきました。
しかし、環境依存でバグが出るかもしれませんね。
UNIXやMACのクッキーはよく知らないんですが。
116110:02/08/12 02:47 ID:y1lt6txe
http://www.google.co.jp/search?q=cache:rEGKxbsZPV4C:www.tcup3.com/325/tsukune.html+%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BC%E3%80%80%E3%82%BF%E3%83%96%E5%8C%BA%E5%88%87%E3%82%8A&hl=ja&ie=UTF-8
なんか、IE6.0のバグっぽい。
ということは、それ以外のブラウザではやはり問題が起きてないかもですね。
117nobodyさん:02/08/12 02:50 ID:???
本当にIEのバグかね。
IEが正しくて、ほかが間違ってる















んなこたぁない。IEが間違えてることの方が多い。
118110:02/08/12 03:02 ID:y1lt6txe
やはりIE6固有のトラブルみたいです。ネスケ4.7では元々の仕様で問題なく、
IE6にあわせた修正をしたバージョンでは逆にトラブルになりました。

区切りを本当に_ にしたがダメ。区切りとsplitを, であわせたところ、
IE6、ネスケともにトラブルは収まりました。
MS、恐るべし…
119nobodyさん:02/08/12 03:05 ID:VEDKxtaL
>>117
違うな
















IEが間違ってて、そのCGIも間違ってる。
そして仕様と言い張る。
120nobodyさん:02/08/12 03:16 ID:???
121nobodyさん:02/08/12 03:20 ID:???
つまりネスケ4.7がわるかったと。









まぁ、CSSもネスケ4.7が悪い品。
122nobodyさん:02/08/12 07:05 ID:???
120嫁、IEが悪い?ネスケが悪い?
いえいえ悪いのはオマエの頭だけです
123nobodyさん:02/08/12 11:25 ID:???
>>122
オマエガナー
124nobodyさん:02/08/12 14:23 ID:???
pu
125困ったチャン:02/08/12 17:38 ID:???
ユーザーIDと
パスワードを入力して
認証してOKならページ移動
の処理を作成中なんッスけど
認証のためのデータをあるファイルから
参照してハッシュを使ってIDをキーにして
パスワードをデータにして、
IDを比較するのはOKなんッスけど、
パスワードの比較はどうしたらイイんでしょうか?
ようはキーの中身の比較っすね
126困ったチャン:02/08/12 17:58 ID:???
ageて逝きまっしょい
127nobodyさん:02/08/12 18:26 ID:???
マルチか。
128困ったチャン:02/08/12 18:30 ID:???
その疑いありで
129nobodyさん:02/08/12 20:52 ID:???
>>125
なしてハッシュ使ってそんなめんどくさい事わざわざやって
認証するのかわからん。
130nobodyさん:02/08/12 22:25 ID:???
要素が3つあるのにハッシュを使う意味がわからん
131nobodyさん:02/08/12 23:21 ID:???
正規表現で、 _[a-e] が特定のスカラーにいくつ含まれるか検査したいんですがどうすればいいですか
132nobodyさん:02/08/12 23:50 ID:???
$n= $_=~ s/(_[a-e])/$1/g;
133 :02/08/13 00:05 ID:???
CokkieがOffだったら指定のページに飛ばす
…そんなcgiってありますか?
もしあったら、参考になるサイト、もしくはプログラムを
お教え下さい。
134nobodyさん:02/08/13 00:08 ID:???
マルチか。          
135nobodyさん:02/08/13 01:27 ID:???
>>133
ほれ。

文化庁がトップページ以外へのリンクを機械的に拒否
http://slashdot.jp/article.pl?sid=02/07/09/0626258&mode=thread
136nobodyさん:02/08/13 01:31 ID:/aTNrvJI
うちのサイトに置いたファイルのダウンロード数を
カウントするスクリプト、どっかに落ちてますか?
別に自分で見れればページに表示するつもりはないです。
137nobodyさん:02/08/13 01:39 ID:???
>>136
スレ違い。
CGI探すスレ行け。
138nobodyさん:02/08/13 01:40 ID:???
139nobodyさん:02/08/13 12:05 ID:???
考え方としては、

スクリプト開始時に自前のcookieを発行→直後それを照合出来ればcookie有効、出来なければcookie無効と見なして弾く。

そう難解でもないかと>133
140nobodyさん:02/08/13 15:47 ID:???
>>107

ちょっと時間が空いたので,1行200bytes(+crlf)の500行で約100kb程度のファイルをメモリに読み込むテストを行いました.

test1 @a = <FILE>と一度に全て読み込む.
test2 whileでループして1行ずつ読み込む.

この処理を500回ループして,経過時間を計りました.
結果.

TEST1: 39 wallclock secs (38.23 usr + 0.00 sys = 38.23 CPU) @ 13.08/s (n=500)
TEST2: 36 wallclock secs (35.86 usr + 0.00 sys = 35.86 CPU) @ 13.94/s (n=500)

と,微妙にtest2の方が効率が良いと出ました.
以下が実際に使用したソースです.
141nobodyさん:02/08/13 15:47 ID:0NNEcJ22
#!/usr/bin/perl
use Benchmark;

my $count = 500;

sub test1{
open(FILE,'test1.data');
my @a = <FILE>;
close(FILE);
}
sub test2{
open(FILE,'test2.data');
my $a = $_ while(<FILE>);
close(FILE);
}

@t = timethese($count,{
'TEST1' => '&test1;',
'TEST2' => '&test2;',
});

142nobodyさん:02/08/13 15:57 ID:0NNEcJ22
つまり,
foreach 文は
・扱うデータ量が少なく,ファイルをすぐに閉じたい場合.
・同じデータを繰り返し使用する場合.
while 文
・データ量が大きく,配列を生成すると莫大なメモリを使用してしまう場合.
・データの1部分だけを必要とし,無駄なデータを読む込みたくない場合.
という事でした.
143nobodyさん:02/08/13 21:45 ID:Q5/MwQBf
>>142
凄く普通の結論。
144nobodyさん:02/08/14 00:05 ID:???
ベンチマークを適切に使えるようになりましょう。
145nobodyさん:02/08/14 00:12 ID:???
>>142
ループの種類と処理内容とは、なんの関係もないから恥を晒すのは・・・
146nobodyさん:02/08/14 00:26 ID:LHt/Hq/v
おながいしますm(__)m(ペコリ)
ある変数をサブルーチン名に代入したりできるのでしょうか?
&サブルーチン名=変数; みたいにしたいのです
例えば
&hazime というサブルーチンを使いたい時
&(ココの書き方が分かりません)=$hazime;
みたいのことができるのでしょうか?

147nobodyさん:02/08/14 00:31 ID:???
できる。
$count = &con();
148147:02/08/14 00:31 ID:???
わりぃ。解釈間違えた。
149nobodyさん:02/08/14 00:54 ID:???
&$value;
150nobodyさん:02/08/14 08:03 ID:???
あのー、ネットでこんなの拾ってきたんすが、
なんでしょかね?これ??
#!/usr/bin/perl-s
$f=$d?-1:1;$D=pack('C*',33. .86);$p=shift;
$p=~y/a-z/A-Z/;$U=~s/( . *)U$/U$1/;
$D=~s/U( . )/$1U;';($V=$U)=~s/U/V/g;
$p=~s/[A-Z]/$k=ord($&)-64,&e/eg;$k=0;
while(<>){y/a-z/A-Z;y/A-Z//dc;$o.=$_}$o.="X"
while length ($o)%5&&!$d;
$o=~s/.chr(($f*&e+ord($&)-13)%26+65)/eg;
$o=~s/X*$//if$d;$o;$o=~s/.{5}/$&/g;
print"$o|n";sub v{$v=ord(substr($D,$_{0}))-32;
$v>53?53:$v}
sub w{$D=~s/(.{$_{0})(.*)(.)/$2$1$3}}
sub e{eval"$U$V$V";$D=~s/(.*)([UV].*[UV])(.*)/$3$2$1/;
&w(&v(53));$k?(&w($k)):($c=&v(&v(0)),$c>52?&e:$c)}
151nobodyさん:02/08/14 08:46 ID:???
>>150
素数判定(多項式時間)
152nobodyさん:02/08/14 14:31 ID:8dp0qhB8
ssendmailでHTML形式のメールを送信したいのですが、
HTMLソースをHTML形式のメールに変換するスクリプトをご存知ないでしょうか?

HTML形式のメールは、HTMLソースがそのまま本文中に書いてあるのだと
ばかり思ってましたが、MHTMLとかいう形式があるようで・・・
153nobodyさん:02/08/14 14:48 ID:???
>>152
スレ違い
【CGI初心者コーナー】
http://pc.2ch.net/test/read.cgi/php/1028646335/
154nobodyさん:02/08/14 14:56 ID:8dp0qhB8
>>153
リンク先は「まぁ、またお前は騙されたわけだが・・・ 」というスレッドです。
155nobodyさん:02/08/14 18:14 ID:???
>>154>>152です。
156nobodyさん:02/08/14 22:41 ID:dH0XveEg
教えて下さい。

-------------------------
#!/usr/local/bin/perl

print"Content-type: text/html\n\n";

print "購入申し込み";

-------------------------

と書いて実行すると、

-------------------------
購入垂オ込み

-------------------------

と表示されてしまいます。
どうしてでしょうか?
何か基本的なことを間違えてるのでしょうか。
157nobodyさん:02/08/14 23:19 ID:???
EUCでかくか \ を途中に入れろ。
158nobodyさん:02/08/14 23:26 ID:???
>>156
157じゃないけど、具体的には「申」のあとに\を入れろって事。
申\し込み
なぜこうなるかというと、「申」のShift-JISでの2バイト目が'\'(0x5c)だから。
159nobodyさん:02/08/14 23:35 ID:???
一週間をビットをたててフラグにしようと
$a = 1 << 2 としてみました
00000100 になると思ってたんですが
unpack("B*",$a) としてみたら
00110100 となっていました

上4ビットはなんなんですか
160nobodyさん:02/08/14 23:52 ID:???
>>159
0x34='4'
161nobodyさん:02/08/15 00:00 ID:???
>>160
そのとおりですね・・・

質問間違ってました
なんでもASCIIになってしまうのか聞きたかったんです
162156=154=152:02/08/15 01:27 ID:5Zkc/vw2
>>157
EUCに変換して解決しました。
ありがとうございました。

>>158
分かりやすい解説ありがとうございます。
勉強します。


152の問題も解決しました。
スクリプトは見つかりませんでしたが、
Content-type: multipart/alternative;boundary="--- ・・・
を付けて、テキスト部分とHTML部分を区切るだけで出来ました。
ありがとうございました。
163↓晒しヽ(`Д´)ノアゲー:02/08/15 02:47 ID:???
smile-seikun_gogo/[email protected] smile-seikun_gogo/[email protected]

http://rating.auctions.yahoo.co.jp/jp/show/rating?userID=hidekurokawa&filter=-1

評価: 非常に悪い 落札者です。評価者は manaboon2001 (21)
IBM Deskstar ATA100/60GB 7200rpm 送料込み!! (6月 9日 23時 14分)
出品者は「 非常に悪い 」と落札者を評価しました。
コメント:取引終了後、1週間のうち私から3度メールでご案内しても何も返事がありませんでした。 
お前はブラックリスト入りだ!! (6月 15日 23時 7分) (最新)

評価: 非常に悪い 落札者です。評価者は goodnanews (2)
デジタルミキサー Fostex VM04 (11月 11日 5時 49分)
出品者は「 非常に悪い 」と落札者を評価しました。
コメント:一方的な理由でキャンセルされました。自分が落札した商品には責任を持って対処してください。 (11月 14日 12時 36分) (最新)

評価: 悪い 落札者です。評価者は gtak55 (42)
FOSTEX☆MN06☆6チャンネルミキサー (10月 17日 5時 9分)
出品者は「 悪い 」と落札者を評価しました。
コメント:キャンセルの理由が納得いきません。落札したものはどんな理由があれ責任を持って購入すべきではないでしょうか?
(10月 18日 23時 48分) (最新)

評価: 非常に悪い 落札者です。評価者は hiroalive2000 (35)
定価98000円のスーパーリズムマシンプラス・メモリー9800円あわせて12000円即決 (9月 19日 2時 23分)
出品者は「 非常に悪い 」と落札者を評価しました。
コメント:最悪です。何度連絡してもメールくれません。完璧な無視です。多分オークション二酸化しないほうがいい人
ですからこんな人は注意してください。みなさん。 (9月 24日 19時 33分)
コメント:これかいたらすぐに返事がくるんですよ。こういうやつがふえてるんで・・・。
今まで完璧な無視してきたらこうかかれると私にしつこいとか言ってもんくつけるんですよ。すいそくですが・・・・
日ずけ見て下さったら皆さんわかると思います。 (9月 24日 19時 36分) (最新)
164nanasi:02/08/15 04:12 ID:???
はじめまして。外部からあぷされた画像を呼び出した場合TOPに移動するように
したいのですがどのようにしたら良いのでしょうか
165nobodyさん:02/08/15 04:22 ID:???
>>164
説明する能力をつけてから来なさい。
166nanasi:02/08/15 05:50 ID:???
はい。たしかに学生なので文章能力ありません。これで分かりますか?
http://www.cj-c.com/cgi_s/upb.htm (UPP BORD)
を設置してるのですがあっぷした画像のみを他サイトの掲示板で
転載されて困ってるので他サイトからあぷされた画像を閲覧した場合
自分のHPのTOPに飛ぶようにしたいのです。
あっぷされた画像直リンの場合弾きたいということです。
どうか方法教えてください
167nobodyさん:02/08/15 11:08 ID:???
>>166
画像の直リンク防ぎたいなら .htaccess の出番かと
「.htaccess 画像 制限」 こんな感じのキーワードで
googleで検索すれば解説してるサイトみつかるべ。
これ以上はスレ違いなので、あとはご自分で・・・
168エロ助:02/08/15 11:32 ID:h1WzO6+x
http://www.kemokemo.com/ 
http://www.kemokemo.com/products/picchabo/picchabo203.lzh 
上(掲示板CGI)に下(ランダム広告CGI※呼び出しによりSSI使用しない方)を設置したいのですが『インターネットサーバーエラー』になります。(;_;)
一通りパーミッション設定などを説明どうりやってみたのですが設置できないんです。。(;_;)なぜでしょう??(;_;)
どうか教えていただけないでしょうか。。(;_;)
また呼び出しのときの記述が『require 'rand.pl';  rand::main($Op1,$Op2,$Op3);』を記述しろと書いてあったので正確に記述したのですが『インターネットサーバーエラー』になってしまうんです。。(;_;)
『$buffer』でも記述したんですがだめでした。
http://taihei.cc/pc/cgis/random.html
http://taihei.cc/pc/cgis/randban11.lzh
169nobodyさん:02/08/15 11:34 ID:???
マルチは放置。
170nobodyさん:02/08/15 14:23 ID:???
画像のアップローダーでアップロードされた画像の
縮小画像を生成したいんですが、
私の知っている方法ではroot権限の関係で共有スペースでは不可能なのですが
root権限の関係無しに縮小画像を生成する方法はありますか?
171nobodyさん:02/08/15 15:09 ID:???
>>170
   / ̄ ̄ ̄ ̄ ̄ ミ
  /   ,――――-ミ
 /  /  /   \ |
 |  /   ,(・) (・) |
  (6       つ  |
  |      ___  |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |      /__/ /  <  HTMLでできるだろ!
/|         /\   \__________
172nobodyさん:02/08/15 15:33 ID:???
>>170
GDを使うといい。GD.pmで検索しる。
http://member.nifty.ne.jp/hippo2000/perltips/GD.html
173170:02/08/15 17:21 ID:???
>>172
ありがとうございました!
じっくり読んでみます!!
174アップローダを作り隊:02/08/15 18:04 ID:OdAnllx3
ファイルアップローダを作りたい、と思うこの頃ですが、
どうもわからんのです。
フリーのアップローダのソースを見ても掲示板とかが邪魔で
肝心のアップローダの仕組みがわからず。。。
perlのリファレンス本を何冊か読んでも、
何をアップローダに使えばわからず。。。

どうか皆様、この私にアップローダの「ア」の字くらいを教えてくださいませんでしょうか。
175170:02/08/15 18:24 ID:???
2<>コメント
3<>コメント
1<>コメント
ログファイルにこういう形で保存されいて
1 2 3の中のもっとも大きい数字を求めるにはどうすればいいのでしょうか?
176nobodyさん:02/08/15 18:28 ID:???
>>175
数値は比較するとその大小関係がわかります。
177170:02/08/15 18:40 ID:???
すみません理解できました。
178nobodyさん:02/08/15 18:44 ID:???
教えるまでもなくアの字なら知ってるじゃん
179nobodyさん:02/08/15 19:04 ID:???
>>174
ゆいのーとの最初の方をみれば割と判るとおもう。
http://zurubon.strange-x.com/uploader/src/
調べるなら「Content-type: multipart/form-data」で。
http://www.tsden.org/ryutaroh/fileupload-j.shtml
180アップローダを作り隊 :02/08/15 19:52 ID:OdAnllx3
>>179
スマソ。やっぱりわからんです。
設定するところをして、CGI対応のサーバーにアップしたのですが、
ファイルサイズがやけに小さくなって、しかも開けず。
自分のPCにApache入れてるんですが、それでも同じ結果です。
他のアップローダーもファイルサイズが同じように小さくなります。
ちなみにJPGファイル。
対応してるはずなんですが。。。
アップローダー十個くらい試してみたのですが、全滅です。。。
設定がいけないんでしょか?
181nobodyさん:02/08/15 19:58 ID:???
>>180
スマソ。さっぱりわからんです。
とりあえず設定後のスクリプトを晒してごらん。
182nobodyさん:02/08/15 20:01 ID:???
どのあぷろだでも同じならブラウザ壊れてるんじゃない?(^^;
バグの原因が判らないなら3〜4種のブラウザで再現するかどうか見れ。
183アップローダを作り隊:02/08/15 20:17 ID:OdAnllx3
>>180
http://ruffnex.oc.to/ipusiron/upload/1171.zip
↑一応ゆいのーとを使っているサイトにソースをアップしました。
最低限設定する必要がある部分など指摘していただけたら、と。
184アップローダを作り隊 :02/08/15 20:17 ID:OdAnllx3
>>181ですた。
185nobodyさん:02/08/15 20:49 ID:???
>>184
ちゃんと動くよ?(^^;
$url = 'http://www.hoge.com/~hoge/up/source.cgi';
$storeurl = 'http://www.hoge.com/~hoge/up/source/';
$counter_enable = 0;
source.cgi(755)とsourcelog.txt(777)とsource/(777)を置いてパーミッションを適当に。
妙な制限掛かってるんじゃない?
186アップローダを作り隊:02/08/15 20:57 ID:OdAnllx3
>>185
そ。。。そうなんですか?
ちなみにスペース借りてるサーバーがWindows2000なんですが、
それも関係あるんでしょうか?
文字化けも激しいのですが。。。
187nobodyさん:02/08/15 21:08 ID:???
win2k にも binmode() って必要なのかな?
188nobodyさん:02/08/15 21:23 ID:???
>>186
それを先に言(以下略
unixを想定して作られてるんだろうからunixで使えば?
189アップローダを作り隊 :02/08/15 21:24 ID:OdAnllx3
http://ruffnex.oc.to/ipusiron/upload/1172.gif
一応、いくつかファイルをアップした時の状態のものを晒しておきます。
何かこれからわかることがあったらよろしくです。
190アップローダを作り隊 :02/08/15 21:29 ID:OdAnllx3
>>188
もともとソースファイルを参考にして自分で作ろうと思ってるので、
できれば>>183のソースファイルの何行目あたりが大事だぞ、とかだけでも言っていただけないでしょか?
ほんと聞いてばかりですみませんです。
191nobodyさん:02/08/15 23:55 ID:???
>>190
binmode()は検討した?
192nobodyさん:02/08/16 00:02 ID:???
携帯で画像をアップロードする方法を教えてください。
193アップローダを作り隊:02/08/16 00:09 ID:kDsvONdE
>>191
今ソースファイルをわかり易く?まとめてるので、
binmodeを使うべきところがわかったら試してみようと思ってます。
使い方はわかったのですが、今までbinmodeというのは知らなかったので。。。
194nobodyさん:02/08/16 01:13 ID:???
cgi-lib.plライブラリを使った方が早いんじゃないの。
CGI.pmでもいいけど。
195nobodyさん:02/08/16 14:48 ID:???
質問を眺めていると、デリミタに<>を使っているものが多いんだけど、これは何でで
しょうか。普通:じゃないですか?
196nobodyさん:02/08/16 15:42 ID:???
>>195
そんな既出ネタ書いて気分がいいのか?
197nobodyさん:02/08/16 16:37 ID:???
>>196
厨房は書き込まないでね
198nobodyさん:02/08/16 17:45 ID:gz1h7SNU
>>195
:をエスケープしないで済むからだとおもわれ。
タグを許可しなければ<>が入力されてくることはないので都合がよい。
199nobodyさん:02/08/16 18:53 ID:???
おれは \t だなぁ。
ていうかこれが普通だと思いこんでいたけど。
200nobodyさん:02/08/16 20:57 ID:???
ふつー\0でしょう
セパレータに2バイトも使うとは愚の骨頂ですね
\t ?? はつみみです
201アップローダを作り隊=193:02/08/17 04:09 ID:17AkwzDg
ソースファイルを何度も変えて試したのですが結局うまくいかず、
それならばと、書店に行って「大人のCGIスクリプト」という本を買って
そこに出ている「ホームページにファイルをアップロードする」というところを
参考にしました。
それで、とりあえず本に載っているソースをそのまま書いて試したのですが、
うまくいきません。…つД`)
もうどうしていいのかわからないのですが、
本に載ってたものをそのまま書いたソースファイルをアップしておきましたので、
もし見て何かわかることがありましたら、どうかお願いします。
http://ruffnex.oc.to/ipusiron/upload/1178.zip

状態として、CGI自体はエラーもなしに動くのですが、
ファイルがまったくアップロードされません。
1バイトもファイルが作られないので、何か決定的な間違えがあると思うのですが。。。
あと32行目当たりのコメントの後ろに「$bound =~ s/…」とあるのですが、(本がその通りに書いてあったので)
これは本来コメント部分なのか、それとも間違えてコメントの部分に書かれたものなのかがよくわかりません。
202アップローダを作り隊=193:02/08/17 04:12 ID:17AkwzDg
付け足しなのですが、
本には”アップロードされたファイルは「./filepost/」というディレクトリに保存される。”
と書かれたありました。
203nobodyさん:02/08/17 09:27 ID:???
「./filepost/」がパーミッション間違えてたりしてナ。
204アップローダを作り隊:02/08/17 10:12 ID:17AkwzDg
>>203
パーミッションは755ではダメですか?
CGIスクリプトからの書き込みとパーミッションって関係ないと思ってたのですが。。。
あと、前述したのですがNTサーバーなのでパーミッションが変更できないのです。
(NTサーバーだから変更できないわけじゃないかもしれませんが、借りてる鯖は変更できません)
やっぱりパーミッションは777がいいのでしょうか?
205195:02/08/17 13:13 ID:???
なるほど。漏れはCGIじゃなくて普通にUNIX鯖でperlアプリを書いているので、
CGIの流儀には詳しくないんだ。スマソ。
206nobodyさん:02/08/17 13:20 ID:???
>>204
>> パーミッションは755ではダメですか?
>> CGIスクリプトからの書き込みとパーミッションって関係ないと思ってたのですが

ええと、不特定の人がファイルをうpするんですよね。うp = 書きこみですから、
ファイルを保存するディレクトリに誰でも書きこめるようにしておかないと駄目です
よ。755なら所有者しか書きこめません。
って、これはUNIX鯖の話で、NTのことは分かりません。でもパーミッションが変更で
きなかったら使いものにならないような気がしますが...
207nobodyさん:02/08/17 14:19 ID:???
if ($ENV{'REQUESTMETHOD'} eq "POST"){

まずはここから ⇒ REQUEST_METHOD
208207:02/08/17 14:28 ID:???
sub fileget{
    if ($ENV{'CONTENT_LENGTH'} > 5050000){exit;}
    binmode(STDIN);  # 追加
    #ファイル名、区切り文字「バウンダリ」の取得
    while (<STDIN>){
209207:02/08/17 14:30 ID:???
    if (open(OUT, "> ./$fname")){
        binmode(OUT);  # 追加
210nobodyさん:02/08/17 16:09 ID:???
連続した番号(例えば1から100まで)を
ランダムに並び換えて(シャッフルして)出力するにはどうすればいいですか?
211nobodyさん:02/08/17 17:01 ID:???
212アップローダを作れ隊:02/08/17 17:34 ID:17AkwzDg
>>207
で、で、で。。。できますた〜。つД`)
if ($ENV{'REQUESTMETHOD'} eq "POST")のところは
後で自分で気付いて「バカだな〜」と思ったのですが、
それ直しても全然できなくて。。。
バウンダリというものが、検索かけてもいまいちイメージがわかないのですが、
きっとそのうち自分で勉強して理解できるようになります!
本当にわざわざソース見て、指摘してくださってありがとうございます。
二日間ほとんど寝ずに頑張った甲斐がありました。
いつか初心者コーナーで答えられるようになって帰ってきます。
本当にありがとうございました。

>>206
NT鯖がどうなのかよくわからなかったのですが、
パーミッション755で無事アップロードできました。
そもそもパーミッションってあるのかな?っと思いました。
213nobodyさん:02/08/17 17:42 ID:???
>二日間ほとんど寝ずに頑張った
案外、これが重要だったりする。
214???:02/08/17 18:07 ID:mpsXRrac
本当の初心者なんですが、
サイトなどを見ながら、cgiの勉強しはじめたんです。

で、何か、perlを落として来いって書いてるんですけど、
perlをダウンロードしようと思ったら、
xpのところが「No additional requirements」って書いてて、
落とせないんですが、
どれを落とせばいいのでしょうか?
215???:02/08/17 18:10 ID:mpsXRrac
あ、私のosが、xpなんですね。
んで、落とそうとしたサイトが、
有名なんでしょうが、一応書いとくと、
http://www.activestate.com/Products/Download/Get.plex?id=ActivePerl&_x=1
です。。。
216nobodyさん:02/08/17 18:16 ID:Jdg3+PCY
http://hiero_pl.tripod.co.jp/
よし↑とりあえずこれいれろ5.8な、


、、んでだActivePerlのそれはインストーラーがうまくいかないOSは
パッチあててねって意味。2000/XPには必要ねーよってこと
217nobodyさん:02/08/17 18:20 ID:???
http://www.activestate.com/Products/Download/Register.plex?id=ActivePerl
↑、どこでダウソするんだろうな?
有名も糞もなにもここにいるWin厨はみんなActivePerlだろう。
最近はネトランも付録CDにつけてるからな〜そういうのはいいんだがあの雑誌は
218???:02/08/17 18:25 ID:???
あー!解りました!
アフォ過ぎだったんですね。
優しく教えていただき有難うございました!
219nobodyさん:02/08/17 20:03 ID:fKAF/2/W
すみません、どなた教えてください。
PERLってパラメータ(変数)渡してファイル実行、てできないんでつか。

cgiページで別のcgi呼ぶのに

require 'XXX.cgi';

とやればいいのは分かるんですが、変数渡して実行するやり方が
分かりません。
220nobodyさん:02/08/17 20:38 ID:???
>>219
グローバル変数はそのままサブに引き継がれるが・・・
難しいか?

====================
本スクリプト

$aa = 1;
$bb = 2;

require 'XXX.cgi';
&XXX;

====================
XXX.cgiの内容

sub XXX {
 $cc = $aa + $bb;
 print "$aa + $bb = $cc";
} 1;

====================
221nobodyさん:02/08/17 20:43 ID:???
こういう方法もあるな

====================
本スクリプト

require 'XXX.cgi';
&XXX(1,2);

====================
XXX.cgiの内容

sub XXX {

 $aa = $_[0];
 $bb = $_[1];
 $cc = $aa + $bb;
 print "$aa + $bb = $cc";
} 1;

====================
222nobodyさん:02/08/17 21:02 ID:???
>220-221
分かりました!ありがとうございます、やってみます。
223nobodyさん:02/08/17 21:08 ID:???
最後の
} 1;
ってどういう意味があるのですか?
224 :02/08/17 21:13 ID:???
>>223
このパッケージ関数の仕事は正常に終わったよ(゚Д゚)、ペッ  って意味。
225 ◆4XfSMGTg :02/08/17 22:26 ID:???
糞どもしねや
226 ◆4XfSMGTg :02/08/17 22:45 ID:???
#kusokote
まったくだ。CGIの話はして欲しくないな。
227 ◆4XfSMGTg :02/08/17 22:46 ID:???
低レベルなスレッドだな。ぷっ
228nobodyさん:02/08/17 22:47 ID:???
>224-225
( ゜д゜)ポカーン
229nobodyさん:02/08/17 22:48 ID:???
>224スマソ
>225-227
タイム( ゜д゜)ポカーン
230 ◆4XfSMGTg :02/08/17 22:52 ID:???
悔しかったらParrotの話でもしてみせろよ。糞ども
231 ◆4XfSMGTg :02/08/17 22:53 ID:???
ここにいる連中のレベルは底が知れているな。
232 ◆4XfSMGTg :02/08/17 22:53 ID:???
まったくだ。CGIの話はして欲しくないな。
233 ◆4XfSMGTg :02/08/17 22:55 ID:???
俺みたいにexeを生み出して見ろや。腐れ低脳どもが。
234 ◆4XfSMGTg :02/08/17 22:58 ID:???
まったくだ。俺はこのスレはもう立てるなってpart14で叫んだのに、、、(泣
235nobodyさん:02/08/17 23:32 ID:???
>>233
exeを生み出して・・・・。
なんかカッコいい!!




























わけないジャン。
236nobodyさん:02/08/18 15:40 ID:CpuDe273
perlでyahoo等のページを読み込のは無理ですか?
openでURLを指定してwhileでprintさせてみましたが
何も表示されませんでした。
もしできるのなら方法を教えてください。
237nobodyさん:02/08/18 15:44 ID:???
238nobodyさん:02/08/18 15:56 ID:QsLadsc+
JAVAスクリプトで、Duriusというサイトからダウンロードした
アプレットを、なんとかしてホームページで使いたいと考えています。
WaterPicというアプレットなのですが、
「classファイルが見つかりません」とステータスバーに表示されてしまい
必要なファイルはすべてサーバーにアップしたのですが、
うまく表示されません。
海外サイトなので、翻訳ツールなど使ってFAQを読んでみたり
自分なりに検索をしてみたのですが、どこを直せば良いのかわからず…。
どなたかご教授戴けますでしょうか。よろしくお願い致します。

参考サイト ttp://www.durius.com/index.php
239nobodyさん:02/08/18 16:17 ID:???
>>238
おもしろーーーーーーーーーーーーーーーい!
240nobodyさん:02/08/18 16:27 ID:QsLadsc+
設置できないのですよぅ…。とほほ。
241236:02/08/18 16:28 ID:???
>>237 サンキュー!
242nobodyさん:02/08/18 16:31 ID:???
>>240
ここ Javaアプレット のスレじゃなくて perl のスレですよん?
>>1 読んでます?
アプレットの設置で詰まってるならWeb製作管理板へどうぞ

☆ Webサイト制作初心者用スレッドver29 ☆
http://pc3.2ch.net/test/read.cgi/hp/1028459248/l50
243nobodyさん:02/08/18 16:32 ID:QsLadsc+
242さん、ありがとうございます。
244nobodyさん:02/08/18 17:42 ID:iuSsoGyA
ソケットの接続をするために下のようなコードを書いたのですが
戻り値を得るのに時間がかかった時のために、タイムアウト時間を
指定する方法はないのでしょうか?
unless (connect SOCKET, $sockaddr) {
warn "don't connect $host:$port $!";
return 0;
}

一定時間後に別プロセスからシグナルを受け取ると、connect関数の
戻り値が得られていなくても次の動作にうつる、という方法も考えた
のですがもっと簡単な方法があれば教えてください。
245+++:02/08/18 18:00 ID:R5t0PgRF
ActivePerlが、
http://www.ActiveState.com/ActivePerl/download.htm
↑ココから進んだ先で、DL出来ないんですが、
なぜでしょう?(Win の AS package)
どこか他でDL出来ないでしょうか?
246nobodyさん:02/08/18 18:02 ID:???
247+++:02/08/18 18:07 ID:R5t0PgRF
>>246
落ちてきます?
404なんですけど・・・。
248+++:02/08/18 18:10 ID:R5t0PgRF
あ、サーバが見つかりませんでした。・・・なんですけど。
249f:02/08/18 18:25 ID:zqX/Ef2t
-------風俗の総合商社・MTTどこでも-------

〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------

250+++:02/08/18 19:21 ID:???
お!今行ったら、落ちてきました!
メンテかなんかだったんでしょうかね?
とにかく、解決しました。スレ汚しスマソ。
251nobodyさん:02/08/18 20:15 ID:???
>>244
alarmとevalを使えばよい。
http://www9.org1.com/~anach/memo/20020309.html
252nobodyさん:02/08/18 21:56 ID:???
Win2K+Apache+ActivePerlの環境です。
スクリプトのエラーがあると、err500とかになっちゃいますが、エラーの個所とか出せないんでしょうか?
前はIIS+ActivePerlだったんですが、そのときはエラーログが残ったんですが。。
253nobodyさん:02/08/18 22:43 ID:???
>>252
perl単体で起動できないの?
254nobodyさん:02/08/19 09:07 ID:???
>>252
perl -cw filename
255nobodyさん:02/08/19 11:26 ID:???
use Carp;
use sigtrap;
use diagnostics;
use warnings;
256nobodyさん:02/08/19 12:43 ID:???
スイマセン、画像UP掲示板を作っていまして
CGI.pmを使ってフォームから
ENCTYPE="multipart/form-data" METHOD="POST"
としてCGIに送っているのですが、書き込みを中止させたときに
JavaScriptで書き込みのページに戻しているのですが(一から書き直させない為です)
「 警告 : ページの有効期限切れ 」
と、出てしまいます。
これはしょうがないのでしょうか?

CGI.pmを使わない普通の掲示板だと上手くいくのですが・・・。
257nobodyさん:02/08/19 13:38 ID:???
>>251
自分で考えたものより簡単そうなので試してみます。
ありがとうございました。
258nobodyさん:02/08/19 13:59 ID:???
>>244

IO::Socket の connect()メソッドのコードを見よ。
ってかIO::Socket::INET使え。

$sock = IO::Socket::INET->new(
  PeerAddr => $host,
  PeerPort => $port,
  Proto => 'tcp',
  Timeout => 60,
);
259nobodyさん:02/08/19 17:00 ID:1kKCbwDN
a<>b<>cccccccccccccccccccceeeeee
上の形式で保存されているログファイルの中にあるcの数をカウントするにはどうすれば良いのでしょうか?
260nobodyさん:02/08/19 17:06 ID:???
>>259
上にあったぞ
$count には $log の変換個数が入る。

$count = $log =~ s/c/c/g;
261259:02/08/19 17:08 ID:???
ありがとうございます!
メモしておきます!!!!!!!
262nobodyさん:02/08/19 17:49 ID:???
>>256
Pragma:no-cacheとか吐いてるんじゃ無いの?
263256:02/08/19 19:43 ID:TnC/wrS+
Pragma:no-cacheの事が分らなかったので今急いで調べましたが
ヘッダーに入れてキャッシュを無くすものでしょうか?

自分では入れていないので、データを受取ってCGI.pmで
$query->param
しているのが原因でしょうか?
というか勝手にCGI.pmで処理されているのでしょうか?
264nobodyさん:02/08/19 21:34 ID:nf8Usneb
可能な限りHTML的に正しいコードを吐き出したいんですけど、
「#」ってエスケープできないんでしょうか。
265nobodyさん:02/08/19 21:45 ID:DxRxf6Pv
Perl5.8.0で
 use encoding "euc-jp";
してるときにURLエンコード・デコードってどうやるんでしょうか?
文字列がUNICODEになるせいか普通の方法だとできないです。
266nobodyさん:02/08/19 22:16 ID:???
>>264
HTMLなら実体参照でもいいんじゃないか。
267264:02/08/19 22:40 ID:nf8Usneb
>>266さん
ええと、色コードの指定に使いたいんですけど、実体参照でも有効なんですか?
っていうのは板違いですかね。
調べてきます。
268E04 ◆Ikb1Go.. :02/08/19 22:50 ID:gHSnDTPF
掲示板に2ch掲示板のようなキャップ機能をつけたいと思っています。

ログファイルに書き込まれた文字列を$capとして読み込み、
読み込んだ後に暗号化したいんですけど…

YY-Boardのcryptルーチンを転用させてもらったら、アクセスするごとに表示されるキャップが変わってしまいました。
どなたか、キャップ機能のルーチンを書いていただけたら光栄です。
269E04 ◆Ikb1Go.. :02/08/19 22:52 ID:gHSnDTPF
すみませんキャップじゃなくてトリップですた
鬱じゃ
270nobodyさん:02/08/20 10:21 ID:mXpjYiji
>>268
コピペする人のために書くルーチンは在りません。
カエレ。
http://pc.2ch.net/test/read.cgi/php/1003131529/375
271E04:02/08/20 13:28 ID:OO5Itufa
>>270
マジかよ・・それ俺じゃないのになぁ(´Д`;
ま、マルチじゃないのにマルチと決め付けられたり、自作自演と決め付けられるのも、
この板ならではだからシカタナイか。
272nobodyさん:02/08/20 13:32 ID:0fyshNrg
んじゃ
$trip = substr( crypt($cap, $cap), -8 ) ;
273270:02/08/20 13:45 ID:UfVInuyu
>>271
マルチは問題ではありません。
ていうか、そこまで出来るのであれば、
crypt
の動作を調べて自力で出来るはず。と思う。
ソレで出来なかったらソースを晒して下さい。
274nobodyさん:02/08/20 14:03 ID:???
ログインをしたら、クッキーを食べさせて
ダウンロードするときなどに、認証するようにしたいのですが
どのような処理を行えばいいでしょうか(;´Д`)

ヒントを頂けないでしょうか?
275nobodyさん:02/08/20 14:12 ID:???
ログイン時にクッキーを発行。
ダウンロードするときなどに、クッキーで認証する。
276nobodyさん:02/08/20 14:48 ID:???
277nobodyさん:02/08/20 15:04 ID:???
やっぱりマルチやんか。
プンプン
278256:02/08/20 16:39 ID:???
亀レスですが・・・。
>>262さん
原因がわかりました、一度投稿した後そのまま記事表示させ、
その後の投稿でエラーなどで、投稿が中断され戻ると、
警告が出てきていました。

ですので、書き込み処理の後にHTTP-EQUIV=Refreshで更新させ
たら、上手く行きました。
すいませんでした。
279256:02/08/20 16:41 ID:???
×その後の投稿でエラーなどで、投稿が中断され戻ると
 その後の投稿が中断され、ブラウザの戻るボタンで戻ると
280nobodyさん:02/08/20 22:43 ID:EZdiVz9h
perlでのWebページ表示について質問です。

ttp://books-support.softbank.co.jp/pq/backnumber/012_ans_reader.html
この例のwebアドレス部分をauctions.yahoo.co.jpに置き換えると
とうまくいかないのはなぜですか?
www.yahoo.co.jpだとうまくいくんですが。
281nobodyさん:02/08/20 22:59 ID:???
旨くいかない? 上手くいかない? 美味くいかない? 美味く逝かない?
HTMLは取れますけどね
282280:02/08/20 23:25 ID:EZdiVz9h
>>281
すみません。オークショントップは繋がりました。
(さっきはできなかったのに)

rating.auctions.yahoo.co.jp/jp/show/rating?userID=nakatax2002&filter=-1
こっちアドレスだと「通信が確立できませんでした」が出るんですが
なぜでしょうか?
283nobodyさん:02/08/21 00:24 ID:???
そのページを見るためにクッキーとか、要るんじゃないの?
284nobodyさん:02/08/21 00:49 ID:???
すみません質問です!
フォームから受け取った変数に文字列が何も入ってない場合の
処理をしたいのですがどうすれば良いでしょうか?

if($hensu==null){}
if($hensu==""){}
この二つを試してみたんですが駄目でした。
285nobodyさん:02/08/21 01:23 ID:???
・・・ if ($aaa eq '') だろ?
286nobodyさん:02/08/21 05:46 ID:???
>>284

そんなレベルでクエリすんな!
287nobodyさん:02/08/21 08:52 ID:wr41ngxx
ここでいいのかわかりませんが質問させてください。

ちゃんと動作してるcgiを(無意味ですがうっかり)書き換えなしに
上書きアップロードしたら動作しなくなってしまいました。
なぜなんでしょうか?サーバー側には問題ないようなんですが・・・
288nobodyさん:02/08/21 09:09 ID:???
>>287
それを「ちゃんと動作していない」とゆう。
パーミッション以外、指摘の仕様が無い。
289nobodyさん:02/08/21 09:59 ID:???
あとバイナリモードで送信したか,ちゃんと動いていた(過去形)というのが妄想だったか,
「書き換えなしに」というのが嘘っぱちか.
290送料:02/08/21 10:12 ID:piy6swDN
フォームのプルダウンで都道府県を選ぶと、
送料が表示されるというもの。
 前提1 プルダウンのvalueは漢字で北海道…
 前提2 料金は別ファイルに記述 hokkaido=790…
で、次のようにしたのですが、

@pref = ("北海道","青森県","秋田県","岩手県"…);
@price = ($hokkaido,$aomori,$akita,$iwate…);
$inx=0;
foreach $pref (@pref) {
 if (index ($pref,$form_data{'pref'})>= 0) {
  last;
  }
$inx++;
}
$soryo = $price[$inx];

誰か、もっといい方法、教えてください。
291名も無き冒険者:02/08/21 10:33 ID:???
お初です。
実はこんな事が出来るCGIが無いかと探しています。

定期的に特定のサーバーへpingを打ちその結果を表示する。
※イメージ的にはMRTGでpingの応答時間をグラフ化した感じ
出来たら、グラフ表示で過去ログを見えるとベストですが、共有サーバー上なので
勝手な設定やソフトを導入出来ない為に諦めています。

目的は、あるサーバーへの応答時間(経路またサーバー負荷かによる原因は区別しない)
を、監視するサイトを作る為です。
表示の度に実行するタイプとcronで5分間隔程度で実行するタイプのどちらかを探しています。

かなり探したつもりですが、見つける事が出来ませんでした、
ここのエロい方々なら知っているのではないかと思い書き込んでいます。
どうか、おながいします。
292nobodyさん:02/08/21 11:16 ID:???
>>290
$DATA{'hokkaido'} = "hokkaido,北海道,十円";
$DATA{'aomori'} = "aomori,青森,百円";
$soryo = (split(/\,/, $DATA{$form_data{'pref'}}))[2];
とか?
いや、もっといい方法あると思うけど。ケースバイケースで。
293nobodyさん:02/08/21 11:20 ID:???
>>291
http://pc.2ch.net/test/read.cgi/php/1021897804/l50
何故、エロいと判った!?
294名も無き冒険者:02/08/21 11:50 ID:???
>>293
thxです。
なぜって、エロくないヤツがここにくるわけないと思っただけです。
295      :02/08/21 21:17 ID:koSJYhB+
すごいいきなりバカな質問なんですけど
レンタルのカウンター使いたいんです。
でもHPにタグを挿入とか意味が分からない
どうやるんですか??
296送料:02/08/21 21:18 ID:piy6swDN
>>292
レスありがとう。
$form_data{'pref'}は、北海道とか、青森とか
漢字が入ります。が、大丈夫ですよね。
試してみます。
297nobodyさん:02/08/21 21:22 ID:NuztNbpZ
>>296=290
リスト作っとくだけで出せるだろ。

%pref =(
'北海道',"$hokkaido",
'青森件',"$aomori",
'秋田県',"$akita",
'岩手県',"$iwate",
);

$soryo = "$pref{$form_data{'pref'}}";
298nobodyさん:02/08/21 21:36 ID:???
>>295
すごいいきなりバカな質問なんですけど意味が分からない
どうしてここに書き込んだんですか??
299nobodyさん:02/08/21 21:54 ID:???
htmlのテンプレートを読み込んで、表示させる掲示板で、
次のページへ移動する時にログファイルの行数で判断しようと思っています。

下の方法だと、行数のためにログを開くのがかなり無駄に思えるのですが
アフォなので良い方法が見つかりません。ヒントをご教授して頂けませんか?
$page は1ページの表示数です

open(LOG,$log)
@lines = <LOG>;$lines=@lines;close(LOG);

$end = $page + $now_no;
if ($end < $lines) {$next = "bbs.cgi?〜";}
else {$next = "";}

open(IN,$skin); $locate = \@header;
while(<IN>){
if (/<!--start-->/) { $locate = \@table; next; }
if (/<!--end-->/) { $locate = \@footer; next; }
push(@$locate,$_); }
close(IN);

print @header;
open(LOG,$log);
while(<LOG>){print $table;}
close(LOG);
print @footer;

一部省略しているので、分かりにくいかも知れませんが・・・
300nobodyさん:02/08/21 22:19 ID:???
>>258
ありがとうございます
そういう関数があるんじゃないかと探してました。
301nobodyさん:02/08/21 22:29 ID:???
>>299
よくわかんないけど。

print @header;
print @lines;
print @footer;

じゃダメポ?
302送料:02/08/21 22:39 ID:piy6swDN
>>297
レスありがとう。これで、やってみたらできますた。
深く感謝。
これって、'北海道',"$hokkaido", でセットになっているんですか?
北海道の場所がわかると、その横の変数が表示できるということ?
303nobodyさん:02/08/21 22:40 ID:???
>>301
それじゃ、ダメなんですよ。スマソ
open(LOG,$log)
@lines = <LOG>;$lines=@lines;close(LOG);
この処理はなくてもいいんですが、
記事が無くなっても、次のページへと言うのが
残ってしまうんです
304297:02/08/21 22:55 ID:NuztNbpZ
>>302
ハッシュについて調べてみ。
%hoge("キー","値");

$hoge{キー}で値が呼べる。
305 ◆RbZL6NeQ :02/08/21 23:13 ID:myM0YIeg
初めてライブラリ書いてみた。CHTML<->HDMLのつもり
各タグ、延々と同じようなことを繰り返す
もっとマシな書き方(効率・処理etc)ないでつか?
#####<HTML></HTML>#####
#$agent=[i=0/j=1/Ez=2/...]
sub html{
my($temp)=@_;
if(@$temp==2 && $$temp[1] eq 'tag_close'){
if($$temp[0]!=2){print '</HTML>'}else{print '</HDML>'}
}
else{
if($$temp[0]!=2){print '<HTML>'}
else{print '<HDML VERSION=3.0';
if(@$temp>1){
@text=('TTL','MARKABLE','PUBLIC','ACCESSDOMAIN','ACCESSPATH');
foreach(1..@$temp-1){
unless($$temp[$_] eq 'N'){print ' '.$text[$_-1].'='.$$temp[$_]}
}
}print '>'}}
}
306 ◆RbZL6NeQ :02/08/21 23:16 ID:???
>>305
@_=($agent,...)
ライブラリのわりに、コピペして'1;'忘れ
307nobodyさん:02/08/21 23:26 ID:???
ライブラリのコメントって ;# のがイイんじゃなかったっけ
308nobodyさん:02/08/21 23:29 ID:???
>>307
;# がよくて # が悪い?????
309nobodyさん:02/08/21 23:37 ID:???
307=jcode.plでモノを考えた典型的なCGI厨房
310_gunzip:02/08/21 23:54 ID:???
>>307-309
;# コメント
の形式のコメントが、たまに使われることがあるのは、
そのスクリプトが -P オプションでCプリプロセッサに前処理させることを前提としている場合、
#コメント がプリプロセッサディレクティブと誤認されないようにするため。

もっとも、jcode.plはそうではないが。
311nobodyさん:02/08/22 00:06 ID:???
あー来やがった。最強のコテが、、
とりあえず本物かどうか知らんがトリップぐらいしようね。
名前欄に_gunzip#hogehogeってやるんだよ

>>もっとも、jcode.plはそうではないが。
じゃああれはなんとなくってこと?
312_gunzip ◆/Re6aTC. :02/08/22 00:11 ID:???
           
313nobodyさん:02/08/22 00:11 ID:SxBa3EGu
↑この馬鹿早く規制されねーかな。
314nobodyさん:02/08/22 00:13 ID:SxBa3EGu
>>311,312な
315305 ◆Eth6qXuM :02/08/22 00:15 ID:F/orcdTE
>>311
スマソ、何も考えず適当に入れてた
最強なのか…一応変えとく
316_gunzip ◆H/XdoCNg :02/08/22 00:33 ID:???
>>311
作者ではないので真意は分からないが、スタイルでそうしているだけだと思う。

#トリップ御教示ありがとう。
317nobodyさん:02/08/22 01:03 ID:???
相手するなよ>gunzip
こいつ鬱陶しすぎ
マジむかつく
318311:02/08/22 01:08 ID:???
>>316-317
まとめて死ねよ。お前ら見てるとむかつく
319nobodyさん:02/08/22 01:26 ID:lGXorje/
>>311
ほれ 糞用のスレ立ててやったから
こっちに来い
http://pc.2ch.net/test/read.cgi/php/1029945604/l50

もう来てるみたいだけどな (w
320311:02/08/22 01:32 ID:???
>>319
>>315が出てこなければ問題は解決する。
321nobodyさん:02/08/22 01:41 ID:lGXorje/
>>320
糞頭じゃ足りない事が、人間には沢山有るんでね
322nobodyさん:02/08/22 09:04 ID:???
>>299
処理する順番を変える。
log が eof に達したら「次のページへ」を非表示にする。
323nobodyさん:02/08/22 12:42 ID:C0K12Syt
初心者の質問です。
KENT WEBの宅鯖計画を見ながらソフトのインストールを試みたんだけど
Active Perlのインストール中に警告ダイアログが出て
どうしてもうまくいきません。
うまくやる方法をうまく教えてください。
324nobodyさん:02/08/22 12:43 ID:???
どんな警告が出たのかを書かないと誰も答えられない。
325323:02/08/22 14:34 ID:C0K12Syt
>>324 そうですね、すいませんでした。

警告文は
"There is a problem with this Windows Installer package.
A script required for this install to complete could not be run.
Contact your support personal package vender."
です。
326nobodyさん:02/08/22 14:41 ID:???
MSIのバージョンをあげてみろ、といってみる。
327323:02/08/22 16:01 ID:C0K12Syt
MSIのバージョンのあげ方もわからない・・・

出直してきます。
お手数をお掛けして申し訳ありませんでした(逝)
328nobodyさん:02/08/22 16:28 ID:???
英語を読めない人間はプログラムをする資格がありません。

Windows Installer 2.0 for Windows 2000 and Windows NT 4.0
http://www.microsoft.com/downloads/release.asp?ReleaseID=32832
http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe

Windows Installer 2.0 for Windows ME, Windows 98 Second Edition, Windows 98, and Windows 95
http://www.microsoft.com/downloads/release.asp?ReleaseID=32831
http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe
329nobodyさん:02/08/22 21:37 ID:???
>>328
やさしいな。
330初必者:02/08/22 21:52 ID:???
いきなりスイマセン
↓これおかしいですか?動かんようになったんです。

##############################################

#リピート部分プログラム
sub output {

#mail入力の有無
if ($email eq '') {
print "$name : ";
}
else {
print "<A href="mailto:$email">$name</A> : ";
}

#メッセージの表示
print "$msg";
}

###############################################

コレだけやったら「ワケワカラン」ですかねぇ・・・
331nobodyさん:02/08/22 21:56 ID:???
#mail入力の有無
if ($email eq ''") { <=(。∀゜)「"じゃなくて""じゃないの?」
print "$name : ";
}
else {
332nobodyさん:02/08/22 21:57 ID:???
print "<A href="mailto:$email">$name</A> : ";

print "<A href=\"mailto:$email\">$name<\/A> : ";
333初必者:02/08/22 22:00 ID:???
えっと、、、
「"」じゃなくて、「'」2つなんで、okかと・・・
一応ダブルに変えたんですけど、ダメでした。

>>332
やってみます。
334初必者:02/08/22 22:03 ID:???
いけました!
超初歩的でしたね(スイマセン・・・)
1時間悩んだのが、5分ほどでいけました。
何やってたんだろ・・・
どもでした!
335nobodyさん:02/08/22 23:05 ID:???
>>334
""のなかに"が入る場合は\でエスケープするよりも、

print "<A href=\"mailto:$email\">$name<\/A> : ";

print qq(<A href="mailto:$email">$name<\/A> : );

で書くほうがすっきりするよ。
336初必者:02/08/23 00:25 ID:???
>>335
おっ!そんな方法もあるんですね。
参考になります。

なんせ、実質昨日から始めたみたいなモンなんで・・・
もう、お世話にならなくて済むようにガンバリマス。
ありがdでした。
337nobodyさん:02/08/23 05:01 ID:???
ちょっと疑問

ファイルの各行を配列の要素として読み込ませるコードって

open(FP,"+<$file");
@xx = <FP>;
foreach $yy (@xx) {
print $yy;
}
close(IN);

って書くらしいんだけど、
foreach $yy (@xx) {
print $yy;
}
これって意味あんの?
338337:02/08/23 05:09 ID:???
closeのほうのファイルハンドルまちがいた・・・鬱死・・・
339nobodyさん:02/08/23 06:17 ID:???
意味ないっていうか、読み込んだ奴を表示してる。
読み込むなら
open(FP,"< $file"); #または open(FP,$file);
@xx = <FP>;
close(FP);
でいいと思う。
漏れも初心者だからあってるかわからん。
340nobodyさん:02/08/23 07:26 ID:???
>>337

それくらいわかるだろヴぉけ
つかサンプルまるうつししてるようなうんこはしね
341nobodyさん:02/08/23 09:26 ID:???
>>340
マァマァ、ここは初心者スレですから・・・
342初必者:02/08/23 14:45 ID:???
昨日の今日で恐縮です・・・
かなりシンプルな掲示板を色々いじって勉強してるんですが、

テンポラリーファイルが、勝手に消えるんです。
全く分かんなかったんで、何度も何度も自分で作るんですけど、
プログラム実行するたび消えたんです。

で、検索したら、
「プログラムが動いているとき、一時的に作られる作業用ファイル」
って書いてあったんですけど、、、

つまり、実行後消えるって言うのは正常なんでしょうか?
343nobodyさん:02/08/23 14:56 ID:???
>>342に必要と思われるもの

英語の辞書 temporary
344初必者:02/08/23 15:06 ID:???
>>343
「一時的な」でしょ?
それは分かってます・・・
正常なのかが聞きたかっただけなんですけど、
煽られそうなんで、もぉやめときます。。。
345nobodyさん:02/08/23 15:23 ID:???
>>344
分かっているのに聞くと言うことは 極めて日本語が不自由な在日ですか?
346nobodyさん:02/08/23 15:40 ID:???
>>343
一時的というのは永続的に続く事なのですか?あなたが言っているのはそういうことになりますが。
347nobodyさん:02/08/23 15:48 ID:???
>>335
qq(\/);
としているのは意味あるの?
348nobodyさん:02/08/23 16:13 ID:???
>>347
ミスだろイイじゃん動くダロ
349nobodyさん:02/08/23 20:05 ID:BD+5XVCe
sendmailを利用したプログラムを書いていて
つまづいてしまったのですが、アドバイスいただけますでしょうか。

CGI設置サーバ:aaa.com
メーラーのSMTPサーバ:mail.ccc.or.jp
Mail-1:[email protected]
Mail-2:[email protected]
Mail-3:[email protected]
Mail-4:[email protected]

以上の環境で、Mail-1・Mail-2・Mail-3にはCGIからもメーラーからも
数秒〜数分でメールが届くのですが、
Mail-4にはメーラーからは数秒で届くものの、
CGIからは2時間ちょっと経過した今現在、まだメールが届きません。

sendmailでは、こんなにタイムラグってあるものなんでしょうか?
それともCGIプログラム自体に問題がある可能性がありますか?
原因のマトが絞れず悩んでいるのですが、よろしくお願いいたします。
350nobodyさん:02/08/23 23:27 ID:???
厨質でもうしわけないんですが、
ファイルの指定の行の内容をさしかえることってできますか?

open(CNT,"+<$cnt");
flock(CNT,2);
@cnt = <CNT>;
@cnt[$n] ++;  #n行目の数値をインクリメント
truncate(CNT,0);
seek(CNT,0,0);
foreach $a (@cnt)
{ print CNT "$a\n";}
close(CNT)

今は↑のような感じでやってるんですが、
これだと毎回ファイルをまるごと書き換えてるんで、効率悪いですよね・・・
351nobodyさん:02/08/23 23:57 ID:???
>>350
これじゃいかんかの?

open(SAQ,"unittest.pl");
@fasx=<SAQ>;
$fasx[2]="-_-";#替えたい行
print @fasx;
352350:02/08/24 01:55 ID:???
>>351
書きこむ時には結局

open(SAQ,">unittest.pl");
foreach(@cnt)
{ print SAQ "$_\n";}

ってやらないとだめなんですか?
353nobodyさん:02/08/24 04:07 ID:???
>>349です。
CGI設置サーバをddd.co.jpに変更したら送信先4件ともメール届きました。
前のaaa.comに設置した方からは、今だに[email protected]宛には
10時間経過した今現在も届きませんが、
とりあえずメールの受け取りができたので解決といった感じです。
ほんとはSSLが使えるaaa.comに設置したかったんですが、
は〜〜どうしよう・・・。
こんなことあるんでしょうか・・・sendmail。
もしかしてスレ違いだったかな。スミマセン。
354nobodyさん:02/08/24 04:41 ID:???
あぶらあげ
355nobodyさん:02/08/24 05:33 ID:???
スレ違いかもですが、クッキーについて少し質問させてください。

インラインフレームを使用したページで、-@
クッキーに対応したページをフレーム内に表示させると、-A
効かなくなったんですが、
当然のことなんでしょうか?

で、これが当然のことなら、
JavaScriptで、@のページにクッキーのスクリプトを埋め込もうと思うのですが、
それで、果たして、Aのページまで対応できるのか、不安になりまして・・・

どなたか分かる方お願いします。

全然、見当違いなこと言ってるのかも知れませんが、
そのときはお許しを・・・
356nobodyさん:02/08/24 05:49 ID:???
>>355
スレ違い以前に板違い。

JavaScript、VBScript等クライアントサイドの話題はWeb製作板へ
http://pc3.2ch.net/hp/
357nobodyさん:02/08/24 06:00 ID:???
そうですよね。
いや、Aのページが、
必死でクッキー処理を追加した掲示板だったもんで・・・
「製作板」逝ってきます。
358kusokote ◆4XfSMGTg :02/08/24 13:22 ID:???
ばーぁ
359nobodyさん:02/08/24 15:47 ID:???
2つ前までのリンク元って取得できないものでせうか?
360nobodyさん:02/08/24 16:58 ID:???
>>359
マルチは鬱陶しいね。
361nobodyさん:02/08/24 17:37 ID:???
「CGIに依存しない・・・」が読めなくなったな...。
悲惨な終わり方だな。
362nobodyさん:02/08/24 19:42 ID:???
if ($str =~ /xxx/) {
print "含んでいる\n";
}

の/xxx/の部分て文字列じゃなく、変数にしてもできるんですか?

if ($str =~ /$str2/) {
print "含んでいる\n";
}

みたいに
363 ◆..DRYi.. :02/08/24 19:45 ID:???
>>362
結論からいうとできるけど、試せよ
364nobodyさん:02/08/24 19:53 ID:???
というか、 if($xx =~ /xxx/) で含むなら、と覚えてたら正規表現なんてわからないよな
365nobodyさん:02/08/24 20:10 ID:???
>>344
コードの先に、unlink("***") でファイルを消しているんじゃ無いのか??
366nobodyさん:02/08/24 20:27 ID:???
糞コテ死ね
367nobodyさん:02/08/24 22:19 ID:???
@listに123,456,789が代入されているとき
@listから456を取り除いて、

print "@list";
で123,789にするにはどうすれば良いのでしょうか。
368nobodyさん:02/08/24 22:27 ID:???
>>367
@po=(123,345,234);
@po=($po[0],$po[2]);
print @po;
369 ◆JAPH9PWA :02/08/24 22:38 ID:???
>>367
配列のindex Nの要素を取り除きたいのか、
値Xを持つ要素を取り除きたいのかで全然違うよ

# 前者
my $N = 1;
splice @list, $N, 1;

# 後者
$X = 456;
@list = grep { $X != $_ } @list;
370367:02/08/24 22:52 ID:???
すみません。初心者なんで良く分からないんですが、
変数に入っている文字列から指定した文字列を消去したいんです。
正直、@でも$でも構いません。
371nobodyさん:02/08/24 23:02 ID:zQgcBRyf
文字をバイナリでファイルに書き出したいのですが
方法を教えて頂けないでしょうか?
例えば

$val="65";

の場合 $val をファイル、もしくは標準出力に書き出すと
文字の 65(バイナリでは 0x36 と 0x35) がファイルに書かれますが
バイナリで 65(0x41) を書き出したいのです。
pack,unpack も試しましたが文字のままでした。(;´Д`)

先ほど始めて使ったので調べていない点が
あるかもしれませんが宜しくお願いいたします。
372ん?:02/08/24 23:02 ID:???
$hoge = '123456789';
$hoge =~ s/456//;

本買えよー
373367:02/08/24 23:04 ID:???
>>372
激しくありがとうございました...
374こんなのしか思いつかん:02/08/24 23:05 ID:???
$hoge = '65';
$hoge =~ s/(.)/sprintf("\\x%02X",ord $1)/eg;

unpackは使いづらいから嫌い
375nobodyさん:02/08/24 23:28 ID:zQgcBRyf
>>374
即レスありがとうございます。早速試してみましたところ

\x36\x35

と表示されました。
実はこの出力が欲しかったのではなく
バイナリエディタで見た場合に 0x41 と表示される
出力が欲しかったのです。

入力ファイル内容 が ABC の場合に
出力ファイル内容が 16 進バイナリで 41 42 43 であって欲しいのです。
エディタで開くと謎の文字が表示されるアレです。

私の説明が悪く申し訳ありません。

何に使うかと言いますと
ジャンクハードの FlashROM 内容をダンプした物を
文字列整形後バイナリデータに変換し逆アセンブルしたいのです。

他に方法がありましたら宜しくお願い致します。
376nobodyさん:02/08/24 23:57 ID:Us3nZQzg
文字列の中から指定した文字の個数を調べるにはどうすればいいのでしょうか?
377nobodyさん:02/08/25 00:12 ID:EOslaqTi
>>376
$count++ while($hoge =~ /$page/g);
378nobodyさん:02/08/25 00:15 ID:???
>>375
chr
379nobodyさん:02/08/25 00:20 ID:???
>>371
print chr(65);
380nobodyさん:02/08/25 00:24 ID:???
>>378

(・∀・)ソレダ!!
どうも一般的な関数みたいですね。
大変助かりました。
ありがとうございます。
381nobodyさん:02/08/25 00:26 ID:???
>>379
書込みタイミングがずれてしまいました。
どうもありがとうございます。
これから実装してみます。
382 ◆JAPH9PWA :02/08/25 09:13 ID:???
いや、普通はpack/unpackを使うと思うんだけど
print pack "C*", 65, 66, 67;
383nobodyさん:02/08/25 10:13 ID:???
おぼえとけよ。お前らのIPは全部保存してあるからな。
いまさら泣いて許しを請うても遅いからな(w
384nobodyさん:02/08/25 10:16 ID:???
CGIに依存しない〜は残念だったな(ppp
糞固定どもと成れあっとけや糞虫。
385nobodyさん:02/08/25 11:28 ID:???
何か言えよ!
386299:02/08/25 16:49 ID:???
>>322
返信遅くなってすみません
今から試行錯誤してみます。
アリガトゴザマスタ
387nobodyさん:02/08/26 11:06 ID:kuaIpm20
アクセス制限のやり方教えてください。
388nobodyさん:02/08/26 11:27 ID:???
>>387
if($ENV{REMOTE_USER}){if($ENV{REMOTE_USER} eq $dqn_user){print "Location: $url"}}
elsif($ENV{REMOTE_HOST} eq $dqn_host){print "Location: $url"}
でいいの?
389nobodyさん:02/08/26 11:32 ID:???
proxyかけてるやつの制限ってどうやるの?
教えてー
>>389
] あなたは Proxy を利用していますか?
]
]   はい、利用しています (→Yahoo! へのリンク)
]   いいえ、利用していません (→トップページへのリンク)

こんな感じのページを置いておく。
391nobodyさん:02/08/26 12:40 ID:???
>>388
ダメだ
392nobodyさん:02/08/26 13:09 ID:???
>>388
?
393nobodyさん:02/08/26 13:36 ID:???
394nobodyさん:02/08/26 13:58 ID:???
>>387
同時アクセス数とか、転送バイトとかか?>>389か?
395391:02/08/26 14:21 ID:???
>>393
オレじゃねーよ、ボケ!
396nobodyさん:02/08/26 15:38 ID:IyYWB8TD
kent-webのアップロード式掲示板のやつで
着メロをうpできるようにするにはどうすればいいんですか?
397nobodyさん:02/08/26 17:40 ID:AuEFFmIZ
perlの勉強始めたばかりの超初心者です。

色々な人のソースを参考に本を片手にCGIスクリプトを書いているのだけど、
http://www.kent-web.com/utility/index.htmlのPerl Checkerで
自分の書いたスクリプトをチェックすると、

Missing right bracket at regist.cgi line 270, at end of line
syntax error at regist.cgi line 270, at EOF
regist.cgi had compilation errors.

って、エラーがでます。

実際の270行目って、スクリプトの終わりで何も書いてないし、
直前の269行目にはexit;

どこが悪いのかわからないんですけど、わかる人いますか?

おねがいいします。
398nobodyさん:02/08/26 17:50 ID:???
>Missing right bracket
右ブラケットが欠けている。
399nobodyさん:02/08/26 18:01 ID:???
たいがい、エラー行の前に原因がある。
400299:02/08/26 20:06 ID:???
>>299ですが
open(LOG,$log);
while(<LOG>){print $table;}
close(LOG);

open(LOG,$log);
($date,$no,$sub,$text) = split(/\,/,$_);
$table = join('',@table);
$table =~ s/<text>/$text/g; #$sub等も置き換え
print $table;
close(LOG);
でした

もうだめぽ・・・
401nobodyさん:02/08/26 21:08 ID:???
負荷状況を調べたくて
use Benchmark;
を試したいのですが、

Benchmark.pmを同じフォルダーに置いて、コマンドから実行させてみたりしましたが
ダメでした。ご教授して頂けないでしょうか?
402299:02/08/26 22:43 ID:4fIS3YbU
@header;
@footer;
の中にNEXTがあるので、
print $table; をpush (@txt,$table);
にして

{ここで置き換え処理}
@header;
@txt;
@footer;
にしたのですが、@txtが大きくなると負荷が掛からないかと心配です

ログのサイズは大きくても200kくらいです
403nobodyさん:02/08/26 22:55 ID:???
>>401
頼むから、一度くらい検索かけてくれ。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlfaq3.html

>299
質問内容が解りません。ここは日記ではありません。
自分で試せることは試して下さい。
404nobodyさん:02/08/26 23:09 ID:???
ファイルのデータを配列にいれるのはどちらの方がいいでしょうか?
他にいい方法はありますか?
1、
@DATA = <DATA>;

2、
while(<DATA>){
push(@DATA, $_);
}
405nobodyさん:02/08/26 23:13 ID:???
>>404
1 短くて簡潔な方がイイ。
2 だと @DATA が空である必要があるし、よけいな while を呼び出さなければならないから。
406757:02/08/26 23:21 ID:???
>>404
データを加工しない限り1以外の方法は使わなくていいんじゃないか。
407nobodyさん:02/08/26 23:22 ID:???
757は余計だったな(藁
408nobodyさん:02/08/26 23:29 ID:???
ファイルサイズが大きいと1はまずいんでないかい?
409nobodyさん:02/08/26 23:31 ID:???
>>408
ファイルサイズがでかけりゃ、1も2もまずいだろうよ・・・
410404:02/08/26 23:34 ID:???
ありがとうございます。1のほうを使う事にします
411nobodyさん:02/08/27 00:56 ID:???
ま、1か2のどちらかしか考えないのじゃなくって
本当にファイルの中身を配列に入れる必要があるのかと
412nobodyさん:02/08/27 02:38 ID:???
windows上でjperl使ってて、
Runtime Exceptionって出てperl自体がこけるんだけど、
対処方法がわからない。なんとなく正規表現に負担をかける
処理を多用するとまずい感じ(64k制約の話を聞いたことがあるけど、
漏れの場合、扱ってる個々の文字列の長さはせいぜい2k程度)

だれか教えてちょ。
こける場所は不定。デバッガかませると動作完了したりする
ときもある。
413nobodyさん:02/08/27 06:55 ID:???
>>299
そのソースどっかで見たことあるなー
引用してるなら、元サイトのスクリプト見てみたら?

299=404?
414nobodyさん:02/08/27 12:08 ID:???
>>412
日本語のページからwindows runtime Exceptionを検索しました。
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=windows+runtime+Exception&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

Perl じゃなくて Windows じゃないかしら。マ板かWin板へ。
415nobodyさん:02/08/27 13:09 ID:???
ここの掲示板みたいに、プロクシ規制の方法を教えてください。
416nobodyさん:02/08/27 13:56 ID:???
Perlの「コーディング」で困ってる人のスレです。
417nobodyさん:02/08/27 15:55 ID:???
PNGカウンタを作ってるのですが

<img src="pngcount.cgi?4">
<img src="pngcount.cgi?3">
<img src="pngcount.cgi?2">
<img src="pngcount.cgi?1">

とやると4回も起動することになるので1回にまとめたいのですが

@listにそれぞれの画像のパスが格納されている場合

例:@list = ("./image/0.png","./image/1.png","./image/0.png");

上の場合だと010と表示させたいのですが

foreach $number(@list)

{
open(IMG,"$number") || exit; print "content-type: image/x-png\n\n";
binmode(IMG); binmode(STDOUT); print <IMG>; close(IMG); exit;
}

上のようにやっても1つしか画像が表示されません。
いくつも画像を表示できないのでしょうか?
418nobodyさん:02/08/27 15:59 ID:???
419nobodyさん:02/08/27 17:12 ID:dvEqdJRZ
i-mode絵文字対応フォームメールを設置したいのですが、
文字化け対策がうまく行きません。
(文字化けする絵文字としない絵文字がある。)
処理をうまくしてる人はどうやってやってます?
420nobodyさん:02/08/27 17:29 ID:???
>>419
&#xxx;という形式で送信されるから適切に処理する
421nobodyさん:02/08/27 17:30 ID:???
>>417
ヘッダーに空白行(\n\nってとこね)を出力した後には、もうContent-typeとかやってもダメです。
つまり出力できる画像は1つだけです。
422419:02/08/27 18:00 ID:???
>>420
どうもありがとうございます。文字化けするものと、しないものを一部抜粋しました。
***************************************
NO1   F89F 晴れ    文字化け
NO2   F8A0 曇り    文字化け
NO3   F8A1 雨     大丈夫
NO94  F8FC 車椅子   大丈夫
NO95  F940 新月    文字化け
NO135 F9B0 決定    大丈夫
NO136 F991 黒ハート  文字化け
***************************************
if (!open(OUT,"| $SENDMAIL -t")) { &error('送信できません'); }
print OUT "To: $MAIL_TO\n";
print OUT "From: $WEBMAS\n";
&jis("Subject: $SUBJECT"); print OUT "$msg\n";
print OUT "Content-Transfer-Encoding: 7bit\n";
print OUT 'Content-Type: text/plain; charset=iso-2022-jp' . "\n\n";
&jis("$NAME_FROMさんの質問が届きました。"); print OUT "$msg\n";
#絵文字対応
$sjis = '[\x80-\x9F\xE0-\xF7\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
$emoji = '[\xF8\xF9][\x40-\x7E\x80-\xFC]';
$QUERY{'COM'} =~ s/\G((?:$sjis)*)($emoji)/$1.'&#'.unpack('n',$2).';'/ego;
&jis("--$QUERY{'COM'}"); print OUT "$msg\n";
&jis("▽答えはココから"); print OUT "$msg\n";
&jis("$CGI?M=H&T=$ID_FROM&F=$ID_TO&P=$PASS_TO"); print OUT "$msg\n";
close(OUT);
こんな感じにしたんですけども駄目なんです。
423nobodyさん:02/08/27 23:36 ID:???
424nobodyさん:02/08/28 02:34 ID:TSMc6GTX
任意の文字列が含まれる1行を抽出し、該当文字列のみを
新しい文字列に置換えるスクリプトを作成したいのですが、わかりません。

下記のメールアドレスで行を取得して、元データ(@old)を
新しいデータ(@new)に置換る(行の置換え)スクリプトを、
上記の様に修正したいのですが・・・。

教えてください。お願い致します。

open(IN,"data/data.csv") or die;
while($line=<IN>){
chomp($line);
if($line =~ $mail){
push(@old,$line);
@tmp1 = "@new";
open(OUT,"+<data/data.csv");
print OUT "@new";
close(OUT);
}
}
close(IN);
425nobodyさん:02/08/28 03:56 ID:???
>>424
とりあえず元ソースは全放棄したほうがいいと思った

#置き換え対象文字列
$mail="[email protected]";
#置き換え文字列
$replace="[email protected]";

open(IN,"data/data.csv") or die;
@old=<IN>;
close(IN);

foreach (@old){
s/$mail/$replace/g;
}

open(OUT,">data/data_after.csv") or die;
print OUT @old;
close(OUT);

みたいなのでダメなんすか?って全部書いちゃったよおい。
426425:02/08/28 04:06 ID:???
どでかい配列作るのが嫌なら(csvファイルが何千行とかなら)
一時ファイル作ったほうがいいね。

open(IN,"data/data.csv") or die;
#一時ファイルを開く
open(OUT,">temp.csv") or die;

while($line=<IN>){
$line=~s/$mail/$replace/g;
print OUT $line;
}

close(OUT);
close(IN);

#一時ファイルを消して、ファイルを置き換える
rename('temp.csv','data/data.csv') or die;

はいオナニー終わり!
427nobodyさん:02/08/28 10:57 ID:3EY8gxC5
特定の曜日、日時にコンテンツのhtmlを自動生成したいのですが
来訪者の度にCGIを実行して、時刻をチェックする方法以外ないでしょうか?
この方法だと、来訪者が増えるたびに処理が重くなってしまいます。
428nobodyさん:02/08/28 12:46 ID:???
>>427
crontabが使えなければ、それしかないかな。
429nobodyさん:02/08/28 14:24 ID:???
>>425
一応、エスケープね。
430nobodyさん:02/08/28 15:34 ID:z8uBgDDw
正規表現で、配列を変数展開させたいのですがうまくいきません。
m/^hoge$array[0]hoge/;
↑このように書いても、$array[0]はうまく展開されないんです。
どなたかいい知恵貸してください。
おながいします。
431nobodyさん:02/08/28 16:42 ID:???
>>430
正規表現中のブラケット [] は文字クラスを表します。
foreach などで他の変数に代入してから処理する等の回避方法が考えられます。
432430:02/08/28 16:48 ID:???
>>431
むう、やはり正規表現中で[]を使わないように回避するしかないのですね。
了解しますた!
ありがd
433431:02/08/28 17:11 ID:???
>>430
ごめん。
5.003 Build 316
で試したら、それ、多分期待通りに動いた。他の原因があるかも。

@aaa = ("どおして",);
$bbb = "どおしてそんなことすんのー。やめてーなー。ほんとにもー。";
if($bbb =~ /^$aaa[0]/){print "is true$aaa[0]\r\n"}
else{print "is false$aaa[0]\r\n"}
434430:02/08/28 18:25 ID:???
>>433
すまそ、おっしゃる通りうごきますた。
正規表現を解釈するよりも前に変数展開してるんでしょうね、きっと。
>>430で「うまく展開されない」と書きましたが、別の原因でした……
…………………吊ってくるっす ゴメ
435nobodyさん:02/08/28 18:44 ID:???
配列操作に関する質問です

readdirで得たファイルリスト「@datafiles」から
カレントディレクトリやデータファイル以外のファイル名が収まっている要素をspliceしたいのですが
なにかうまい方法は無いでしょうか?

データファイルかどうかは命名規則「/^\d+(dat)$/」で判断したいと思っています
436435:02/08/28 19:06 ID:???
ちなみにファイルリストを「@filelist」にとっておいて

@datafiles = grep(/^\d+(dat)$/, @filelist);

としてもダメでした
grepの使い方間違ってます?
437nobodyさん:02/08/28 19:37 ID:???
/^\d+.dat$/
だったりはしない?
438結構前スレ888さん:02/08/28 19:38 ID:99E4DmXW
特定のURL以外から飛んできた人を弾きたのだけど

前教えてもらったのは"特定のURLから飛んできた人を弾く"
if ($ENV{'HTTP_REFERER'} =~ /aaa/) {
print "Location: abab\n\n";
exit;
}
(aaaから来た人をababに飛ばす)
"特定のURL以外から飛んできた人を弾く"を....
439結構前スレ888さん:02/08/28 19:39 ID:99E4DmXW
>弾きたのだけど
弾きたいのだけど
440437:02/08/28 19:46 ID:???
あー。見えにくいかもしれんけど、 dat が拡張子ならピリオド . が必要ってことで。
あと、ファイルテスト演算子 file test operator ってのもあるから。
それで良ければ調べてみるヨロシ
441nobodyさん:02/08/28 19:48 ID:???
>>438-439
何?
442結構前スレ888さん:02/08/28 19:56 ID:99E4DmXW
>>441
つまり外部リンクできた人を弾きたいと(.cgiに)
443nobodyさん:02/08/28 20:25 ID:???
>442
else か not か !
444結構前スレ888さん:02/08/28 20:44 ID:99E4DmXW
notかな
445nobodyさん:02/08/28 20:52 ID:???
unless
446435:02/08/28 21:03 ID:???
>437
そうでした・・・穴掘って埋まってきます・・・
447nobodyさん:02/08/28 21:22 ID:???
>>414
PerlがRuntime exceptionでこける事例は、例えば
NamazuのBBS

WinNTでNamazuが落ちる事例
http://search.namazu.org/ml/namazu-users-ja/msg00011.html
当たりでやりとりがあります。

ただ、あまりはっきりした解決方法はでてきませんでした。
このやりとりの中で触れられている正規表現の処理に関する問題が
>>412で書いたマッチ64K制限は、確かActivePerlのサイトあたりに
あったことです。

Perlのversionを上げるもしくはUnix系OSの上で処理をするか
いずれかができればいいのですが(普段はそうしてます)、
この件に関してはちょっとそのへんの変更が難しいもんで。

ちなみにperl Runtime exceptionでぐぐるとかなりたくさん
Active Perlのこの問題はでてきます。
448414:02/08/28 21:38 ID:???
>>447
いや、板違いってゆうのは撤回しますが、結局 ゲイツ が悪いんでしょ?
えーと、現在のところ、どうも原因不明の様ですし、初心者向けの話題でもないようですから。
Active Perl + Win の新スレ立ててみたらどうでしょうか。
449437じゃないけど:02/08/28 22:28 ID:???
>>446

ピリオドをエスケープしないと意図しないファイルも引っ掛かります。

/^\d \.dat$/
450437じゃないけど:02/08/28 22:29 ID:???
↑プラスがスペースに変換されてます。
451nobodyさん:02/08/29 02:33 ID:r6Il9+nb
MySQLでフランス語のデータを管理してるんですが、SELECT文
でのアクセント付き記号の扱いに困っています。

例えば、&egarve;を入力して、&egarve;だけにマッチさせたいんで
すが、&egarve;とeが引っかかってきます。

ご存知のお助けください。
452451:02/08/29 02:36 ID:r6Il9+nb
すんません。訂正します。

>例えば、&egarve;を入力して、&egarve;だけにマッチさせたいんで
>すが、&egarve;とeが引っかかってきます。



例えば、èを入力して、èだけにマッチさせたいんで
すが、èとeが引っかかってきます。

です。
453:02/08/29 05:06 ID:???
みようみまねでスキンを使った掲示板をいじってるんですが、
スキンから読み込んだのを変換するとき、
$skin =~ s/title<!--s-->/$title/i;
$skin =~ s/***/***/g;
$skin =~ s/***/***/i;
$skin =~ s/***/***/i;



って感じなんですが、

$skin =~ s/title<!--s-->/$title/i;
と打ったところ、一つだけしか「s/title<!--s-->」が
変換されなかったんですね。

で、なんとなく、
$skin =~ s/title<!--s-->/$title/g;
にしてみたら、いけたんでけど・・・

この後ろについてる「i」とか「g」の意味はなんですか?
他にも「s」とかもあったんですが・・・

検索しても見つからないのでお願いします。
454nobodyさん:02/08/29 05:12 ID:???
>>452
latinのC0..FFでマッチはらめ?

>>453
>>1
455nobodyさん:02/08/29 07:09 ID:???
456482:02/08/29 07:41 ID:8thG1OyK
http://ascii.room.ne.jp/~puchico/gokuaku.html
( ´,_ゝ`)誰かここのパスワード解いて教えろ
オエの知識じゃわ が ん ね !!
457nobodyさん:02/08/29 10:53 ID:???
匸0 ゚д゚)マルチ氏ね
http://pc.2ch.net/test/read.cgi/hack/997452913/101
458:02/08/29 14:55 ID:???
>>455
有難うございます。
つまり、
iは「大文字小文字を区別しない」で、
gは、「全体から探す」ってことで、
oは、「変数を1度しか展開しない」ってことなんですね

で、もう一つ疑問が・・・
=~ /***/ や
=~ m/***/ は解ったんですが、
=~ s/***/ の説明がないんですよ・・・

「m」が「/」以外のディリミタを使えるようにするためのものですよね?
同じ意味なのでしょうか?
違ったら、この「m」とか「s」入る場所?の名称なんかを教えて頂けないでしょうか?
検索すら出来ない状況なので・・・ホントすいません。
459nobodyさん:02/08/29 15:00 ID:???
CGI、とくにFormまわりの質問なのでスレ違いかもしれませんが

@dataにテキストファイル(S-JIS)から文字列を読み込んで
「print "<TEXTAREA name=\"text\" cols=\"80\" rows=\"16\">@data</TEXTAREA>";」
としたときに、なぜか@dataの2行目以降行頭に半角スペースが入ってしまいます

おかしいな、と思って「print @data;」してみても
行頭に半角スペースが入っている事はありませんでした

改行コードの問題かと思いforeachで「$_ =~ s/\r\n/\n/g;」としても状況に変化がありません


IE,NN共に同じ症状を確認しているのですが
これはHTML、あるいはブラウザの問題なのか、Perl側の問題なのか
どうやって回避したらいいんでしょうか?
460292:02/08/29 15:01 ID:???
$XXX =~ s/Z/A/;
$XXXに入ってる「Z」を「A」に書きかえる。(最初に見つかったやつだけ)

$XXX =~ s/Z/A/g;
$XXXに入ってる「Z」を「A」に書きかえる。(すべて)

$XXX =~ s/Z/A/i;
$XXXに入ってる「Z,z」を「A」に書きかえる。(大文字小文字を区別しない)
461_:02/08/29 15:02 ID:???
>>459
変数展開を調べること
462292:02/08/29 15:03 ID:???
>>459
HTMLソースを見ても半角スペース入ってるのか?
463459:02/08/29 15:06 ID:???
>461
テキストデータには展開される可能性がある文字列はありませんでした
・・・そういう意味じゃないのかな

>462
はい、TEXTAREAで挟むと半角スペースが現れますが
「print @data;」だとソースでも半角スペースは現れません
464:02/08/29 15:08 ID:???
なるほど!
sが、置き換えるって意味ですか!
ホントおばかでした。
スレ汚しすいませんでした。
皆さん有難うございました!
465_:02/08/29 15:08 ID:???
>>463
"@array" と @array の違い(変数展開)を調べること
466459:02/08/29 15:17 ID:???
>465
うーん、直接その答えにはたどり着けませんでしたが
「print "<TEXTAREA name=\"text\" cols=\"80\" rows=\"16\">" . @data . "</TEXTAREA>";」
とすることで解決しました

ありがとう
467292:02/08/29 15:27 ID:???
>>
468nobodyさん:02/08/29 15:27 ID:???
>>466
( ´,_ゝ`) プッ
469nobodyさん:02/08/29 15:28 ID:jYAiqFv3
ユーザーのプロバイダのアドレス?調べるのってどれでしょう?
*******.ap.plala.or.jp
こんなやつ
$ENV{'REMOTE_ADDR'};
だとIPアドレスが表示されるようなのですが
470292:02/08/29 15:29 ID:???
変なとこで送信してもた。スマソ。

>>466
$" という変数を見てみな。デフォルトでは半角スペース入ってるから。
この変数はprint "@xx";の時に区切りとして使うものを入れてるモノ。
先だって
$" = '';
としておけば半角スペースは無くなる。
471nobodyさん:02/08/29 15:30 ID:???
>>469
アドレスが知りたいのなら、IPアドレスがいいじゃないかアケチくん。
472292:02/08/29 15:32 ID:???
$ENV{'REMOTE_HOST'}
ただし、最近のプロバイダではここにリモホが入ってる設定にしてるところは少ない(無駄だから)
その場合は次のコードで行けるだろう。

$ENV{'REMOTE_HOST'} = &nslook($ENV{'REMOTE_ADDR'});

sub nslook{
local($x)=@_;
local($ip,$addr);
if($x=~/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/){
$ip="$1.$2.$3.$4";
$addr=(gethostbyaddr(pack('C4',$1,$2,$3,$4),2))[0];
if($addr ne ""){
return $addr;
}
}
return $x;
}
473469:02/08/29 15:33 ID:oKWRspRK
>>471
そうなのかしら。
でもぱっと見わかりやすいのもいいわ。
っていうかじゃぁ両方で。
474469:02/08/29 15:35 ID:oKWRspRK
およよ。
そう、REMOTE_HOSTでやってみたら
何も取得できなかったんですよ。
上のはアドレスから変換してるのでしょうか?
475292:02/08/29 15:39 ID:???
>>474
nslookというサブルーチンに、IPアドレス$ENV{'REMOTE_ADDR'}を教えて
リモートホストを教えてもらって、空っぽだった$ENV{'REMOTE_HOST'}に代入するコードじゃよ。
476nobodyさん:02/08/29 15:49 ID:???
>474
何を取得できてるの?

foreach(sort(keys(%ENV))){$chk .= "$_ is $ENV{$_}<br>\n"}
477nobodyさん:02/08/29 15:53 ID:???
>>476
罠です!
478476:02/08/29 15:57 ID:???
別に他意はないんだけどさ。これでいい?

foreach(keys(%ENV)){$chk .= "$_<br>\n"}
479469:02/08/29 16:03 ID:KExh1vW6
>>472
やってみましたが、それでもIPアドレスになっちゃう。
CGIサーバーはPlalaです
自分のPC上でやるとパソコンの名前が表示されます。
(ActivePerl+httpd)
480nobodyさん:02/08/29 16:08 ID:???
Plalaはどうだかしらないが、IPアドレスから名前に変換をサポートしていない鯖がある。
あきらめるか、別の鯖で試す。
481nobodyさん:02/08/29 16:32 ID:SCkpIe5L
Perlで http通信を行い特定のHPからhtmlを取得後
パースして、htmlから特定のデータを取得したいのですが

必要なモジュールとか、ソースとか解説のHPがあれば教えてください。
482nobodyさん:02/08/29 16:33 ID:???
>>481
過去レス読まない典型ですね。
483469:02/08/29 16:50 ID:1fSV4HtQ
$host = gethostbyaddr(pack("C4", split(/\./, $host)), 2) || $host;
こんなのでいけました。
484nobodyさん:02/08/29 17:01 ID:SCkpIe5L
>482
何番目のスレの何番になります?
それ読みますから教えてください。
485nobodyさん:02/08/29 17:05 ID:???
>>484
http通信だからCGIスレ読め
486初心者の依頼者(´∀`; ◆3zTzMwh2 :02/08/29 17:16 ID:w2vhS8x7
えっと、
↑に答えが出てることはわかっているんですが、理解できません。

fusianasanで表示されるやつはどうやって取得するんですか?
487nobodyさん:02/08/29 17:18 ID:???
>>486
??? 日本語 不自由ですか?
488初心者の依頼者(´∀`; ◆3zTzMwh2 :02/08/29 17:20 ID:w2vhS8x7
>487
別に
489292:02/08/29 17:27 ID:???
490nobodyさん:02/08/29 17:30 ID:SCkpIe5L
>489
ありがとうございます。
491nobodyさん:02/08/29 18:02 ID:???
>>482
2chの使い方になると思うんだが、この板から全文検索したいんだが、どうすればいいの?
「全部表示してブラウザで検索」しかないのか? それとも googleに拾ってもらわなければいけないのかな?
492nobodyさん:02/08/29 18:03 ID:???
http://2ch.dyn.to/

google de "string site:www.2ch.net"
493nobodyさん:02/08/29 18:19 ID:???
>>492
サンクス!!
494424:02/08/29 19:47 ID:k9SFERS8
>>425
有難うございました。
私の勘いで、作成したいスクリプトの記述が間違っていました。
すみませんでした。
(勉強の為、書いて頂いたソースは保存しました)

以下、教えて頂きたい内容です。
任意の文字列が含まれる1行を抽出し、複数の該当文字列を
新しい文字列に置換えるスクリプトを作成したいのですが、わかりません。
(置換え対象の文字列には、手入力の文字列も含まれます)

495の様に、メールアドレスで行を取得し、
@oldに格納されている全ての文字列を個々の変数に代入して、
ファイルに出力させるスクリプトを作成しましたが、うまく動作しません。

確認出来たエラーは2点です。
1.ファイルの一行目しか$lineに入りません。
 その為、該当レコードがあるにも拘らず、「データがありません」と
なってしまいます。

2.レコードの改行が削除され、次のデータが同じ行に出力されてしまいます。
($old1,$old2,$old3,$old4,$old5) = split(/,/,$old);
@oldから抽出する上記以外の方法がわからず、困っています。

ソースは495です。お願い致します。
(改行が多く書き込めなかった為、分けました。)
495424:02/08/29 19:47 ID:k9SFERS8
494の続きです。
置き換えたい変数です→($new1,$new2,$new3,$new4,$new5)
open(IN,"data/data.csv") or die;
while($line = <IN>){
chomp($line);
if($line =~ $mail){
push(@old,$line);
} else {
print "該当するデータがありません。\n";
exit(0);
}
foreach $old (@old){
($old1,$old2,$old3,$old4,$old5) = split(/,/,$old);
}
open(OUT,"+<data/data.csv") or die;
print OUT "$old1,$new2,$new3,$old4,$new5";
close(OUT);
print "書き換えが完了しました。\n";
exit(0);
}
close(IN);
exit(0);
496 ◆hIr6YukI :02/08/29 19:49 ID:???
sage
497nobodyさん:02/08/29 20:22 ID:???
>>494-495
何をやりたいのだか解らないんだけど。
>>425 をこうするって事かしら。

foreach(@old){
if(s/$mail/$replace/g){push(@new,$_)}
}
print OUT "@new";

使用している各関数がどういう働きをするものかよく調べた方が良いと思います。
ラクダ本を買うとか。
498nobodyさん:02/08/29 21:09 ID:mQvrBYqz
すいません、根本的なところで質問です。
何も手を加えてないのに、昨日まで動いてたcgiが動かなくなったんですが、
これは何が原因でどうすれば直るんでしょう。

kentのyybbsを色々いじってたんですけど、文法エラー解消しても動かないので
まずは無改造のスクリプトをただ上げたんです。
そしたら動かない。
しかも、それまで使ってたスクリプト(2つあるうち1つだけ)が突然internal server error。
頭抱えてます。
どなたか助けてください。
499nobodyさん:02/08/29 21:12 ID:0ltwZgpC
■10.000円の高額収入
 1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
 インターネットができる環境の方なら誰でも参加可能です。
 インターネットを利用したビジネスですので、自宅や会社で好きなときにで
 きるビジネスです。
■専門的な知識は一切不要!
 ビジネスに必要なツールは全て当社で用意いたします。
 また、サポートも万全です。
■詳細は今すぐこちらから
 http://www.future-web.tv/haru/
500nobodyさん:02/08/29 21:35 ID:???
>>498
改造してないBBSなんでしょ?
kentのサポート板で聞けよ
501nobodyさん:02/08/29 21:57 ID:???
>>498
Internal Server Error ならhttpdサーバのログに
エラーが出てるはず。それを確認しる。
502nobodyさん:02/08/29 21:58 ID:???
>>500

無改造というのはコイツが手を加えてないということだろ
503498:02/08/29 22:31 ID:mQvrBYqz
やっぱりkentさん所で聞くのが早いですかね。
逝ってきます。
504424:02/08/29 23:02 ID:zsUv5K1P
>>497
レス有難うございました。
書き方が悪くてすみませんでした。

>>425 様にも>>426で教えて頂いたのですが・・・。

置換え前の文字は$mail以外、変数では無いので
マッチさせる事が出来ない状態でした。
ファイルから文字を取得し、変数に格納したいと思っていました。
入力フォームを作り直します。
505505:02/08/29 23:31 ID:kiu2pPYa
sub make_html{
open(HTML, ">hoge.html") || &error("HTMl化に失敗しました。");
print HTML &end;
close(HTML); }
開いたファイル(hoge.html)に書き込みたくて上のように記述したのですが、
ファイルを開いて直接サブルーチン(&end)を使うのは無理なのでしょうか。
506_:02/08/30 00:12 ID:???
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < >>505んな こたァない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
507nobodyさん:02/08/30 10:39 ID:???
>>506
end がどうなってるか一応聞いてやれよ。
508505:02/08/30 13:07 ID:tuhObyZ6
sub end{
&header;
open(IN,"$file") || &error("$file を読み込めません");
@lines = <IN>;
   close(IN);

foreach $line (@lines) {
local($name,$url,$mail,$body,$hogehoge) = split(/<>/,$line);
&output;
}
&footer;
exit; }
こんな感じです。
509_:02/08/30 13:12 ID:???
>>508
exit; はいらんよ、だって書きこんだ後 close している意味ないじゃん。
510 :02/08/30 13:29 ID:UPHK1/CW
フォントサイズの変更や入室後の名前変更ができないチャットで、
フォントサイズを大きくしたり、名前を変更している人がいました。

どうやったらできるのでしょうか?
511nobodyさん:02/08/30 13:40 ID:???
>>510
ソース見ないとわかりません。
512nobodyさん:02/08/30 13:43 ID:???
>>508
戻り値を print 死体なら
return @lines;
だろうけど…。どう説明して良いやら。

>>510
そのチャットの管理人に聞いて下さい。
513  :02/08/30 13:45 ID:UPHK1/CW
>>511
ソースを書き換えるのですか?
どうやれば書き換えられますか?
514511:02/08/30 14:23 ID:???
>>513
ソースを見てスクリプトの脆弱な部分を探すんだよ。
515_:02/08/31 12:58 ID:???
($_="\xa8\xdc\xa6\xe7\xc9\xbe\xc8\x49")=~s/./\x82$&/g;
substr($_,  8, 1)= "\x89";
substr($_, 14, 1)= "\x81";
print;
516>_:02/08/31 13:40 ID:???
%b5%cf%b4%d3%c5%b0
517517:02/09/01 03:40 ID:+nm+B08x
二つのリファレンス(一方から一方を辿ることができる)の位置関係を
知りたい場合はどうしたらよいでしょうか?
例えば
$a = { 'b' => [ $c = { 'd' => 'e' } ] };
とあった場合に、
&rel($a,$c) = '{b}[0]' みたいな出力を得たいのですが…
518nobodyさん:02/09/01 10:46 ID:???
>>517
とりあえずヒントだけ。

・関数 ref
・$a = {}; print $a;
519nobodyさん:02/09/01 10:55 ID:???
以前もあったな。その質問
520_:02/09/01 11:03 ID:???
そう、以前にもあったけどまだやってたのか・・・
一応、やってみたけどこんな感じでいいのかな?

sub rel{
 my( $key, $i, $rel );
 GOOD_BYE:
 for $key ( keys %{$_[0]} ){
  for ($i=0; $i<=$#{${$_[0]}{$key}}; $i++){
   #if ( ${${$_[0]}{$key}}[$i] == $_[1] ){ print "goo\n"; }
   $rel= "{$key}[$i]",last GOOD_BYE if ${${$_[0]}{$key}}[$i] == $_[1];
  }
 }
 $rel;
}
521_:02/09/01 11:05 ID:???
ちょっと見づらいかな、もいちど

sub rel{
    my( $key, $i, $rel );
    GOOD_BYE:
    for $key ( keys %{$_[0]} ){
        for ($i=0; $i<=$#{${$_[0]}{$key}}; $i++){
            $rel= "{$key}[$i]",last GOOD_BYE if ${${$_[0]}{$key}}[$i] == $_[1];
        }
    }
    $rel;
}
522 ◆4XfSMGTg :02/09/01 13:31 ID:???
超絶ハッカー
何でも聞け
523nobodyさん:02/09/01 13:34 ID:???
>>522
ルビ厨でつか?
524 ◆4XfSMGTg :02/09/01 13:39 ID:???
聞け
525 ◆4XfSMGTg :02/09/01 13:41 ID:???
    
526 ◆4XfSMGTg :02/09/01 13:44 ID:???
Perl上級車俺がどんな質問二問k0尾たっるぞ!
527nobodyさん:02/09/01 13:54 ID:???
彼女を逝かせる超絶テクを教えてください。
528517:02/09/01 15:43 ID:+nm+B08x
>>518
やっぱりbreadth-firstサーチをしないとできないってことっすかね?
>>520,521
ありがとうございます。が、より一般的なケース(リファレンスの構造を問わない)が対象なのです…
529517:02/09/01 15:47 ID:+nm+B08x
内部構造的にはGCのためのリファレンスカウントがあるはずだとおもうので、
それをどうにかして逆に辿れないものかと思うのですが…
530nobodyさん:02/09/01 16:23 ID:oCDCWNWk
◆4XfSMGTg はバッカーですか?
531 ◆4XfSMGTg :02/09/01 16:27 ID:A6Gp7Ink
会社員で日曜日によく来ます。
532nobodyさん:02/09/01 17:54 ID:???
ここは初心者コーナーとは思えない
533_gunzip ◆H/XdoCNg :02/09/01 18:23 ID:???
>>529
いい加減だが...。

#!/usr/bin/perl

use strict;
use Data::Dumper;

my $a = { d => "e" };
my $b = { b => [$a] };
my $c = { f => { g => $b } };

print 'rel($b, $a) = ', rel($b, $a), "\n";
print 'rel($c, $a) = ', rel($c, $a), "\n";
print 'rel($c, $b) = ', rel($c, $b), "\n";

sub rel ($$)
{
    my $dumper = new Data::Dumper([@_]);
    $dumper->Indent(0);
    $dumper->Dump() =~ /\$VAR2\s+=\s+\$VAR1->(.+);$/;
    return $1;
}
-------------------------------------------
rel($b, $a) = {'b'}[0]
rel($c, $a) = {'f'}{'g'}{'b'}[0]
rel($c, $b) = {'f'}{'g'}
534517:02/09/01 23:45 ID:???
>>533
そうですよね…、クイックハックならData::Dumperを使うのが一番手っ取り早いんですが、
リファレンス構造を全てtraverseするので実行速度が…
ダイレクトに辿るとしたっら、やっぱり要素ごとにリファレンス元を
保持するようなarrayを持たせるしかないですかね。。
535nobodyさん:02/09/01 23:58 ID:???
何に使うのか分からないのだが...
デバッガでも作ってるの?
536nobodyさん:02/09/02 01:22 ID:???
WebデザインとWebプログラミングってどう違うんですか?
ネット初心者なんで本当に分かりません。誰か教えて下さい。
537nobodyさん:02/09/02 01:29 ID:???
Webデザイン
HTML、CSS,JavaScriptやブラウザーなど

Webプログラミング
PerlやCGI、PHP,Ruby等
538nobodyさん:02/09/02 01:31 ID:???
Webデザイン→デザイナーがやる
Webプログラミング→プログラマがやる
539nobodyさん:02/09/02 01:34 ID:???
>>537
ありがとうございます。と言っても、本当はよくわかりません(w
仕事の内容がどう違うか分かり易く教えて頂けるとありがたいんですが。

>>538
ありがとうございます。
540初心者:02/09/02 02:28 ID:???
Perlを使って掲示板などを作りたいんですが、
最初にエディタやコンパイラーは、何を落とせばよいのでしょうか?
先輩の皆様お薦めのものなどございますでしょうか?
使ってるPCはWinMEなのですが、ご教授お願いします。
541nobodyさん:02/09/02 02:31 ID:???
>エディタ
自分が使いやすいと想うテキストエディタを使え。

>コンパイラー
落ち着け。
ActivePerlでも落としとけ。
542nobodyさん:02/09/02 02:48 ID:???
複数のファイルを読み込んでsortさせて表示したいのですが。
sortはできたのですが
opendir(DIR, "$logdir") ;
@2ch = readdir(DIR);
closedir(DIR);
ファイル名を読み込んでいる様子で。
検索してやり方を探してみたのですが自分では分かりませんでした。
アドバイスお願いいたします。
543518:02/09/02 06:08 ID:???
>>532 >>535
禿同。(w

>>528
BFS でなく DFS ですかね。>>533 とどっちが速いかは
調べてませんが、泥臭く書くとこう。

sub rel {
  my ($foo, $bar, $idx) = @_;
  my $rv;

  if (ref $foo eq 'ARRAY') {
    for (my $i = 0; $i < @$foo; $i++) {
      $foo->[$i] eq $bar && return $idx . "[$i]";
      $rv = rel($foo->[$i], $bar, $idx . "[$i]") and return $rv;
    }
  }
  elsif (ref $foo eq 'HASH') {
    foreach my $k (keys %$foo) {
      $foo->{$k} eq $bar && return $idx . "{$k}";
      $rv = rel($foo->{$k}, $bar, $idx . "{$k}") and return $rv;
    }
  }
  return;
}

つかそこまで速度を求めるほどデカい or 深いんでしょうか?
これ以上はもう perl のソース読んでねとしか。
544nobodyさん:02/09/02 06:28 ID:???
>542
readdirのリファレンスを穴が空くほど読め
それはopendirしたディレクトリのファイルリストを得る関数だ

だいたい複数ファイルを読み込んでsortって何だ?
そのファイルにはASCIIデータが1行しか入ってない事が保証されてんのか?

要リファクタリングと思われ
545nobodyさん:02/09/02 07:05 ID:???
>>542
@2ch は無理だよ
変数名は数字で始まってはいけませn
546nobodyさん:02/09/02 10:34 ID:???
数字から始まっていたら、全部数字で無ければいけないじゃ無いっけ?
547nobodyさん:02/09/02 10:42 ID:???
>>546
そのガセのネタ元をさらすべし。
548nobodyさん:02/09/02 10:45 ID:Bmg2BPcQ
時間取得で質問があります。

月と日にちを取得したいのですが、
$tm=time;
($sec,$min,$hour,$mday,$mon)=localtime $tm;
とやらないといけないのですか?
$sec,$min,$hourが余計なんですが...
549nobodyさん:02/09/02 10:48 ID:???
550nobodyさん:02/09/02 12:02 ID:???
書き込んだメッセージの中にアドレス(http://〜)が含まれていたら
<a href="" target="_blank"></a>
で囲みたいのですが、どうやってアドレスと判定すればよいのでしょうか?
551nobodyさん:02/09/02 12:27 ID:???
>>548
仕様です
>>550
$message =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1" target="_blank">$1<\/a>/gi;
552nobodyさん:02/09/02 12:32 ID:???
>>548
(localtime(time))[0..8]
553548:02/09/02 12:32 ID:???
>>551
仕様ですか。
ありがとうございました。
554548:02/09/02 12:39 ID:???
>>552
なるほど。
$tm=time;
($mday,$mon)=(localtime $tm)[3,4];
で、できました。
ありがとうございました。
555 ◆JAPH9PWA :02/09/02 12:42 ID:???
>>548
(undef,undef,undef,$mday,$mon)=localtime;
556548:02/09/02 12:46 ID:???
>>555
試してみました。それでもできるんですね。
ありがとうございました。
557550:02/09/02 12:51 ID:???
>>551さん
できました!ありがとうございます!
558542:02/09/02 19:45 ID:???
&lock_open(TXT, "a.txt");
@txt = <TXT>;
&unlock_close(TXT);

open(OUT,"> x.txt");
print OUT "@txt";
close(OUT);

&lock_open(TXT, "a2.txt");
@txt = <TXT>;
&unlock_close(TXT);

open(OUT,">> x.txt");
print OUT "@txt";
close(OUT);

&lock_open(TXT, "x.txt");
@txt = <TXT>;
&unlock_close(TXT);
foreach $m (@txt) { chop($m); }
でできました。opendirの意味がいまいちわからなかったので544さんの「それはopendirしたディレクトリのファイルリストを得る関数だ」
の助言で納得できました。おさわがせしてすみませんでした。ありがとうございます。

559nobodyさん:02/09/02 20:49 ID:???
>>558
@txt = &lock_open("a.txt");
とか
print OUT &lock_open("a.txt");
とか
chop @txt;
とか。どーでもいーけど。
560nobodyさん:02/09/02 20:52 ID:???
>>547
そのガセのネタ元をさらすべし。
561nobodyさん:02/09/02 20:56 ID:???
562nobodyさん:02/09/02 21:11 ID:???
>>561
546 じゃなくて 547 ワカル?
563nobodyさん:02/09/02 21:53 ID:Ldjfc++c
perlでsocketを使用して、外部のサーバの情報を取得したいのですが、
その際にタイムアウトの時間を設定することは出来ませんか?
例えば、10秒以内に取得できなければ、エラーを出して終了するとか出来ませんか?

現在↓みたいにして取得しています。
よろしくお願いします。

#---------------------------
use Socket;
my $sock_addr = pack_sockaddr_in(80, inet_aton("2ch.net"));
socket(SOCKET, PF_INET, SOCK_STREAM, 0);
connect(SOCKET, $sock_addr);
select(SOCKET); $|=1; select(STDOUT);
print SOCKET "GET / HTTP/1.0\r\n";
print SOCKET "\r\n";
while (<SOCKET>){m/^\r\n$/ and last;}
while (<SOCKET>){print;}
#--------------------------
564nobodyさん:02/09/02 21:55 ID:???
fork
565 ◆Perl0MBA :02/09/02 23:13 ID:???
>>563
$time=$^T;
if(int($^T-$time)>=10){shutdown(2)}
566nobodyさん:02/09/03 00:10 ID:???
>>563
perldoc -f alarm
567nobodyさん:02/09/03 00:40 ID:???

ヽ(´∀`)ノ
  ( へ)
   ヽ
568nobodyさん:02/09/03 00:41 ID:???
perldoc -q timeout
569 ◆4XfSMGTg :02/09/03 17:40 ID:???
ここはPerl5なんか未だに使ってるヴォケのすみかですか・
570nobodyさん:02/09/03 18:24 ID:???
Perl4 なんかよく使っていますが。何か。
571nobodyさん:02/09/03 19:43 ID:bBGpZ26t
名前空間を気にせずに複数ファイルにコードを分割したいのですが、どのようにするとベターでせうか。
572nobodyさん:02/09/03 19:48 ID:???
自分にとって読みやすい様にするのがベター。
573f:02/09/03 19:51 ID:K/olstAP
-------変態・MTTどこでも-------
---●●●変態痴女を紹介致します。●●●---
例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・
フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・
アナルSEXおねだり娘・オマ〇コ弄られマン汁グチョグチョ女・
SM牝豚・緊縛・浣腸・スカトロ・等・・・刺激を求めています。
●●●学生・OL・主婦・モデル・牝豚・女王様・オカマ等・多数!●●●
 090-8002-8356番   
-----------------------------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
http://www.mttdocomo.jp/
Iモードはこちら→http://www.mttdocomo.jp/i


574nobodyさん:02/09/03 20:21 ID:OLMxXVpc
575初心者:02/09/03 23:24 ID:KI0OEEO7
すみません質問です.

perlで、他のurlに変数と値をポスト送信してアクセスする方法はありますか?
print"Location: http://〜";
はうまくいきませんでした。お願いします。

詳しい方、教えてください。
576nobodyさん:02/09/03 23:26 ID:???
>>575
変数って送れるの?
577nobodyさん:02/09/03 23:27 ID:???
>>575

print"Location: http://〜\n\n";
578初心者:02/09/03 23:34 ID:KI0OEEO7
>>576

ふつう、<a>タグの記述だと、
"〜.cgi" method="post" postdata="name=value&name2=value2"
とかになるのかな?と思うのですが(htmlではなくhdmlで作業して
いるので、そういう記述になっています)、
GETメソッドなら
print"Location: http://〜.cgi?name=value&name2=value2";
みたいなやり方で出来るのかもしれませんが、
postだとどうなのかな?と。

perl自体、初めて触ったという話にならない初心者なので、
正直まいっています。

詳しい方、またそうでない方も、参考程度の意見で構わないので、
聞かせていただけたら幸いです。
579bloom:02/09/03 23:43 ID:L4DD9EQO
580nobodyさん:02/09/04 00:08 ID:???
>>575

>577が答え出してるだろ!
581nobodyさん:02/09/04 00:09 ID:???
>>578
postはform要素で送ります。
582 ◆4XfSMGTg :02/09/04 01:22 ID:???
ここってCGI厨しかいないの?
583T女の竹田:02/09/04 01:43 ID:???
>>575
ソケットで繋いで、Content-Lengthを書いて、その後は普通に
データを送る。

POST http://www.perl.org/survey.cgi
Content-Length: 66
Content-Type: application/x-www-form-urlencoded

name=Gisle%20Aas&email=gisle%40aas.no&gender=M&born=1964&perc=3%25
って感じで。
(参照:http://member.nifty.ne.jp/hippo2000/perltips/HTTP/Request/Common.html

ただ、こうするともちろんレスポンスもらうのはスクリプトだから注意して。
そのままprintしてやればとりあえずOKだけど、ブラウザのURLが
POST送ったスクリプトのままだから、相対リンクのイメージとかが
めちゃくちゃになりそう。

ダミーのHTML用意して、フォーム書いて、OnLoadかなにかで送るのが
一番早いかなぁ。
584nobodyさん:02/09/04 02:59 ID:???
585nobodyさん:02/09/04 09:33 ID:???
掲示板でログファイルのサイズが100KB以上になったら末尾要素を削除するという処理をしたいのですがうまくいきません

# 記事の最大保存容量(単位:KB)
$maxsize = 100;

$maxsize = $maxsize * 1000;

$logsize = (stat($logpass))[7];

while($logsize > $maxsize) {pop @data; $logsize = (stat($logpass))[7];}

書き込み処理の直前に↑のようにやってみたんですがうまくいきませんでした。
変数を書き出したりしてみたんですが原因がわからず困っています。
どなたかわかりませんでしょうか?
586名無しさん@Meadow:02/09/04 10:08 ID:???
pop @data; だけじゃ、ファイルに書き込んでないから、
ファイルは変わっていない。
587nobodyさん:02/09/04 11:03 ID:???
>>586

そのあとログファイルに書き込み処理をしています。
588名無しさん@Meadow:02/09/04 12:03 ID:gOg0cXWU
だってさ、ファイルの大きさを求めて100KB以上かどうか判定しているのは、
書き込む前でしょ。
while($logsize > $maxsize) {pop @data; ↑$logsize = (stat($logpass))[7];}
矢印のところで書き込まないと・・・
それより別の方法を考えたら?
589nobodyさん:02/09/04 13:23 ID:???
あ、なるほど。納得しました。
590nobodyさん:02/09/04 14:56 ID:???
配列@dataのバイト数を調べたいんですが
foreachでまわして一行ずつlength関数でバイト数を調べるほかに何か方法ありますでしょうか?
591nobodyさん:02/09/04 15:15 ID:???
配列に入れる前に計っとくとか。
592nobodyさん:02/09/04 15:23 ID:2Otyyhgv
教えてくらさい。
ここのメル友募集用掲示板で会員用サイトを作りたいのですが、
http://tsubaki.sakura.ne.jp/~campus/grooweb/jewel.html

メールを送る時にID&PASSでアクセス制限をかけたいのです。
どの様に作ったら良いのでしょうか?
593名無し:02/09/04 15:51 ID:AttOz/Tz
以前、ここで見かけた様な気がするのですが
回答が書かれているのを見つけられないので
以前、質問した人に代わってお聞きします。
CookieをOnにしないと弾き出してしまう
ここで使っているものみたいなCGIのスクリプトを
扱っているようなホームページは知りませんか?
もちろん、ここにスクリプトを書いて下されば
もちろん、なおさら有り難い事ですが…
594b:02/09/04 16:01 ID:07M2lj7H
595nobodyさん:02/09/04 16:12 ID:A3ZRMRKj
ある有料サーバーを使っているのですが、ファイルを出力するCGIを
実行する際に、専用のSSLサーバー(ttps://***.site-secure.net/)
を通すとInternalServerErrorが出てしまいます。
どなたか分かる方いたらお願いします。
596nobodyさん:02/09/04 16:19 ID:???
>>595
  , - - 、                    /ヽ
 / O  \グヒャッ !       /ヽ、     /  ヽ
 ,, : ,ー, O |          /  _,;, -'''"~~    ヽ
'' ; ∴_ノゝ ゝ         /o    O      ヽ
  ヽ ,;''"~"'';,       /  ┌─┐   ノ(   ヽ
_ノ|  ;;'';;'';;'';;''      |  /    |    ⌒    | <スレ違いもはなはだしいわ!
   ゝ、ヾ  ヾ        | ト、   |         /
 /  ヽ ヾ  ヾ      ヾ、 \ノ        ノ
    ノ\_ヾ  ヾ      /⌒ヽ、 ___/、
       ノヾ  ヾ_ _/  ノ,         ヽ
         ヽ、ゝ     ノ ノ     ハ    ヽ
           ゝ、   ノ  ノ、     ノ ゝ   | )
             ー─一'´  ゝ、        l'´
                         )          /
CGIだけど、なんか質問ある? Part 6
http://pc.2ch.net/test/read.cgi/php/1025930486/
597nobodyさん:02/09/04 17:33 ID:???
>>593
どんなスクリプトでも頭に以下のような文を入れれば弾ける。

unless($ENV{'HTTP_COOKIE'}){
print "Set-Cookie: value=check; path=$ENV{'SCRIPT_NAME'} domain=$ENV{'HTTP_HOST'} expires=Fri, 31-Dec-2010 00:00:00 GMT\n";
}
&error_end('くっきーオンにしてちょ') unless($ENV{'HTTP_COOKIE'});
598593:02/09/04 19:35 ID:rVUPKdSl
>597さん
どうも有り難うございました。
まさか、こんなに早く教えて頂けるとは思いませんでした。
ところで
expires=Fri, 31-Dec-2010 00:00:00 GMT\n
の部分なのですが、ここの記述は
絶対こうでなくても構いませんよね。
599nobodyさん:02/09/04 20:58 ID:???
>>598
別にセッションでいいだろ
600名無しさん@Meadow:02/09/04 21:42 ID:rtiaBVOu
>>590
$ perl -e '@ar=qw(a b c d e f); print length("@ar"), "\n";'
11
601nobodyさん:02/09/04 22:06 ID:???
ディレクトリーを削除したいのですが、中にファイルが有るので消せません。
一気に消す方法はないでしょうか?ご教授頂けないでしょうか?
602名無しさん@Meadow:02/09/04 22:18 ID:rtiaBVOu
>>601
$ perl -e 'system("rm -rf ./dir");'

./dirってとこは、消すディレクトリのパスを入れてね。


603nobodyさん:02/09/04 22:25 ID:???
>>602
そう言う方法があるのですがね。
ご教授ありがとうございます!
604601:02/09/04 22:33 ID:???
CGIで使うのですが、それだと使用できませんですた・・・(´・ω・`)
605名無しさん@Meadow:02/09/04 22:35 ID:rtiaBVOu
>>603
>そう言う方法があるのですがね。
~~
逆説の「が」ですか?
だったら、
$ perl -e 'use File::Path; rmtree ("./dir");'
606601:02/09/04 22:42 ID:???
>>605
そういう意味じゃないです(;´Д`)

そちらもダメでした・・・
logフォルダーに 1 と言うフォルダーがあり、
その中に、0.log 1.log ・・・ 10.log
と言うファイルが有るので、それをフォルダーごと消したかったんです。
説明が悪かったのかも知れませんが・・・
607名無しさん@Meadow:02/09/04 22:50 ID:???
>>606
>そちらもダメでした・・・
perl5でしょ?
libディレクトリにFileモジュールが入ってないってこと?
考えがたい。
じゃスクリプトミス?
use File::Path;
rmtree("./dir");
ってちゃんと書いた?
じゃファイル属性を確認してちょ。

608nobodyさん:02/09/04 22:55 ID:???
>>607
書き間違えでした、コピペで逝けました
アリガトン
609nobodyさん:02/09/04 23:08 ID:???
>>608

シネ
610nobodyさん:02/09/05 01:33 ID:???
>>608
シネ
611nobodyさん:02/09/05 04:56 ID:???
web用のCGI作ってるんすけど。
\r\nって\nにしちゃダメなんすか?
特に動作に問題は見当たらないしファイルサイズも削れるんで\nでいきたいんすけど。
それとも不都合な環境とかあるんでしょうか。
612名無しさん@Meadow:02/09/05 05:34 ID:???
>>611
改行は、<br>で表すんだから、別に構わんです。
ただ、編集環境がwindows(MS-dos)なら、普通、¥r¥nが自動的に
つくんですが。いちいち変換するの?
613611:02/09/05 05:48 ID:???
>>612
改行コード自体いまいち理解できてないんですすんまそん。とりあえず
print "Set-Cookie: $cookie\r\n";
とか
print "Content-type: text/html; charset=EUC-JP\r\n\r\n";
とかの\r\nを\nにしちゃまずいんかなと思ただけ、というか
\nでいけるならなんでわざわざ\r\n使ってるんだろうとか思ってみただけれす。
レスどうもっした。
614名無しさん@Meadow:02/09/05 06:01 ID:???
615名無しさん@Meadow:02/09/05 06:12 ID:???
ってゆうことで、613さんのは、htmlファイルの
出力だから、問題は起こらないね。
616611、613:02/09/05 06:16 ID:???
>>615
多謝。
617T女の竹田:02/09/05 11:51 ID:sI+RlSZg
>>613
ftp://ftp.nic.ad.jp/rfc/rfc1945.txt
The line terminator for HTTP-header fields is the sequence CRLF.
However, we recommend that applications, when parsing such headers,
recognize a single LF as a line terminator and ignore the leading CR.

(訳)HTTPヘッダ領域の行末区切りはCRLFの並びです。しかし、アプリケーションが
そのようなヘッダを読み取るときは、単独のLFを行末区切りとして解釈し、続くCRを
無視することをお勧めします。

というわけで、実際問題LFだけでも問題はまずないだろうけど、正式には
CRLFだよ。
618T女の竹田:02/09/05 11:52 ID:???
訂正
続くCR→前のCR
619ゆゆ:02/09/05 12:03 ID:FN8hs1rs
CGIチェックする際、サーバで perl -wc やってます。

エラーで
70行目に @Iとあるけど\@Iにするべきというエラーがでるのだけど
そんなものどこにも書いてないです。
いままで行数があってないなどありましたが、@Iというもの自体が
ない場合のエラー場所がわかりません。

何か特有の字が @Iとなったりしますか?
620nobodyさん:02/09/05 12:17 ID:???
ソース見せろ、バカ。
621nobodyさん:02/09/05 13:53 ID:???
全角空白
622613:02/09/05 13:58 ID:???
>>617
\nを使うって事はアプリケーション側のサービスに甘えるってカンジすか。
とりあえずCGIを公に配布とかしたりしない限りは
こっそり\n使っちゃってもいっか、と解釈。
623nobodyさん:02/09/05 14:11 ID:???
\r\n
だとWindowsサーバーで動かすときとか、おかしくなることがある。
624613:02/09/05 14:18 ID:???
>>623
むしろ\nのが概ね安全な罠すか。
625nobodyさん:02/09/05 14:24 ID:???
\x0D\x0A
のように16進数でCRLFを表すのがいいらしい。

Windowsでの改行はCRLFだから、\r\nで出力してしまうと\r\r\nになってしまう罠。
626613:02/09/05 14:29 ID:???
世の中は罠がいっぱいだなや。
627 :02/09/05 14:39 ID:???
掲示板の書き込みの中の、半角の数字を全角に変換。
または、その逆の変換を選択できるようにしたいです。
628名無しさん@Meadow:02/09/05 14:55 ID:???
javascriptつかうと半角(全角)しか受け付けないようにできるYO.
629nobodyさん:02/09/05 16:18 ID:FN8hs1rs
CGI内にジャバスクリプトってそのまま使えるの?
>>EOF 内にHTMLのほうで使ってるまま持って来たら
InternalServerErrorに・・・。
ジャバスクリプト取ったらエラーは起こらないのだけど。
630 ◆4XfSMGTg :02/09/05 17:47 ID:???
>>625>>629
( ´,_ゝ`) プッ
631 ◆4XfSMGTg :02/09/05 19:52 ID:???
>>630
初心者わらってんじゃねーよ。
初心者をあざ笑うスレでも作ってそこでやってくれ。

解っているのなら教えてやって下さい。
初心者同士で嘗め合うことから先に進めません。

>>629
Java Script はクライアント側で動作しますので、
Perl 文法エラーの可能性が高いと思われます。
632nobodyさん:02/09/05 20:13 ID:???
>>629
ジャバスクリプト内に半角「@」があるんでしょうね。ほぼ間違いなく。
633nobodyさん:02/09/05 20:18 ID:???
>>632
激しく同意
634nobodyさん :02/09/05 21:34 ID:???
>>630-631
何の意味があるんでしょうか・・・
635kusokote ◆4XfSMGTg :02/09/05 21:42 ID:???
>634
◆4XfSMGTg はオープントリップ kusokote
630 と 631 は別人。
636nobodyさん:02/09/05 22:27 ID:CVMgCTHS
textareaに書かれた文字列を.txtに出力するものを
初めてperlでCGIを書いてみたんですが動きません。
どんな原因が考えられますか?

#!/usr/local/bin/perl
require "./jcode.pl";
$object = $ENV{ 'QUERY_STRING' };
open (FILEOUT, ">./xxx.txt");
print FILEOUT @object;
close (FILEOUT);
exit;
637nobodyさん:02/09/05 22:32 ID:???
>>636
$object にデータ入ってても
@object にはなにも入ってないように思うが。
638nobodyさん:02/09/05 22:35 ID:???
デコード処理が行われていない。
jcode.pl が使われていない。
GETで受け取るため文字制限がある。
639nobodyさん:02/09/05 22:45 ID:???
掲示板の過去ログをlogというフォルダの中に1.html 2.html〜、というふうに収納してるんすよ。
フォルダ内のファイル数を数えて、その数+1を新規の過去ログのファイル名にしてるんすよ。
でも、そうすると既に存在するファイルを削除した場合、当然やけどファイル数が減ってしもて
ファイル名がかぶってしまうんすよ。
何か良いファイル名の付け方知りまへんか。
ご教授よろしくお願いします。
640nobodyさん:02/09/05 22:50 ID:???
フォルダ内のファイル数を数えるのではなく、別にカウントしとけば。
641639:02/09/05 22:57 ID:???
>>640
書き込みボタンを押した回数をカウントするとかですか?
もっとスマートなやり方あればよろしこ頼みます。
642nobodyさん:02/09/05 23:04 ID:???
>641
空きが見つかるまでリピートぶん回して
open(OUT, "./log/日付とか$i.html");
643nobodyさん:02/09/05 23:08 ID:???
ファイル名を日付にするとか。
644nobodyさん:02/09/05 23:11 ID:???
>>643
ソレダ!
645639:02/09/05 23:16 ID:???
なるほどいろいろあるもんですのぉ。
646T女の竹田:02/09/05 23:55 ID:???
>>627
半角全角は面倒だね。Perlでやると大抵Shift-JISとかで送られてきた
文字列を処理することになるから文字の境界で苦労する。
>>628さんの言うとおり、JavaScriptでやるのがいいと思う。

ちょっと書いてみた。板違いだけど…

<form OnSubmit="txt=mainForm.messageArea.value;
while (txt.match(/[0123456789]/))txt=txt.replace(/[0123456789]/,
'0123456789'.charAt('0123456789'.indexOf(RegExp.lastMatch)));
mainForm.messageArea.value=txt;">

これで全角→半角が一応IE6ではできた。他は試してない。
mainForm.messageAreaは好きに変えてね。
647636:02/09/06 00:15 ID:GoSqrpgT
cgi-lib.plを用いてgetではなくpostにして、改行処理らしきものをつけ無事解決しました。
けれどデコードっぽいことをしてませんが、半角カナいれたりしても何も問題がありません。
のちのちまずいことになりますかね?
648 ◆XUwkgSoY :02/09/06 00:20 ID:???
>>647
>半角カナいれたりしても何も問題がありません。

EUCで書いてるからカシラ
649nobodyさん:02/09/06 00:22 ID:+YKj9Zdt
>>646
俺はJAVAscriptで入力制限てどうも気に入らないんだけどどうよ?
ユーザビリティーを考えてjavascriptの入力チェックを書くことあるけど
クライアントでチェックってどうも設計上よろしくないと思っている俺。
650636:02/09/06 00:37 ID:GoSqrpgT
>>648
はい EUCで書きますた
651nobodyさん:02/09/06 00:37 ID:???
>>611,617,625
ここはPerlスレだからCGIと仮定するのもおかしいかもしれないけど、
「CGIでParsed headers」なら規格上 LFのみ か、 CRLF のどちらかです。
http://hoohoo.ncsa.uiuc.edu/cgi/out.html

もうちょっと詳しく言うと、CGIのヘッダというのは
HTTPサーバが解釈して、HTTPヘッダを生成するためのものなので、
フォーマットは一緒ですがHTTPのヘッダとは別物と考えるべきです。

蛇足で、NPHの場合はそのままクライアントに渡されるので、
当然CRLFにする必要があります。
652651:02/09/06 00:38 ID:???
なんか変な文だ。ごめん
653 ◆XUwkgSoY :02/09/06 00:43 ID:???
>>650
EUCで書いてあると半角カナは化けないにょろ。
何故かmacで書きこまれるとたまに化けるけど。そんときはjcodeかな。
654初心者以下:02/09/06 00:44 ID:DvbQB/jN
教えてください。
自分のHPに素材サイトで手に入れたJavaゲーム(9面パズル)を
置いてみたのですがサーバーにアップしてDLすると
何故か遊べなくなってしまいます。
(2枚目、3枚目の画像が表示されない。タイムカウントが動かない
 ゲームが始まらない)
絵を置き換えたからかな、と思い試しに
加工を加えずアップしてみましたがやはりダメでした。
ftpでアップしているのですがコレが原因なのでしょうか?
初心者ですんません。
javaは2日前に知りました。
素材サイトのゲーム http://www18.big.or.jp/~neon2/bunkatu/usa9.shtml
655nobodyさん:02/09/06 00:48 ID:???
>>654
板違い
それに、それはJavaではなくJavaScriptだ
656nobodyさん:02/09/06 00:48 ID:???
2apeとかの掲示板を携帯対応にはできるのでしょうか?
657nobodyさん:02/09/06 00:50 ID:???
>>656
君の腕次第
658nobodyさん:02/09/06 00:59 ID:???
>>657
教えてください。
659 ◆XUwkgSoY :02/09/06 01:03 ID:???
>>658
$ua=$ENV{'HTTP_USER_AGENT'};
if($ua=~/UP.Browser|DoCoMo|J-PHONE|ASTEL|PDXGW|L-mode/i){

あとはお好きに
660nobodyさん:02/09/06 01:11 ID:???
>>659
PDXGW|L-modeって…
661nobodyさん:02/09/06 01:12 ID:???
>>659
すごく初心者なのですがそれをどうしたらいいのでしょうか?
662 ◆XUwkgSoY :02/09/06 01:16 ID:???
>>660,659
ttp://specters.net/cgipon/labo/c_dist.html
ここの内容を要約して見たつもり。
663T女の竹田:02/09/06 01:16 ID:???
>>649
うん、セキュリティから言うとJavaScriptじゃ何もしてないのと同じだしね。
この場合みたいにおまけみたいな機能ならいいかなと思った。
664 ◆XUwkgSoY :02/09/06 01:17 ID:???
もとい
>>660,661だ
665 ◆AMaff.3Q :02/09/06 01:23 ID:???
unkooooooo
666 ◆XUwkgSoY :02/09/06 01:25 ID:???
>>661
まずは携帯から掲示板にアクセスして、
うまく動作してない箇所があったら>>659の方法で処理を振り分ける。
一応うちではそうしてるにょろ。
667nobodyさん:02/09/06 03:28 ID:???
サブルーチンの事で質問ですけれども。
ぶっちゃけスクリプトのどこに置くのが一番効率いいんでしょうか。
とにかく先頭の方でしょうか
はたまた最下部でしょうか
それとも呼び出す直前でしょうか
どこでもいっしょでしょうか
というかなるべく使わないほうがいいんでしょうか
自分では調べられないので教えてくださいまし。
668nobodyさん:02/09/06 03:50 ID:???
変わらないから気にしなくて良し
669667:02/09/06 03:51 ID:???
はい
670名無しさん@Meadow:02/09/06 05:32 ID:dZ6p0Gwt
>>646
IE5.5ではできんかった。というよりINPUT TYPEとかも書いてほしい。

>>649 よく理解できんです。
サーバーのデータベースに直接アクセスするとかソースを見られて
はいけないものは、CGIだけど、それ以外は、なるべくサーバーに
負荷がかからないクライアントサイドのJavaScriptで処理した方が
いいのでは。
まあ、JavaScriptをOnにしてくださいと書くのは面倒というのはある。
テキストブラウザとかだとJavaScriptできないし。あとJSのバー
ジョンとかNSとIEの違いによるサポート状況の違いとか面倒。

>>627 もう来ないか。textareaだかで受け取ったデータの中の
全角<->半角変換スクリプト:

$input = "012344567899012";
@zenkaku=('0', '1','2','3','4','5','6','7','8','9');
@hankaku=('0','1','2','3','4','5','6','7','8','9');
$sw = 1;
if ($sw == 1) {
&zen_han(\@zenkaku,\@hankaku);
} else {
&zen_han(\@hankaku, \@zenkaku);
}
sub zen_han {
my ($A, $B) = @_;
for $i (0 .. 9) {
$input =~ s/@$A[$i]/@$B[$i]/g;
}
}
print $input, "\n";
671nobodyさん:02/09/06 06:55 ID:HPly/0Dw
cgiは今回初めてです。アクセス制限の仕方を教えて下さい。
672nobodyさん:02/09/06 06:59 ID:???
673nobodyさん:02/09/06 07:04 ID:???
和鳥で、KENTのWebPatioを使ってます。
regist.cgiの中の
unlink("$logdir$in{'no'}\.cgi");
unlink("$logdir$in{'no'}\.dat");
なのですが、unlinkでエラーを返してきます。
和鳥だとunlinkは使えないのでしょうか?
674nobodyさん:02/09/06 07:14 ID:???
掲示板が昨日まで動いていたのに急に動かなくなりました。
早くどうにかしてください。
675nobodyさん:02/09/06 07:20 ID:???
>>673
板違いかな
http://pc.2ch.net/perl/
こっちちゃう
676nobodyさん:02/09/06 07:23 ID:???
>>674
板違いかな
http://natto.2ch.net/denpa/
こっちちゃう
677627:02/09/06 14:32 ID:???
>>670
サンクス
678nobodyさん:02/09/06 15:15 ID:???
PerlでのCGIなのですが、スクリプトの負荷を数値化する方法はないですか?
679T女の竹田:02/09/06 17:31 ID:???
>>670
文字境界…。
$input = "浮P";
とかにすると化けちゃうよ。
680ぱぴぷぺ:02/09/06 17:41 ID:UnlQ9r36
なんとかPerlで動的に画像をブラウザに表示させたろう
と考えてるんだけど、モジュールとか使わない場合、
XBMつーーのがあるのを知ったのですが、
これはモノクロのみカラーは絶対ダメ?
681nobodyさん:02/09/06 18:28 ID:???
>>680
>動的に画像をブラウザに表示
なら、Location、binmodeで吐く
「動的に作成した画像をブラウザに表示」
なら、GDが無難か?ファイルにもよるか…
682nobodyさん:02/09/06 18:31 ID:???
xbmは白黒のみ
xbm,xpmはIEで表示できたっけ。
683名無しさん@Meadow:02/09/06 20:35 ID:???
>>679
perlによる日本語の扱いはeucにするのが常識。
684T女の竹田:02/09/06 23:09 ID:???
>>683
ごめん。ついSJISで考えてた。
EUCなら、
$input="横井";
だね。
685 :02/09/06 23:30 ID:???
while (!mkdir($hoge, 0705)) { mkdir "$hoge", 0705; }
これってどんな意味があるんですか?
686nobodyさん:02/09/06 23:31 ID:???
$hogeがパーミッション705で製作されるまで繰り返す。
687nobodyさん:02/09/06 23:34 ID:???
>>685
どうしてもmkdirしたい
{}の中が怪しいがw
688685:02/09/06 23:38 ID:???
>>686
これはもし、ディレクトリィがあった場合はどうなるんですか?
>>687
どの部分がぁゃしぃですか?
689nobodyさん:02/09/06 23:42 ID:Aw2qBvZ4
ある変数の一番最後の文字を別の変数の頭に置くにはどうすればよいでしょうか。
例えば$aaaが4876で$bbbが124だった場合、$aaaを487、$bbbを6124にしたいのです。
「$bbb = chop($aaa).$bbb」 と書いてみたら、結果は$aaaが空白で$bbbが4876124になってしまいました。
どう書けばよいでしょうか。
690nobodyさん:02/09/06 23:57 ID:1kVQvMrN
■10.000円の高額収入
1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.bea.hi-ho.ne.jp/paisen/
691nobodyさん:02/09/06 23:59 ID:???
>>689
$aaaを""で1文字ずつsplitしたものを配列に入れて@hairetu[-1]で最後の文字を取り出してみる?
692685:02/09/07 00:01 ID:???
これは?
$ccc=$aaa$bbb;
$cco=$ccc =~ s/\d/\d/g;
$cco=$cco-1;
$ccc=~ s/(\d{1,$cco})([^\n])/$2/g;
$ccc=$ccc$bbb;
693685:02/09/07 00:02 ID:???
一行ミスった。
$ccc=~ s/(\d{1,$cco})([^\n]*)*/$2/g;
こふだった。
694685:02/09/07 00:05 ID:???
全然違うので考え直してきます。
695685:02/09/07 00:12 ID:???
$aaa='11111';
$bbb='22222';
$cc0="$aaa$bbb";
$cco=$cc0 =~ s/\d/\d/g;
$cco=$cco-1;
$ccc =~ s/(\d{1,$cco})([^\n]*)/$2/g;
$ccc="$ccc$bbb";
696nobodyさん:02/09/07 00:17 ID:???
>>692-695
おいおい、何をやりたいんだ?
697nobodyさん:02/09/07 00:18 ID:???
$aaa = '4876';
$bbb = '124';
$aaa =~ s/(.)$//;$bbb = $1.$bbb;
698nobodyさん:02/09/07 00:20 ID:???
>>697
( ´,_ゝ`) プッ
699T女の竹田:02/09/07 00:23 ID:???
>>685
そのスクリプトを理解する必要はないし、そのスクリプトから
何かを学ぼうと思わない方がいいと思うよ。

>>689
そのまま
$bbb = chop($aaa).$bbb;
で動くと思うけど。
700697:02/09/07 00:23 ID:???
>>698
何か間違ってる?
701685:02/09/07 00:24 ID:???
$aaa='11111';
$bbb='22222';
$cc0=$aaa;
$cco=$cc0 =~ s/\d/\d/g;
$cco=$cco-1;
$cc1=$aaa;
$cc1 =~ s/(\d{$cco})([^\n]*)/$2/g;
$ccc="$cc1$bbb";
702685:02/09/07 00:39 ID:???
685[なぜだ?今の答えなら間違いなくあたっていたはずだ。
きさまは以前にも突然現れ消えたことがあった。]
689[オラには聞き逃げができる。]
685[そいつはやっかいな技だ。バシッ!私も聞き逃げは自身があるんだ。]

703685:02/09/07 00:43 ID:???
1行書き忘れた。
685[689とまではいかないがね。]
704689:02/09/07 01:15 ID:mL5CsCc5
>>699
わたしもなぜ$bbb = chop($aaa).$bbb; で$bbbの値全部が$aaaの頭にくっついて
しまうのか、わからないんです。
>>685
$aaa $bbb の値は dat.txtを参照しているので、固定値ではありません。
705689:02/09/07 01:34 ID:mL5CsCc5
すみません。間違えました。頭ぐちゃぐちゃです(;;)

わたしもなぜ$bbb = chop($aaa).$bbb; で$aaaの値全部が$bbbの頭にくっついて
しまうのか、わからないんです。 ○

わたしもなぜ$bbb = chop($aaa).$bbb; で$bbbの値全部が$aaaの頭にくっついて
しまうのか、わからないんです。×
706nobodyさん:02/09/07 01:42 ID:???
ループの中でやってるとか。

#例
while($aaa){
$bbb = chop($aaa).$bbb;
}

これなら$aaaが空になって全部$bbbの頭に付く。
707nobodyさん:02/09/07 01:46 ID:???
>>705
だって数であって文字列ではないし…
708689:02/09/07 01:55 ID:mL5CsCc5
>>706
きっとその通りです(><)
でも、置換条件があるので、
if($aaa ne $hoge){
$bbb = chop(aaa).$bbb;
}
というように、{}内に書かなきゃいけないかなと思っているのです。
発想自体間違っているのかな...

>>707
文字列扱いにする方法はありますでしょうか。。
709nobodyさん:02/09/07 02:01 ID:???
>>708
$aaaを''で囲む(適当)
710nobodyさん:02/09/07 02:03 ID:???
>>707
chopの時点で文字列コンテキストに変換されるわけだが。。

>>708
適当なとこ言うな。

>>689
普通にやりたいことやるなら
$bbb = substr($aaa, -1) . $bbb;
だけど、chopでも$bbbの値は希望のものになるはず。
ならないなら他に原因がある。
前後のコード晒してみると吉。

711nobodyさん:02/09/07 02:04 ID:???
一度だけ通れば良いなら
if($flag != 1 && $aaa ne $hoge){
$bbb = chop($aaa).$bbb;$flag=1;
}
とか。
712nobodyさん:02/09/07 02:10 ID:???
( ´,_ゝ`) プッ みなさんレベルが低いですね
713689:02/09/07 02:10 ID:mL5CsCc5
>>710
とりあえずchopはあきらめてsubstrで試してみます。
(やりたい事は同じはずだから)
ありがとうございました。
714nobodyさん:02/09/07 02:12 ID:???
ちなみにif(){〜}はループじゃないぞ。
その外側にwhile(){〜}とかfor(){〜}とかforeach(){〜}とかの
ループがあるんじゃないのか。

substrじゃ$aaaの値は減らないけど良いの?話違わない?

>>712
スレタイ嫁
715nobodyさん:02/09/07 02:33 ID:???
……chop、カッコで囲んだら?
$bbb = (chop($aaa)).$bbb;
716nobodyさん:02/09/07 02:43 ID:???
>>715
カッコつけてんじゃねーよ
717名無しさん@Meadow:02/09/07 04:24 ID:???
>>684
私は、jperl使ってるので別に文字化けしないけど。
じゃtr使えばいいじゃんという問には答えません。
718nobodyさん:02/09/07 12:21 ID:???
( ´,_ゝ`) プッ みなさんレベルが低いですね
719nobodyさん:02/09/07 14:35 ID:???
↑さびしんぼハケーン(・∀・)ニヤニヤ
720nobodyさん:02/09/07 16:12 ID:???
↑さびしんぼハリケーン(・∀・)ニヤニヤ
721CGIゲームつくりたい人:02/09/07 18:06 ID:BCsa1yWW
CGIに関してはまったく知識がないのですがこれから勉強するつもりなのですが
目標が自分でCGIゲームを作ることで
そのために参考書を買って勉強したいのですが
オススメの本ありますか?
本屋いってもゲーム作りの本がどれだかわからなくて・・・
よろしくおねがいします。
722nobodyさん:02/09/07 18:40 ID:???
>>721
作りたいゲームにもよるけど
Perl は君の求めるものに向いてないと思うよ。
JavaScript とかの方が良いんじゃない?
723nobodyさん:02/09/07 18:59 ID:???
>>722
C言語薦めた方が…。
>>721
perlでゲーム作るのは空しいかも。
趣味の域は越えられますまい。
724nobodyさん:02/09/07 19:11 ID:???
>722-723
まてまて、Flash+CGIという素晴らしいコンビネィションがあるだろうが
725nobodyさん:02/09/07 19:18 ID:???
>>721
が何言語でCGIを作るのかが、大事だろうが。
726nobodyさん:02/09/07 20:02 ID:6TBf75EA
データが入ってるファイルに一行で
ヤッタ?マン コーヒー ライター
という3つがスペースで区切られてあった時、
aa=ヤッタ?マン
bb=コーヒー
cc=ライター
というふうにするにはどうすればよいのでしょうか?
727nobodyさん:02/09/07 20:05 ID:???
待てみんな。>>721-725
>>721 はわざわざこのスレを選んだんだ。
http://www.webgame.co.jp/
でも Perl のゲームはわりとあるし。
てゆうか検索してオレがびっくりしたよ。

しりとりゲームくらいならココで。
http://www.geocities.co.jp/SiliconValley-Oakland/1680/xperl/
728nobodyさん:02/09/07 20:08 ID:???
>>726
($aa, $bb, $cc) = split / /,"ヤッタ?マン コーヒー ライター";
729nobodyさん:02/09/07 20:27 ID:???
>>728
うわぁぁ?! thx!
730CGIゲームつくりたい人:02/09/07 20:58 ID:BCsa1yWW
>>722-725 >>727
レスありがとうございます。
作りたいゲームは・・・罪と罰++やFFAみたいなゲームです
普通のPerlの本をきちんと読めば作れますか?
それともゲーム作成向けの本とかあるんですか?
731nobodyさん:02/09/07 21:07 ID:???
>>730
つくったらiswebに置くの?
732nobodyさん:02/09/07 21:08 ID:???
だ!か!ら!無理だっつーの。
だいたいゲーム作りたいならCやれ。
Perlは馬鹿でも使える言語だが、ゲームが作りやすい言語でない。
習得期間は
Perlは3カ月で
Cは1年
C++は3年だ。
Perlの本はオライリーの奴買っとけ。
733nobodyさん:02/09/07 21:13 ID:???
修得はCよりもPerlの方が時間がかかるとおもうよ。
複雑さがCとは比べものにならないでしょ(^_^;)
734nobodyさん:02/09/07 21:17 ID:???
>733
両方覚えたけどPerlの方が楽。
Cは基本的な部分を覚えるまでに挫ける人が出そう。
プログラムのいろはを知らない人間ならPerlからの方が断然楽だと思う。
サンプルソースが山のように転がってるし。

なにをもって習得とするかの問題だけど、出力をHTMLでできる分、
PerlでCGIスクリプト作った方が楽だと思うよ。
735nobodyさん:02/09/07 22:28 ID:???
>>730
perlは「ゲームを作るための言語」ではないので
「ゲームの作り方の本」なるものはないと思われ。
応用すればゲームにもなるというだけの話
736nobodyさん:02/09/08 01:41 ID:GXmEPtQH
for(@xx){〜}

foreach(@xx){〜}
の違いを教えてください
737nobodyさん:02/09/08 01:46 ID:???
perl -MO=Deparse,-x7 -e 'for(qw/a b c/){ print }'
perl -MO=Deparse,-x7 -e 'foreach(qw/a b c/){ print }'

というわけで、for(@配列)の場合、ただのforeachと同等。
738nobodyさん:02/09/08 01:53 ID:GXmEPtQH
サンクス
739nobodyさん:02/09/08 06:17 ID:nOl8KoRo
結論

perlでゲームは作れるが、perlでゲームを作る本などない
perlで掲示板が作れるようになれば、まあゲームも作れるだろう
740nobodyさん:02/09/08 06:36 ID:???
>>732
Perlでマインスイーパー作りましたが、何か?
741nobodyさん:02/09/08 06:47 ID:gqIGmvuo
>>732
アクション系列のゲームならそうでしょうが、ウェブ上でのゲームならPerlベースで幾らでもありますよ。
表現はHTMLが精々ですけどね(w

で、質問です。
AnyDBMで1000人前後のデータ(名前、成績、等大小50パラメータぐらい)を管理しようと考えています。
それでファイルロックをどうしようか悩んでいるのですが、
sub LOCK {open (LOCK, "lockfile.lock");flock(LOCK,2);}
sub UNLOCK {flock(LOCK,8);close(LOCK);}
こんなのってありなんでしょうか?
それともやはりrename等で制御したほうが良いですか?
742名無し二丁拳銃 ◆0s6WDHa6 :02/09/08 11:30 ID:HukZlCsp
最近Perlを始めて,今,カウンタを作っているところなんですが,
以下のソースだと,カウンタの値が永遠に1のままなんです。

#!/usr/local/bin/perl

#値を保存するファイル名
$file = "count.dat";

#−−処理開始−−

#ファイルを読み込み
open FH,$file;
$count= <FH>;

#カウントアップ処理

$count++;

#書き出し処理
print "Content-Type: text/html\n\n";
print "Total : <a href=cgi-bin/acces/replist.cgi>$count</a>";

#値を保存

open FH,>$file;
close FH;

exit;
743nobodyさん:02/09/08 11:37 ID:???
>>742
ファイルに書き込んでないじゃん。
744nobodyさん:02/09/08 11:41 ID:???
sendmailでメールを送りたいです。
html形式で送ろうと思うんですが、
ヘッダーの部分の
Content-Type: text/plain; charset=ISO-20220JP
ここのtext/plainを
text/html
に変えればいいだけですか?
ローカルだと実行できないので教えてください。
745nobodyさん:02/09/08 12:07 ID:???
>>744
ローカルでテストするときはsendmailに渡すんじゃなく、ファイルに書き出してみればいいんじゃない。
746nobodyさん:02/09/08 12:14 ID:Y8OpaJeI
はじめまして。
掲示板のプログラムを作成しています。
『投稿確認』をしたいのですが、そこでどうにもこうにも困ってるキングオブDQNなんです。

まず、htmlファイルからsubmitで送られたデータを表示することはできるのですが
そこから先、どうすればいいのか分かりません。
どうすれば
[投稿確認画面表示]⇒[logファイルへの書き込み]の二段構えにすることができるのでしょう?
747nobodyさん:02/09/08 12:21 ID:???
>746
<input type="hidden" name="***" value="*********">
748 :02/09/08 12:24 ID:???
>>746
hidden
749746:02/09/08 12:31 ID:Y8OpaJeI
>>747-748
ありがとうございます。さっそく作ってみます。
750nobodyさん:02/09/08 12:52 ID:???
>>745
どもっす。
とりあえず、上手くいきました。
751nobodyさん:02/09/08 13:02 ID:???
whileとかループをぬけるのはlastですが、ifをそっこーで抜ける方法はありますか?
752746:02/09/08 13:16 ID:Y8OpaJeI
うう、うまくいかなかった。やっぱりキングオブDQNだよ。w
確認画面でsubmitで送られた文字を表示して

<form action = "./data.cgi" mehtod = post>
<input type = "hidden" name = "confirm" value = "OK">
<input type= "submit" value = "投稿する">

で最初にsubmitで送られた文字を表示するのと同じCGIを呼び出して
if ($confirm eq 'OK' ) {
……
}
で分岐させたのだけれど、うまくいかない。
確認画面が表示されるだけです。しかも、nameとかemailとかのデータが全部消えてる。
753nobodyさん:02/09/08 13:16 ID:???
>>751
アルゴリズムを再考しる。
754747:02/09/08 13:21 ID:???
>752
1から勉強しなおせ。

>751
gotoなどと言ってみるテスト。
755nobodyさん:02/09/08 13:23 ID:???
>>752
確認画面を表示の時に一度送られてきたデータも
hiddenで書き出してる?
756746:02/09/08 13:26 ID:???
>>755
いえ、していません。必要なのでしょうか?
757747:02/09/08 13:30 ID:???
>756

nameなどのデータを入力

入力されたデータを受け取る
確認画面表示

入力されたデータを送っていない
データが空っぽ
758nobodyさん:02/09/08 13:44 ID:???
>>754
>gotoなどと言ってみるテスト。
( ´,_ゝ`) プッ
759746:02/09/08 14:01 ID:???
hiddenで書き出しても、うまく送信できません。
なには他に注意点はあるのでしょうか?
荒らしてゴメン。
760nobodyさん:02/09/08 14:04 ID:???
>759
ソースをtxtにしてアプれ。
多分一斉につっこんでくれる。
761nobodyさん:02/09/08 14:08 ID:???
>>759
HTMLを覚えてこい
データの送受信を覚えてこい
日本語覚えてこい
762761?:02/09/08 14:11 ID:???
htmlファイルへの書き込みのときに現在は下のようにしているのですが
これだとhtmlファイルを見ると\nが効いて改行されているのですが
cgiファイルでは改行されていないので見にくいです。
ヒアドキュメントを使って print HTML <<HEADER ではだめでした。
どうしたらよいでしょうか?

open(HTML, ">hoge.html") || &error("ファイルが開けません");
print HTML "<HTML>\n<HEAD>ここにタイトルやスタイルシートなどをごちゃごちゃと</HEAD>\n<BODY>\n";
close(HTML);
763762?:02/09/08 14:17 ID:???
説明する能力って大事だよね
764746:02/09/08 14:25 ID:???
もういいです。さいなら。
765nobodyさん:02/09/08 14:29 ID:???
print pack('C*', map{$_+180}(1,27,0,35,23,27,12,42,17));
766nobodyさん:02/09/08 14:29 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
767nobodyさん:02/09/08 14:45 ID:971QY8yx
a.sh(sh)で定義した変数をperlで書いたスクリプトで参照したいのですが
どのように書いたらよいですか?

a.sh
#!/bin/sh
STR=testtxt

(このSTRという変数をperlのスクリプト内で使いたい)
768nobodyさん:02/09/08 14:52 ID:???
-- test.sh ------------------------------
#!/bin/sh
export STR=mona
/usr/bin/perl test.pl

-- test.pl ----------------------------
#!/usr/bin/perl
print "STR = $ENV{STR}\n";
769nobodyさん:02/09/08 16:11 ID:QxRWekvC
他人がWindowsで作成したiモード用のcgiを直すことになったのですが、
iモード用作成は初めてで、
しかもMacなので、どうやってテストすればいいか分かりません。
iモードツールみたいなもののMac版ってないですかね?
教えて下さい。
770nobodyさん:02/09/08 16:27 ID:???
マルチ氏ね
771nobodyさん:02/09/08 16:30 ID:fnlZSMGR
GoogleのクロールにCGIの実行結果を反映させるには、どのような点に注意すればいいですか?
772nobodyさん:02/09/08 21:22 ID:???
>>771
どうやらGoogieは、「〜.cgi」で終わってるリンクは無視するけど、
「〜.cgi?***」となってるリンクは拾う模様。
***の部分はテキトーで構わないので、Googleに拾って欲しければ
そのCGIへリンクを張る時に、「<a href=〜.cgi?hoge>」とでもしておけばよし。
まぁ俺調べに過ぎないのでダメだったらすまそ。
つってもスレ違いぽいけど。
773nobodyさん:02/09/08 21:42 ID:???
>>762
open(HTML, ">hoge.html") || &error("ファイルが開けません");
print HTML "<HTML>\n";
print HTML "<HEAD>ここにタイトルやスタイルシートなどをごちゃごちゃと</HEAD>\n";
print HTML "<BODY>\n";
close(HTML);
774nobodyさん:02/09/08 22:08 ID:wn4ctmfO
Proxyをはじくものを作りたいんですが、どうやったら判別できますか?
775適当:02/09/08 22:12 ID:???
>>774
if(!$ENV{'HTTP_HOST'}){
print"カエレ";
exit;
}
776nobodyさん:02/09/08 22:13 ID:???
>744
漏れ串くらいしか無理。
A串は無理。
診断君でも見てな。
777nobodyさん:02/09/08 22:13 ID:???
既存のものを見習え。
778775:02/09/08 22:18 ID:???
HTTP_HOST>REMOTE_HOST
779741:02/09/08 22:19 ID:gqIGmvuo
鬱。
780nobodyさん:02/09/09 00:56 ID:ocbC3C/Q
copal2の構文チェックってどうやるの?
781nobodyさん:02/09/09 01:41 ID:ewVE42mB
はじめまして
初心者なのでよろしくお願い致します

CGIを単独で実行できるEXEにするようなツールはありませんか?
postやgetで受信した変数を判断し、ローカルでそれっきりで動くもの
そういうものはありませんか?
782nobodyさん:02/09/09 01:47 ID:???
CGIってのが、PerlならPL2EXEとか。
783Rikuta:02/09/09 01:50 ID:4uRhXRlu
掲示板を作成しています。
長くなったタイトルや、URL表記を途中まで取得し、
残りを「....」としたいのですが、正規表現ではどうするのでしょうか。
@subject = split(//,$subject);
@subject = splice @subject,0,40;
undef $subject;
foreach (@subject){
$subject = $subject.$_;
}
print $subject;
としたのですが、当然というか・・・日本語では化けてしまいます。
Jperlを使用しないでどうすればよいでしょうか。
784nobodyさん:02/09/09 01:52 ID:ewVE42mB
782>>
ありがとうございます
試して見ます
785741:02/09/09 02:12 ID:2XJWXXjE
鬱。ダレモコタエテクレナイヨー
786741:02/09/09 02:49 ID:2XJWXXjE
チョトIDガカコイイカモ
787nobodyさん:02/09/09 03:05 ID:???
>>783
$subject =~ s/([\W])/sprintf("%%%02X",unpack("C",$1))/ge;
788787:02/09/09 03:07 ID:???
↑URLエンコードしてしまう
789nobodyさん:02/09/09 03:08 ID:EyAemdpt
>>783
$n = 40;
$subject = substr($subject,0,$n+1);
$tmp = chop($subject)."\0".$tmp while($subject);
$tmp =~ s/(?<=[\x81-\x9f\xe0-\xfc])\0(.)\0/$1\0\0/g;
$subject = substr($tmp,0,$n*2).'....';
$subject =~ tr/\0//d;
print $subject;

>>741
読み込みオープンのロックは1。それも他の書き込みに対するロックなので
読み込みには無力。
書き込みで開いてロックしときな。
790783:02/09/09 03:18 ID:???
>>787
表示上で使用しますので、エンコードはちょっと・・・

>>789
ありがとうございます。
うまくいきました。
791nobodyさん:02/09/09 03:26 ID:???
>>790
エンコードして切ってデコードって言いたいんじゃないの?こんなふうに。

$n = 40;
$subject = substr($subject,0,$n+1);
$subject =~ s/([\W])/sprintf("%%%02X",unpack("C",$1))/ge;
$subject = substr($subject,0,$n);
$subject =~ s/(%[a-f\d]|%)$//i;
$subject =~ s/%([a-f\d]{2})/pack("H2",$1)/egi;
print $subject;
792791:02/09/09 03:42 ID:???
あ、これじゃエンコードしてる意味無いね(;´Д`)
793nobodyさん:02/09/09 03:43 ID:PULoisdM
空行は/^$/にマッチするのは分かるんだけど
空行を削除するにはどうしたらいいんですか?

あたりまえだと思うけど
while(<STDIN>){
s/^$//;
}
としても駄目なんです。。
794nobodyさん:02/09/09 04:47 ID:???
>>793
@line = <IN>;
$n = @line;
for($i=0; $i<$n; $i++){
if($line[$i] eq "\n"){
$line[$i] = '';
}
}

かな…?
795名無しさん@Meadow:02/09/09 05:44 ID:???
>>793
print unless /^$/;

で逝けますYO

796T女の竹田:02/09/09 07:59 ID:???
>>783
Shift-JIS
$subject = ($subject =~ /([\x0-\x7e\xa0-\xdf]|[\x81-\xbf\xe0-\xfc][\x40-\xfc]){40}/s) ? $& : $subject;

EUC-JP
$subject = ($subject =~ /([\x0-\x7e]|[\x8E\xA1-\xFE][\xA1-\xFE]){40}/s) ? $& : $subject;

これでどうかな?
797nobodyさん:02/09/09 09:52 ID:OPX6Zz9+
ド初心者なんですがスマソ
パスワードが違ったらはじくのを作りたいんですが正しく動作しません
どこをどう直せばいいでしょうか?

if ($pass != xxxx){
print "aho";
exit;
}
798nobodyさん:02/09/09 10:05 ID:???
>>797
eq
799nobodyさん:02/09/09 10:16 ID:OPX6Zz9+
>>798
パスワードが違ったらahoと表示させたいんですよ
eqだと合ってたらahoですよね?
800 ◆JAPH9PWA :02/09/09 10:26 ID:???
>>799
そこまでわかってて何故neにたどりつけないのか謎
ちなみにパスワードは暗号化したほうが良いよ
801nobodyさん:02/09/09 10:41 ID:OPX6Zz9+
>>800
neでやっても500Internal...がでてきちゃうんですよ
802nobodyさん:02/09/09 10:54 ID:OPX6Zz9+
言い方がまずかったですね

passが違う場合にif内を実行したらcgiを終了させるものを作りたいんですよ
(passが合ってるならifより後を実行)
803 ◆TpctYDQ6 :02/09/09 10:56 ID:YALFpbWA
if ($pass ne "xxxx"){
print "aho";
exit;
}
で、エラーなら問題は別のところでしょ。
804nobodyさん:02/09/09 11:04 ID:OPX6Zz9+
>>798-803
print "Content-type: text/html; charset=EUC-JP\n";
を加えたら正しく動きました。スマンコ
首釣って逝ってきます。
805nobodyさん:02/09/09 19:03 ID:???
>>804

やっぱりただのバカか
806nobodyさん:02/09/10 01:33 ID:???
>>794,795
その方法でいけました。
ただ、
while(<STDIN>){
s/hoge/hage/;
s/omeko/sasete/;
print;
}
みたいな置換と一緒に空行を削除したい
場合はどうすればいいの?
ifをネストすればいけると思うんだけど
書けないので教えてください。
807適当さん:02/09/10 06:52 ID:???
>>806
while(<STDIN>){
if($_ ne"\n"){
s/hoge/hage/;
s/omeko/sasete/;
print;
}
}
808nobodyさん :02/09/10 12:40 ID:???
質問があります。
今日が、その年その月の第何週何日目か?
を求める方法を教えて下さい。
例えば今日の場合、第2週の3日目なので
出力結果を23と得たいです。
お願いします。
809名無しさん@Meadow:02/09/10 12:47 ID:???
>>806
while(<STDIN>){
next if /^$/;
s/omae/bakaka/;
s/omae/ahoka/;
print;
}
でもええよ。
810nobodyさん:02/09/10 12:59 ID:???
>808
($sec , $min , $hour , $mday , $mon , $year , $week) = localhost(time);
print (int($mday/7)+1)*10 + $week ;
811nobodyさん:02/09/10 12:59 ID:???
>810 =~ s/localhost/localtime/;

∧‖∧
812nobodyさん:02/09/10 13:02 ID:???
>810
それだと2-6日は必ず第1週になるよ…
813nobodyさん:02/09/10 13:29 ID:???
814∧‖∧:02/09/10 13:46 ID:???
>812
仕様書の意味取り違えてました。

($sec , $min , $hour , $mday , $mon , $year , $week) = localtime(time);
print (int(($mday+8-$week)/7))*10 + $week;

かな?
815T女の竹田:02/09/10 19:32 ID:???
カレンダーとかかな?
>>808を読むと日曜が始まりみたいだけど、それなら

($sec , $min , $hour , $mday , $mon , $year , $wday) = localtime(time);
として、

第何週かは
int(($mday + 12 - $wday) / 7)

何日目かは
$wday + 1

だと思う。たぶん…
816nobodyさん:02/09/10 20:37 ID:???
>>810
>>815
ランダムに日付を変えて何度かテストしてみても
期待通りの結果が得られて大丈夫でした。
ちなみに、利用するのは
いつも巡回する複数サイトの一部記事を
引っこ抜いて表示させるものです。
新しく追加するサイトのファイル名が
今回質問させていただいたフォーマットでした。
ありがとうございました。
817nobodyさん:02/09/10 21:40 ID:ApnEpI8H
Perl 5.6.1、Vine2.5で勉強してます。プログラミングはPerlが初めてです。
リャマ本第2版、P172の問題2が分かりません。
題意は、Unixのmvコマンドと同じ働きをするプログラムを書け、
という内容で、ヒントとして、第2引数がディレクトリの場合も考慮せよと。

で、漏れの解答はこんな感じです。変数の名前、正規表現の
区切り文字は末尾の解答例に合わせてます。

($old, $new) = @ARGV;
if (-d $new){
$basename = $old;
$basename =~ s#^/.*/##g;
$new = $new . "/$basename";
}
rename($old, $new) or
die "Cannot rename $old to $new: $!";

一応は思った通りの動きをします。メデタシ。

ところが、解答例は、4行目が以下のようになってる。
($basename = $old) =~ s#.*/##s;
勿論、こちらも思った通りの動作をしますです。
かっこは、漏れの解答での3行目と4行目を合体させてだけなので
無視するとして、よく分からないのは、右辺です。

1) s/ は置換だけど、後の/sは一体何?
2) .*/ だと、頭の/が残るような気がするんだけど。。。

なんでだろう。。。?

818nobodyさん:02/09/10 21:44 ID:Lqs0IC/U
819817:02/09/10 21:45 ID:ApnEpI8H
自己レスですが、(2)は、たった今、自分の書いたのをみて分かりました!
ルートディレクトリの「/」も 「.*/」で、「.」にマッチするやん!
ってゆーか、これだと、
# test.pl aaa ~/bbb
の場合、エラーになるよね?
ニョロがマッチしないから。。。

で、1)の方は、おながいします。

820nobodyさん:02/09/10 21:45 ID:???
821817:02/09/10 21:59 ID:ApnEpI8H
>>820サン、ありがとうございます。

ははぁ、なるほど!
文字列を単一行として扱う、ということですね。
だけど、この問題の場合、こんなオプションが必要なのでしょうか?
勘違いしているかもしれないけど、漏れの理解では、深いディレクトリ
を処理すると、引数が複数行になってしまうことがあるかもしれないので
sをつける、と思ってるのですが、この考えによると、普通mvするとき
引数に改行なんか入れないですよね?
そもそも、んな深いディレクトリを掘ることってあまりないので、
今まで思いもよらなかったし、そもそもmvコマンドで引数に改行
入れてもいいのかどうかも分からん。。。

822nobodyさん:02/09/10 22:32 ID:???
いくら長くても一行だと思うが。
823nobody:02/09/11 02:17 ID:Zh9eBVFz
”どこが間違っているのかわかりません”的なものじゃないんだけど

crypt関数の使い方で聞きたいことがあります。

(例)
print "文字列を暗号化します。適当に文字をいれて下さい\n";
$get = <STDIN>
$key ="sp";
$pass = crypt($get,$key);
print "暗号化された文字列は$passです\n";

この$keyの部分は任意の二文字を入れるんだけど
それってどういう意味があるんでしょうか?
これによって暗号化される結果などが違ってくるのでしょうか??。
特に意識することではないんでしょうか?

824nobodyさん:02/09/11 02:21 ID:???
>>807>>809
親切にありがとう。
微妙に本にかいてなかったので助かりました。
825nobodyさん:02/09/11 02:41 ID:???
>>823
>結果などが違ってくるのでしょうか
全然変わる。
826nobodyさん:02/09/11 03:06 ID:???
>>823
そんなの、それを実行してみればすぐに解りそうなもんだが?
827nobodyさん:02/09/11 03:13 ID:???
(`Д´)
828nobodyさん:02/09/11 12:43 ID:???
PERLでURLを指定してそこのソースを取得する方法を知っている方、
どうかおしえてつかーさい。
829nobodyさん:02/09/11 12:58 ID:???
>828
「LWP」で検索。
830nobodyさん:02/09/11 13:13 ID:l0g0P0Oz
ライブラリを読み込む際、いちいちrequire **.plってかかなきゃダメでつか?
7枚くらい読みこまなきゃいけないんですけど長ったらしくて。
831nobodyさん:02/09/11 13:17 ID:???
>>830
>ダメでつか?
>7枚くらい
( ´,_ゝ`) プッ
832nobodyさん:02/09/11 14:44 ID:???

 馬 鹿 ば っ か し だ な(藁





おれをふくめてな。
833nobodyさん:02/09/11 15:06 ID:???
「オ・・・ッ  オクッ・・
オクレ兄さあああああああああああああああんッッッ
834名無しさん@Meadow:02/09/11 16:09 ID:???
>>830
別ファイル(仮にloading.plとする)に
require "a.pl";
require "b.pl";
.
.
.
って書いといて、本ファイルでは
require "loading.pl";
だけで逝けるよ。
さすがに、require "a.pl", "b.pl" ...;はだめでしょ。


835nobodyさん:02/09/11 17:07 ID:???
>>834
ナルホド。
>require "a.pl", "b.pl" ...;
はい。ダメですたw
ありがとござました。
836nobodyさん:02/09/11 18:55 ID:???
改行だとわかってるときはchompよりchopのほうがいいの?
837nobodyさん:02/09/11 18:59 ID:???
\r\nも\nしか削らない<chop
byとほほパパ
838nobodyさん:02/09/11 20:31 ID:ofaOgNiv
初心者なんですが、変数から特定の文字列を探す方法ってないですか?
すまそ。教えてください。
839nobodyさん:02/09/11 20:32 ID:???
>838
index

後は検索しる。
840nobodyさん:02/09/11 20:39 ID:ofaOgNiv
>>839
indexって何番目にあるかを検索するだけですよね?
どうやって使うのかが分からないです。
841nobodyさん:02/09/11 20:45 ID:???
>840
特定の文字列を探したかったんでしょ?
使い方は検索しる。

文字列を探して抜き出してどうこうしたいってなら、
substrを使うとか、indexを使わず正規表現に頼るとか。
後は検索しる。
842839:02/09/11 20:48 ID:ofaOgNiv
>>840
使い方何となく分かりました。ありがとう!
843nobodyさん:02/09/11 21:12 ID:???
ユーザー関数を定義する事ってできますか?
844名無しさん@Meadow:02/09/11 21:48 ID:???
ユーザー関数を定義しる:
ユーザーが作ったサブルーティン、ライブラリ、モジュール。
(反対語:)組み込み関数

ユーザー定義を関数にするんじゃないか?
845nobodyさん:02/09/11 21:49 ID:wdtzvpz4
できます。
846nobodyさん:02/09/12 02:13 ID:???
>>837
>\r\nも\nしか削らない<chop

\n について勉強したほうがいいよ
847847:02/09/12 14:36 ID:???
$syu =~ s/<br>/\r\n/g;
$value =~ s/<br>/\r/g;
$value =~ s/<br>/\n/g;
このようにフォームデータを変換するのと逆に、
すべてのOSの改行文字に対応して、改行を<br>に変換することはできますか?

フォームのtextareaのvalue=""にログを入れたいのですが。
848847:02/09/12 14:37 ID:???
一行目の$syuは$valueの間違いです。
849nobodyさん:02/09/12 14:42 ID:???
出来ない。
つーか、\nで十分。
850847:02/09/12 14:45 ID:???
>>849
分かりました。
851nobodyさん:02/09/12 17:28 ID:???
for($NUM = 0; -e "$NUM.jpg" == 1; $NUM++){

print "<a href=\"$NUM.jpg\">$NUM</a>";

}
としたのですが、上手く動きませんでした。
For文は
for(NUM =0; ここの条件が成り立ってるとき動作する; NUM++)
こういう事ではないのでしょうか?

while文で
while(-e "$FileAddress$NUM.jpg" eq "1")
こうしたらできたのですが・・・
852851:02/09/12 17:34 ID:???
ファイルが連番で[1-20].jpgである場合、

-e でファイルが存在を調べるか、
readdir で一覧を取得するか どちらかを考えたのですが
どちらの方が効率が良いと思うでしょうか?

ご教授頂けないでしょうか、お願いいたします
853nobodyさん:02/09/12 17:51 ID:???
Benchmark.pm で調べれ
854>>847:02/09/12 18:16 ID:???
$syu =~ s/\x0D\x0A/<BR>/g;
$syu =~ s/\x0D/<BR>/g;
$syu =~ s/\x0A/<BR>/g;

>>847
この産業で出来るぞ。

855nobodyさん:02/09/12 18:18 ID:???
>>854
<BR> を改行に変換したかったんじゃないのか?
856nobodyさん:02/09/12 18:22 ID:V0oL4dfD
なんかファイル処理でDBM使わされることになったんですが、ファイルロックがイマイチ分かりません。

sub Filerock {

my $now = time();
my $lockfile = "lock";
my $locking = "lock.now";
for($_=5; $_>=0; $_--){
if(rename($lockfile, $locking)){
utime($now, $now, $locking);
$SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "intProc"; # 割り込みで中断するときの処理を定義
&Dbmopen;
return;
}
sleep 1 if $_;
}

&Header("フォームエラー");
print "<h2>ロックちう</h2>\n<hr>\n";
&Footer;
exit;
}


こんなんで良いんでしょうか。
もっと効率の良いコードがあればアドヴァイス願います。
857nobodyさん:02/09/12 18:25 ID:???
ダミーファイルでも開いてflockしとけ
858nobodyさん:02/09/12 18:31 ID:NNUPZyEk
859nobodyさん:02/09/12 18:32 ID:???
>>851
$NUM.jpg

$FileAddress$NUM.jpg
違うよ
860nobodyさん:02/09/12 18:49 ID:???
>>859
それで?
861初心者厨房:02/09/12 19:24 ID:jvK2X5HW
Perlの勉強を始めたばかりの初心者です。ちゃんと書いたつもりなんですがうごきません。
どうしてなんでしょうか。教えてください。お願いします。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print 10+5 # 足し算
print " / "; # 区切り
print 10-5; # 引き算
print " / "; # 区切り
print 10*5; # 掛け算
print " / "; # 区切り
print 10/5; # 割り算
print " / "; # 区切り
print 10%5; # 剰余算

_END_
862nobodyさん:02/09/12 19:26 ID:???
print 10+5 # 足し算
863nobodyさん:02/09/12 19:27 ID:???
print 10+5 # 足し算

print 10+5; # 足し算

エラーメッセージぐらい読め
864nobodyさん:02/09/12 19:31 ID:???
>>863
氏ね!
865nobodyさん:02/09/12 19:33 ID:???
>>864 ハァッ!!!!!!!!!!!!!!!!!!!!!?
866nobodyさん:02/09/12 19:34 ID:???
>>863
揚げ足取りは氏ね!
867nobodyさん:02/09/12 19:38 ID:???
>>865
氏ね!
868nobodyさん:02/09/12 19:38 ID:???
>>866
何が揚げ足取りなんだ?
869nobodyさん:02/09/12 19:39 ID:???
( ● ` ∇ ´ ● )ガオー
870初心者厨房:02/09/12 19:54 ID:ODncwTzE
ありがとうございます。わかりました。ところでエラーメッセージのどこをみればわかるのですか?
871nobodyさん:02/09/12 20:01 ID:???
>>870
もう(#・∀・)カエレ!
http://pc.2ch.net/test/read.cgi/php/1028646335/
↑みてこい
#!/usr/local/bin/perl -w

perl -wc hoge.pl

print 10/5;
print " / ";
↑きもい書き方やめれ
$f=10/5;print "$f /";
872名無しさん@Meadow:02/09/12 20:07 ID:???
>>864-870
荒らしさん、こんにちは
あなたの存在がエラーです
873初心者厨房:02/09/12 20:08 ID:ODncwTzE
ほんとに始めたばっかでなにがなんだかわかんねーんだからしょうがねーだろ。
874nobodyさん:02/09/12 20:11 ID:???
< ● ` ∀ ´ ● > < >>873 一緒に祖国に帰るニダ
875nobodyさん:02/09/12 20:15 ID:???
1 :ぼぶ ◆EMrmvKLI :02/09/10 19:18 ID:G4zqfa38
これはいろんなとこにコピペしてください。
みんなで台風を起こしましょう。
東京駅を中心に右回りです。
9月22日夜9時にみんなでいっせいに「フゥー」と吹くのです。
注意
周りに障害物のないところでやりましょう(なるべく高いところ)
「フゥー」以外に扇風機やうちわを使ってもかまいません。
       !東京を壊しましょう!
876初心者厨房:02/09/12 20:15 ID:ODncwTzE
帰ります・・・>>874
877nobodyさん:02/09/12 21:03 ID:???
#!/usr/local/bin/perl
print "Content-type: text/html\n\n;


$atai='値';
print '「$atai」(シングルクォート文字列では展開されない)/';
print "「$atai」(ダブルクォート文字列では展開される)";

_END_
何がまちがってんの?
878nobodyさん:02/09/12 21:11 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
879nobodyさん:02/09/12 21:20 ID:???
で、>>861 = >>877 なんでしょ?(プ
880 ◆4XfSMGTg :02/09/12 21:21 ID:???
糞な質問ばっかりだな
881nobodyさん:02/09/12 21:22 ID:???
まぁね。みりゃわかるっしょ>>879
882nobodyさん:02/09/12 21:54 ID:???
てゆーか最近カマッテ君が住みつきだしたのはなんで?こんなとこに。
上級者ぶってツッコミ入れてるのも知ったかぶりだからとんちんかんだし
とりあえず初心者嘲笑いたいなら的確に回答してやってからにするのが筋ってもんじゃないの
883nobodyさん:02/09/12 22:47 ID:???
何でもかんでも答えるのは如何なものかと。
884nobodyさん:02/09/12 23:03 ID:???
◆4XfSMGTgの発言禁止依頼しました
885nobodyさん:02/09/12 23:03 ID:???
答えないでいるならいいが、質問馬鹿にするだけしといて
そいつ自身答えられないパターン多すぎなのも見ててうざ
886nobodyさん:02/09/12 23:28 ID:???
下手に答えて自分がバカにされるのが嫌なんだろ、きっと。
887nobodyさん:02/09/12 23:29 ID:???
>>882=885 煽られた初心者
888nobodyさん:02/09/12 23:39 ID:???
>>887
いや今まで無視してたよ リアクションしてあげないのが一番だから。
ここに来て立て続けで軽く荒れてきたから
ちょうどいいかと思ってつっこんでみただけ。
889nobodyさん:02/09/12 23:54 ID:???
で、結局釣られたのは>888というオチか
890888:02/09/13 00:03 ID:???
はいはいごめんよ 俺が悪かった。許してね。>>889

−−−−−−−−−−−−−−−−−−−−−−−−−−−

以下、普通のスレに戻って下さいませ。
891nobodyさん:02/09/13 00:08 ID:???
場を乱すだけ乱しといて何を今更…
892nobodyさん:02/09/13 00:16 ID:???
>>891
これ以上乱れないように882で釘さした形だと思うが。887とかが俺を煽ってきただけだし
申し訳ないがもうレスらないんでよろ
893nobodyさん:02/09/13 00:16 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~
894nobodyさん:02/09/13 03:15 ID:R5wD3hCH
mbx形式のメールをmh形式にばらす
スクリプトを書こうと思ってます。

mbxは複数のメールが1つのファイルになっていて
ピリオドだけが書かれた行がメールの区切りになっ
てます。そのmbxファイルを1つ1つのメールに
ばらして連番で出力したいのです。

#書いたプログラム-mbx.pl
open(OUT,">$n");

while(<STDIN>){
unless(/^\.$/){
print OUT;
}
else{
++$n;
}
#ここまで

で、実際にperl mbx.pl < hoge.mbx
とすると1に全て出力されてしまいます。
なにがいけないんでしょう?
895nobodyさん:02/09/13 03:17 ID:???
>>894
追記
最初に$n = 1;で初期化してます。
896nobodyさん:02/09/13 03:17 ID:???
>894
改行文字忘れてるよ
897nobodyさん:02/09/13 03:25 ID:???
>>896
ごめん意味わからない。どこにつけ忘れてるの?
898nobodyさん:02/09/13 03:29 ID:???
>897
unless(/^\.\n$/){
かな?
899nobodyさん:02/09/13 03:42 ID:???
>>898
指摘サンクス。
あとはどうすれば連番で出力できるのか
教えてくらはい。
900nobodyさん:02/09/13 03:43 ID:???
>894
てか unless( $_ eq ".\n" ) でいいんじゃ...
901nobodyさん:02/09/13 03:56 ID:???
メール本文に.\nがあったらまずいかな
と思ったんだけど。。。
902nobodyさん:02/09/13 04:04 ID:???
>>899
open(OUT,">$n");
をwhileの中に入れてないからでわ?
903nobodyさん:02/09/13 04:05 ID:???
何がしたいのかイマイチわからないけど
こういう事か?

$n = 0;
while(<STDIN>){
next if($_ eq ".\n");
++$n;
open(OUT,">$n".'.mh');
print OUT;
close(OUT);
}

>>901
区切りに使われてるものが本文中に無変換で置かれてることは
ないだろう。もしあったらシステムが破綻する。
904nobodyさん:02/09/13 04:05 ID:???
>899
こんな感じでどう?

$n = 0;
loop: {
 $n++;
 open( OUT, ">$n" );
 while ( <> ) {
  if ( $_ eq ".\n" ) {
   close OUT;
   redo loop;
  }
  print OUT;
 }
}
905nobodyさん:02/09/13 04:15 ID:???
>>904
書き込みで開いたら何も出てこないぞ…(;´Д`)
906nobodyさん:02/09/13 04:16 ID:???
>905
907905:02/09/13 04:29 ID:???
ごめん、勘違い。
908nobodyさん:02/09/13 04:30 ID:???
>区切りに使われてるものが本文中に無変換で置かれてることは
>ないだろう。もしあったらシステムが破綻する。
よく考えたらそうですよね。

>>903>>904
両方試したけど各行ばらばらになって出力されてしまいます。
.mbxの改行コードはlfなんですが。

なんでだろう。。
909nobodyさん:02/09/13 04:32 ID:???
>908
ばらばらって?
910894:02/09/13 04:35 ID:???
$n = 1;
open(OUT,">$n");

while(<STDIN>){
unless(/^\.\n/){
print OUT;
}
else{
++$n;
open(OUT,">$n");
}
}

で自己解決しました。
説明が下手でちゃんと伝わらなかったみたいでスマソ。
911894:02/09/13 04:37 ID:???
>>909
hoge.mbxの内容が1行ずつ連番で出力されて、
7000.mhとかまでできた。
912nobodyさん:02/09/13 04:42 ID:???
>911
そんなはずは......ちゃんとコピペしてくれた?
913894:02/09/13 04:48 ID:???
コピペしたはずなんだけど。。
>>903>>904どっち?
ちなみに両方同じ結果だった。。
914nobodyさん:02/09/13 04:51 ID:???
>913
あ 904 なんだけどね......
うちではちゃんと動いたんだけどなぁ
まぁいいんだけど
915894:02/09/13 05:05 ID:???
>>914
はじめてのperlって本を一通り終えただけの
初心者だからredoとかloopが分からないのレス。
動かない理由がよく分からないけどサンクス!
916nobodyさん:02/09/13 15:55 ID:???
$xxが"aa"でも"bb"でもないとき"cc"と表示するのを作りたいんですが

if ($xx ne "aa"|"bb"){
print "cc";
}

これじゃいつでも"cc"と表示します。何でですか?
917nobodyさん:02/09/13 15:57 ID:???
if ($xx ne "aa" && $xx ne "bb"){
print "cc";
}
918905:02/09/13 16:15 ID:???
>>894 このくらいの説明は最初にしようよ
| > MBXファイルのフォーマットを公開して頂けないでしょうか?
|
|次の通りです。
|
|ヘッダ
|(ブランク行) --- CRLF1個だけの行
|本文
| --- 行頭に1個のピリオド(メール間の区切り文字)
|ヘッダ
|(ブランク行) --- CRLF1個だけの行
|本文
| --- 行頭に1個のピリオド(メール間の区切り文字)
|
|
| (注意)本文の行頭に「.」がある場合は、「..」というように「.」を1
| 個余分につけて保存されます。
919nobodyさん:02/09/13 16:48 ID:+7b38iG7
dataディレクトリ内のディレクトリ一覧を取得しようと思って↓の
コード書いてみたんですが、いくつかディレクトリが存在するにも関わらず
「.」(ルート)と「..」(上)のディレクトリしか拾えないんですが、何かおかしな
点などありますでしょうか・・・

opendir(DIR, "data");
while($dir = readdir(DIR)){
  if(-d $dir){
    #処理・・・
  }
}
closedir(DIR);
920919:02/09/13 16:51 ID:+7b38iG7
すんません、分かりました

  if(-d $dir){



  if(-d "data/$dir"){

としないとダメですね。
921nobodyさん:02/09/13 17:50 ID:???
ひとつのcgiファイルの容量はどれくらいまでOKなんでしょう?
特に気にする必要はない?
922nobodyさん:02/09/13 17:57 ID:???
ワラた
923nobodyさん:02/09/13 18:17 ID:???
>>921
10MBとか書いてみればどうでしょう?w
アクセスする人数にもよるけど
重たいものを書いたらすぐビジー出ますよ
924 ◆JAPH9PWA :02/09/13 19:59 ID:???
重たいものと大きいものは全く違うんじゃない?
数十行でも重い処理は書けるからね。

>>921
まず気にするほどのことは無いと思う。多分1MBくらなら問題ないでしょう。
プログラムが重いと感じたら処理の流れを見直すべし。

それと、「CGIファイル」じゃ意味が通じないんで「Perlスクリプト」や「スクリプトファイル」と表現するように。
上記の回答もそのような意図と解釈して書いてます。

925名無しさん:02/09/13 20:11 ID:dJSmRC1R
新宿で居酒屋の誘いにモノスゴイ人数で付いて逝くオフ4
http://natto.2ch.net/test/read.cgi/off/1031911920/l50

キタ━━━━━━━(゚∀゚)━━━━━━━!!!!!
926nobodyさん:02/09/13 20:56 ID:MTIQ7Fw0
変数の表記で変数名も変数である場合

$xx_(ここも変数)
()の変数は$yy

どう表記したらいいでしょうか?
927nobodyさん:02/09/13 21:07 ID:???
${xx_}$yy
928 ◆JAPH9PWA :02/09/13 21:22 ID:???
{
my $xx_1 = "foo";
my $yy = 1;
no strict 'refs'; # シンボリックリファレンスを許可する(デフォルト)
print ${"xx_$yy"};
}
929nobodyさん:02/09/13 22:53 ID:???
>>927
$xx_{$yy}
930nobodyさん:02/09/14 08:14 ID:???
>>927, >>929
Can't use an undefined value as a symbol reference at test.3.pl line 8.

>>928
fooが出力されるべきところ何もでてこない

結局、どれでやってもだめレスが・・・


931930:02/09/14 08:21 ID:???
ゴメソ
>>928は、myを取ったら出力されました
わしの考えたのは

$var = "xx_" . $yy;
print $$var;

分かりやすくていいでしょ
932 ◆JAPH9PWA :02/09/14 08:58 ID:???
あ、そりゃmyがあればダメだよね。つい癖で…。
ごめん。
933929:02/09/14 14:29 ID:???
>>930
$xx{$yy}だたよ…
934nobodyさん:02/09/14 14:58 ID:bLV5ATcL
AnyDBM使って多数のパラメータを扱うのですが、
データ数が多い場合はやはり幾つかのDBMに分けた方が良いのでしょうか。
それとも全部一括りにして1つのファイルにまとめた方が効率が良いのでしょうか。
ちと分からないので質問です。
935nobodyさん:02/09/15 00:34 ID:???
>>934
ファイル1枚
・壊れやすそう
・壊れたら致命的そう
・サイズがでかそう
ファイル複数
・壊れにくそう
・壊れても被害は少なそう
・余計なデータは読まずに済むから軽そう
936nobodyさん:02/09/15 05:43 ID:sdGpPtiV
特定の日付からgmtime?(1018470831みたいな数値)を逆算するには
どうしたらよかとでしょうか?
937nobodyさん:02/09/15 07:30 ID:iaBuYHci
>>936
1900年からの経過秒数が知りたいの?
だったら、

use Time::Local;
print timelocal(0,0,0,15,8,102);

で9月15日0時0分0秒のそれが出てくる
938nobodyさん:02/09/15 11:34 ID:???
短くて済む、という理由でrequireじゃなくてdoを使いたがっています。
ライブラリルーチンのインクルードは、requireを使った方が良いといわれていますが、
その理由がよくわからないので言う事を聞く気になりません。
うまい具合に違いを説明して僕を説得してください。
939あ ◆4WVJTVm. :02/09/15 11:47 ID:7pMxPAY1
whileで配列の処理をしていて、
途中である条件が一致した場合、現在処理している変数が何番目の変数なのかを知り、変数に数値を格納したいのです。
どなたかご回答よろしくお願いします
940あ ◆4WVJTVm. :02/09/15 11:51 ID:7pMxPAY1
ミス
>現在処理している変数が何番目の変数なのかを知り、 ↓
>現在処理している配列が何番目なのかを知り、
すみません
941nobodyさん:02/09/15 11:54 ID:???
>>938
わたしは初心者なのですが、ライブラリをインクルードするのはdoではできな
いと思うのですが、具体例を示していただけませんでしょうか。
942nobodyさん:02/09/15 12:01 ID:???
>>939
配列の番号は$array[$i]の$iです
for $i (0 .. $#array) {
if ($array[$i] == 0) {
$array[$i] = $num;
print "$i番目の配列要素の値に$numを代入しますた\n";
}
}
943nobodyさん:02/09/15 12:02 ID:???
>>941
require "hoge.pl";
となっているところを
do "hoge.pl";
と置き替えるだけです。
一応平気で動作しています。
944nobodyさん:02/09/15 12:09 ID:???
>>942
if ($array[$i] == 0) { って??
$array[$i] = $num; って$numはどこからでてきたの?
それにそんなことしたら配列の内容書き換えてるんじゃ?
945 ◆JAPH9PWA :02/09/15 12:11 ID:???
「聞く気になりません」って…何の理由もなしにrequireを使え、なんて事はないよ。
doは%INCをチェックしない。つまり、同じライブラリを何度も読んでしまう。
そうなると、サブルーチンの再定義など、いろいろ不都合が生じると。
946nobodyさん:02/09/15 12:13 ID:???
>>943さん、回答ありがとうございます。
やってみたらできました。私も識者の回答を待っています。
どなたかお願いします。
947944:02/09/15 12:17 ID:???
っつわけで、
for $i (0 .. $#array) {
if($array[$i] eq $arujouken){
$hensuu = $i
last;
}
}
かな?>>939
948nobodyさん:02/09/15 12:18 ID:???
>>944
>>939は、配列要素が何らかの条件に合致した場合、
その要素(>>939は変数といってるが)に何らかの
数値を格納したいって言うんでしょ
それなら、>>942で合ってるよ
>>944>>939を別の解釈をしてるなら、それに
従って答えるべし
949944:02/09/15 12:23 ID:???
>>948
確かにこちらとは解釈が違うネ。。
こちらなりの回答は>>947でしたので>>939のレス待ちってことで
950942:02/09/15 12:25 ID:???
>>947
じゃ、同じ質問を返そう
$arujoukenって??
$array[$i] = $i; って?
>>939は数値を格納したいっていってるのよ
配列の番号を格納していなんて言ってないよ

951944:02/09/15 12:27 ID:???
>>950
わかりやすくしたつもりだが…<$arujouken
もちろんマッチングだとは思うので仮にこうしたまでだが。
$array[$i] = $i;
なんて書いてません。
952942:02/09/15 12:28 ID:???
>>949
こちらの回答がいちいち後手に回ってしまいスマソ
ここのところ質問者が質問しっぱなしが続いてるね
まさかネタじゃないだろうね
953944:02/09/15 12:31 ID:???
>>952
まだ質問されてから1時間も経ってないYO
住人でもなきゃすぐにレスなんてこないかと
954938:02/09/15 12:36 ID:???
>>945
そうなのですか。一応検索はかけていたのですが
そこまで説明しているとこは見つけられなかったもので。
説得されました。require使います。
>>946
だそうです。
955あ@939 ◆4WVJTVm. :02/09/15 12:48 ID:s9DZ7/nK
あ です。
>>939の質問に答えてくださったかたがた、ありがとうございました。
陰様で、いろんなかたがたの意見を参考に服用していって、さらに素晴らしいものが出来上がりました。
本当にありがとうございますた。
956944:02/09/15 12:57 ID:???
>>955
本人がいいなら落着。
957nobodyさん:02/09/15 13:48 ID:kinL8j5T
「aaaかbbb」が出てきたら順目を返す物をつくりたいんですが、
正しく動きません。何で?

$xxx = index($yyy, "aaa"|"bbb");
958 ◆JAPH9PWA :02/09/15 14:11 ID:???
>>957
質問に答える前に一つ聞きたいんだけど、どこでそういう構文を学んだの?
正直、凄く興味がある。
9593PIO ◆3pIoOHKo :02/09/15 14:14 ID:???
indexって位置を返すんじゃなかたっけ?
960 ◆JAPH9PWA :02/09/15 14:33 ID:???
>>959
いや、それ以前にビットOR演算子が…。
論理OR演算子なら百歩譲ってああ誤解するのも頷けるけど、なぜビットOR演算子が…。
961nobodyさん:02/09/15 14:39 ID:???
答えられないのか?
9623PIO ◆3pIoOHKo :02/09/15 14:41 ID:???
>>961
つーか>>957は何を言いたいのかワカラン
963nobodyさん:02/09/15 14:43 ID:???
どっちか先に出現するほうの位置を晒せってことだろ?
964nobodyさん:02/09/15 14:47 ID:???
>960
正規表現とごっちゃになってるとか。
965nobodyさん:02/09/15 14:49 ID:kinL8j5T
>>963
そうだよ
966nobodyさん:02/09/15 14:54 ID:???
>>965
ちがうんじゃない?
aaaかbbbが出てくるindexを全部出してちょってことじゃ?
こんなのどうかにゃ:
$yyy = "bbbabcdaaaefghbbbcdefaaa";
&search_index($yyy, "aaa");
&search_index($yyy, "bbb");
sub search_index {
my ($string, $substring) = @_;
my $index = $start = 0;
while($index = index($string, $substring, $start) + 1) {
last if $index < 0;
print $index - 1, "\n";
$start = $index + length($substring);
}
}

順目って用語あるの?
967nobodyさん:02/09/15 14:55 ID:???
GyRCJSolXiUoJGkySyRAJEohKhsoQg
968nobodyさん:02/09/15 14:56 ID:???
>>966
本人が言ってるのに「ちがうんじゃない?」とは、これ如何に!
969nobodyさん :02/09/15 14:57 ID:???
誰か〜
次スレ立てて〜
9703日目:02/09/15 14:57 ID:AwUTEWn/
フォームを設けて、そこへあらかじめ文字を入れておきたい場合、

$temp="ここに<br>入力"
print <<"HTML";
<textarea >$temp</textarea>
とすると、
フォームのテキストエリアに
”ここに<br>入力”と表示され<br>が入ってしまう。
”ここに
入力”
とちゃんと改行させるにはどうすればいいの?
971nobodyさん:02/09/15 14:59 ID:???
>>968
本人なら本人だって言って発言しろ
972nobodyさん:02/09/15 14:59 ID:???
>>970
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
973nobodyさん:02/09/15 15:03 ID:???
>>971
その為にID晒してんだろが! 注意力散漫さんはプログラミングやるには不向き
974nobodyさん:02/09/15 15:09 ID:???
>>973
おまえにはネチケットに何もあったもんじゃないな
9753PIO ◆3pIoOHKo :02/09/15 15:09 ID:???
>>970
$temp =~ s/<br>/\n/ig;
976nobodyさん:02/09/15 15:10 ID:???
>>974
日本語不自由ですか?
9773日目:02/09/15 15:13 ID:AwUTEWn/
>>975 なるほどっ。助かりました。
978nobodyさん:02/09/15 15:14 ID:???
>>957
/aaa|bbb/;
$xxx=length $`;

オマエラミンナ ムダニアオリスギ
9793PIO ◆3pIoOHKo :02/09/15 15:17 ID:???
次スレ立てました
1000取り厨房以外はhttp://pc.2ch.net/test/read.cgi/php/1032070299/へ
980nobodyさん:02/09/15 15:27 ID:???
GyRCRnk5fEo0JEMkRiRJJCY7VyQmISkbKEI
981nobodyさん:02/09/16 03:22 ID:???
981ゲト
982nobodyさん:02/09/16 21:35 ID:PzkShHDm
    あんま調子乗んなよ・・・
        __
      /_、_\
      (  _ノ` )  ズキューン
   /⌒ /_ \    , :,
  ( ;y=ー(  _ノ` )・∵: ; 
    / と ̄ ̄_)
   / /\  ̄ / ̄\ ←◆3pIoOHKo
 _| ̄ ̄ \ /  ヽ \_
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
983perl初心者:02/09/17 00:56 ID:i0fZtbTD
申し訳ありません。前スレに同じような質問があったらしいのですが、dat落ちしてまして……(T_T)

TMPL_LOOPのネストって出来るのでしょうか? もし出来るとしたら、その方法は?
テンプレではTMPL_LOOPをネスとさせておいて、単純に配列に配列を格納すればいいのでしょうか?
984nobodyさん:02/09/17 01:14 ID:???
>>983
正解 つーか自分で試せ
次スレ http://pc.2ch.net/test/read.cgi/php/1032070299/
985nobodyさん:02/09/17 01:23 ID:jlRQ/iYc
cookieについてです。
他のブラウザは大丈夫なのにMAC版のIEでのみcookieが書き込めないと言う
現象がおきて困っています。考えられる原因はなんでしょう?
手法としては通常通りHTMLヘッダの前にprint文でSet-Cooki:を出力しています。
986nobodyさん:02/09/17 02:53 ID:???
1000!
987nobodyさん:02/09/17 06:28 ID:yAKo74Fa
>>985
> 他のブラウザは大丈夫なのにMAC版のIEでのみcookieが書き込めないと言う
日本語の値をMacOSX用IE5.2のcookieに書き込む場合には、
Jcode.pmを利用して、UTF-16形式にエンコードする必要が
あるかもしれません。
988nobodyさん:02/09/17 07:57 ID:PJt6wEZh
988ゲト
989nobodyさん:02/09/17 08:45 ID:???
 
990nobodyさん:02/09/17 08:45 ID:???
  
991nobodyさん:02/09/17 08:45 ID:???
   
992nobodyさん:02/09/17 08:45 ID:???
    
993nobodyさん:02/09/17 08:45 ID:???
     
994nobodyさん:02/09/17 08:45 ID:???
      
995nobodyさん:02/09/17 08:45 ID:???
996nobodyさん:02/09/17 08:45 ID:???
    
997nobodyさん:02/09/17 08:46 ID:???
         
998nobodyさん:02/09/17 08:49 ID:???
>>989 .. >>997
くだらんことするな
998ゲト
999nobodyさん:02/09/17 08:55 ID:???
1000
10001000:02/09/17 08:55 ID:???
コテハンは死ね!
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。