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

【Perl】初心者コーナー Part15

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん02/08/08 23:19ID:???
いらっしゃーい、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あたりを見よう。
0002102/08/08 23:20ID:???
[過去ログ]
Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
 DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
 DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
 DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
 DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/php/kako/996/996075607.html
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/php/kako/1009/10095/1009549309.html
Part10 http://pc.2ch.net/php/kako/1014/10145/1014556702.html
Part11 http://pc.2ch.net/php/kako/1017/10172/1017201229.html
Part12 http://pc.2ch.net/php/kako/1019/10199/1019917048.html
Part13 http://pc.2ch.net/php/kako/1022/10227/1022731565.html

[ひまぢん氏のミラー]
Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html
0003nobodyさん02/08/08 23:20ID:???
2げと
0004nobodyさん02/08/08 23:20ID:???
4get
0005102/08/08 23:20ID:???
[総合]
 ・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/
0006102/08/08 23:21ID:???
[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/

0007nobodyさん02/08/08 23:21ID:???
zusa----------------------------------------------------------------
0008102/08/08 23:21ID:???
[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/
0009102/08/08 23:22ID:???
なんとか>>2-10に収まってホッと一息
0010nobodyさん02/08/08 23:22ID:???
--------------------------------終了---------------------------------
0011nobodyさん02/08/08 23:23ID:???
>>10=前スレ1000 死ね
00121102/08/08 23:25ID:???
コテハンは死ね
00131102/08/08 23:27ID:???
>>12=10
騙んなボケ
0014nobodyさん02/08/08 23:29ID:???
香ばしいな
00151102/08/08 23:33ID:???
>>12=10
騙んなボケ
00161102/08/08 23:33ID:???
>>12=10
騙んなボケ
00171102/08/08 23:34ID:???
>>12=10
騙んなボケ
0018nobodyさん02/08/08 23:42ID:???
荒れてるな。ぷっ
0019nobodyさん02/08/08 23:56ID:???
         \   !   |!  /::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   |
0020nobodyさん02/08/09 03:31ID:bBZPsuqF
ここ(太洋社のコミック発売一覧)

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

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

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

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

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

use lib './module';

test.cgiに

use lib './module';
use module;

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

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

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

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

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

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

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

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

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

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

プランテック製の「 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/
0053nobodyさん02/08/10 00:12ID:???
>>49
そんなの短くできないって。あきらめなさい。

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

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

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

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

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

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

>$value=~s/$_/'&'.$slist{$_}/eg for keys %slist;
ハッシュキーをまわすと & が出現する順番によっては整合性が・・・
0059nobodyさん02/08/10 03:55ID:???
>>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,'&"<>,'); ね。
00602002/08/10 04:07ID:2iXM5pV6
>>21 さん
遅ればせながらありがとうございました。
おかげさまで無事に綺麗なHTMLを取得できましたー。
0061nobodyさん02/08/10 06:08ID:???
>>どっちにしろ>>49のままの方が速いだろうが、、
>>んで最終的にはこれを勧めておく。
>>use HTML::Entities;
>>$value=~tr/+/ /;
>>encode_entities($value,'"<>&');

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

swap
↓ ↓
n a m c o

m a n c o

manco

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

$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)}
0065nobodyさん02/08/10 17:15ID:???
読むのすらいやになる。
0066nobodyさん02/08/10 17:22ID:???
http://www.cse.iitk.ac.in/news/primality.pdf
これの4ページ目の13行。
0067nobodyさん02/08/10 17:43ID:???
$_='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
0068nobodyさん02/08/10 19:15ID:???
モジュールの質問なんですが、

&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に受け渡したいのですが、、
0069nobodyさん02/08/10 19:29ID:???
>open(DATA,">$_[0]") || exit; print DATA $_[1];
これの意味がわかってやってんだろうな。
0070nobodyさん02/08/10 19:30ID:???
あ・・もしかしたら・・・ハッ(゚д゚)!
00716802/08/10 19:44ID:???
open(DATA,">$_[0]") || exit;
print DATA $_[1];

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

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

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

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

>>73

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

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


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

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

全国デ−トスポット情報も有ります
0081ど厨房02/08/10 23:41ID:???
フリーウェアなどをDLする時にoctetstreamが無い!のようなエラー表示が出て
困ってます。でMSのactiveXギャラリーに行けと言う表示が出たので行ってみ
たけど何をDLしていいのか・・罵倒覚悟です。誰か教えてください・・・
0082nobodyさん02/08/11 02:25ID:uMk9XU0w
>>81
PERLと関係あるのか?
漏れが無知なだけか
0083nobodyさん02/08/11 11:47ID: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";
0084nobodyさん02/08/11 12:01ID:???
>>83
それだけじゃ答えようがあまりないが、とりあえず
リモホを取得したらログに保存しないとだめぽ。
0085nobodyさん02/08/11 12:32ID:U9P8YsFW
>>84
ログには保存しているんです。
ただ、HTML出力のソースを見ると、>>83のように、
$ENV{'REMOTE_ADDR'}; したものを$adみたいにして出力するような記述なんですね。
ログから引っ張ってるような記述が見当たらない…
0086nobodyさん02/08/11 12:37ID:???
>>85
【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/l50

上のスレのお世話になってはいかが?
00878502/08/11 12:41ID: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として吐き出さないように記述してあったからみたいです。
0088nobodyさん02/08/11 13:10ID:???
最後の一行に激しい勘違いがあるようだが、、、
00898502/08/11 13:15ID:U9P8YsFW
もう一個のCGIでもテストしましたが、
こちらはDBファイルのデータがタブ区切りで、読み出しもただ変数を羅列しているため、
その順番どおりに表示するようになっていました。

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

俄然perlが面白くなってきますたよw
00908502/08/11 13:16ID:???
>>88
それはどういったことでしょうか?
0091nobodyさん02/08/11 13:37ID:???
「吐き出さないように記述してあった」って書き方がひっかかっただけ。
スクリプトはちゃんと吐き出してる。$ipとして。
00928502/08/11 14:09ID:???
>>91
そうですね。DBが空だから表示はされないけど処理はされてるんですよね。
語弊があったようです。
0093nobodyさん02/08/11 16:05ID: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を使い分けたりする意味はあるのでしょうか?

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

0102nobodyさん02/08/11 19:57ID:???
あほだ。
0103nobodyさん02/08/11 20:32ID:???
掲示板に、〜日以内に更新されたら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";}

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

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

$now - $times

で何秒たったか分かる

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

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

どうも、リロード時間や文字色等の情報まで全部ついてきてしまってるようで…
これは固有のバグでしょうか。
0111nobodyさん02/08/12 01:58ID:???
改造間違いの可能性。
0112nobodyさん02/08/12 02:02ID:y1lt6txe
>>110
でも、他サイトの無改造のゆいぼっとにクッキー全部消去してからお邪魔して
退室したあとにまた入室画面で名前欄を見ると同じようになってるんですよ。
011311002/08/12 02:11ID: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";
0114nobodyさん02/08/12 02:14ID:???
タブってデータとして、許されてたっけ?
011511002/08/12 02:41ID:y1lt6txe
とりあえず、\t が_ になってしまうならと
= split(/\t/, $cooks);

= split(/_/, $cooks);

にしてしまったらうまくいきました。
しかし、環境依存でバグが出るかもしれませんね。
UNIXやMACのクッキーはよく知らないんですが。
011611002/08/12 02:47ID: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のバグっぽい。
ということは、それ以外のブラウザではやはり問題が起きてないかもですね。
0117nobodyさん02/08/12 02:50ID:???
本当にIEのバグかね。
IEが正しくて、ほかが間違ってる















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

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
















IEが間違ってて、そのCGIも間違ってる。
そして仕様と言い張る。
0120nobodyさん02/08/12 03:16ID:???
>>110
制御文字はNG
http://www.ietf.org/rfc/rfc2965.txt
0121nobodyさん02/08/12 03:20ID:???
つまりネスケ4.7がわるかったと。









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

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

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

そう難解でもないかと>133
0140nobodyさん02/08/13 15:47ID:???
>>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の方が効率が良いと出ました.
以下が実際に使用したソースです.
0141nobodyさん02/08/13 15:47ID: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;',
});

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

0147nobodyさん02/08/14 00:31ID:???
できる。
$count = &con();
014814702/08/14 00:31ID:???
わりぃ。解釈間違えた。
0149nobodyさん02/08/14 00:54ID:???
&$value;
0150nobodyさん02/08/14 08:03ID:???
あのー、ネットでこんなの拾ってきたんすが、
なんでしょかね?これ??
#!/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)}
0151nobodyさん02/08/14 08:46ID:???
>>150
素数判定(多項式時間)
0152nobodyさん02/08/14 14:31ID:8dp0qhB8
ssendmailでHTML形式のメールを送信したいのですが、
HTMLソースをHTML形式のメールに変換するスクリプトをご存知ないでしょうか?

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

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

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

print "購入申し込み";

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

と書いて実行すると、

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

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

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

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

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

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


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

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分) (最新)
0164nanasi02/08/15 04:12ID:???
はじめまして。外部からあぷされた画像を呼び出した場合TOPに移動するように
したいのですがどのようにしたら良いのでしょうか
0165nobodyさん02/08/15 04:22ID:???
>>164
説明する能力をつけてから来なさい。
0166nanasi02/08/15 05:50ID:???
はい。たしかに学生なので文章能力ありません。これで分かりますか?
http://www.cj-c.com/cgi_s/upb.htm (UPP BORD)
を設置してるのですがあっぷした画像のみを他サイトの掲示板で
転載されて困ってるので他サイトからあぷされた画像を閲覧した場合
自分のHPのTOPに飛ぶようにしたいのです。
あっぷされた画像直リンの場合弾きたいということです。
どうか方法教えてください
0167nobodyさん02/08/15 11:08ID:???
>>166
画像の直リンク防ぎたいなら .htaccess の出番かと
「.htaccess 画像 制限」 こんな感じのキーワードで
googleで検索すれば解説してるサイトみつかるべ。
これ以上はスレ違いなので、あとはご自分で・・・
0168エロ助02/08/15 11:32ID: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
0169nobodyさん02/08/15 11:34ID:???
マルチは放置。
0170nobodyさん02/08/15 14:23ID:???
画像のアップローダーでアップロードされた画像の
縮小画像を生成したいんですが、
私の知っている方法ではroot権限の関係で共有スペースでは不可能なのですが
root権限の関係無しに縮小画像を生成する方法はありますか?
0171nobodyさん02/08/15 15:09ID:???
>>170
   / ̄ ̄ ̄ ̄ ̄ ミ
  /   ,――――-ミ
 /  /  /   \ |
 |  /   ,(・) (・) |
  (6       つ  |
  |      ___  |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |      /__/ /  <  HTMLでできるだろ!
/|         /\   \__________
0172nobodyさん02/08/15 15:33ID:???
>>170
GDを使うといい。GD.pmで検索しる。
http://member.nifty.ne.jp/hippo2000/perltips/GD.html
017317002/08/15 17:21ID:???
>>172
ありがとうございました!
じっくり読んでみます!!
0174アップローダを作り隊02/08/15 18:04ID:OdAnllx3
ファイルアップローダを作りたい、と思うこの頃ですが、
どうもわからんのです。
フリーのアップローダのソースを見ても掲示板とかが邪魔で
肝心のアップローダの仕組みがわからず。。。
perlのリファレンス本を何冊か読んでも、
何をアップローダに使えばわからず。。。

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

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

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

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

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

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


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

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

require 'XXX.cgi';

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

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

$aa = 1;
$bb = 2;

require 'XXX.cgi';
&XXX;

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

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

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

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

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

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

sub XXX {

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

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




























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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ちゃんと動作してるcgiを(無意味ですがうっかり)書き換えなしに
上書きアップロードしたら動作しなくなってしまいました。
なぜなんでしょうか?サーバー側には問題ないようなんですが・・・
0288nobodyさん02/08/21 09:09ID:???
>>287
それを「ちゃんと動作していない」とゆう。
パーミッション以外、指摘の仕様が無い。
0289nobodyさん02/08/21 09:59ID:???
あとバイナリモードで送信したか,ちゃんと動いていた(過去形)というのが妄想だったか,
「書き換えなしに」というのが嘘っぱちか.
0290送料02/08/21 10:12ID: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];

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

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

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

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

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

$soryo = "$pref{$form_data{'pref'}}";
0298nobodyさん02/08/21 21:36ID:???
>>295
すごいいきなりバカな質問なんですけど意味が分からない
どうしてここに書き込んだんですか??
0299nobodyさん02/08/21 21:54ID:???
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;

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

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

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

$hoge{キー}で値が呼べる。
0305 ◆RbZL6NeQ 02/08/21 23:13ID: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 '>'}}
}
0306 ◆RbZL6NeQ 02/08/21 23:16ID:???
>>305
@_=($agent,...)
ライブラリのわりに、コピペして'1;'忘れ
0307nobodyさん02/08/21 23:26ID:???
ライブラリのコメントって ;# のがイイんじゃなかったっけ
0308nobodyさん02/08/21 23:29ID:???
>>307
;# がよくて # が悪い?????
0309nobodyさん02/08/21 23:37ID:???
307=jcode.plでモノを考えた典型的なCGI厨房
0310_gunzip02/08/21 23:54ID:???
>>307-309
;# コメント
の形式のコメントが、たまに使われることがあるのは、
そのスクリプトが -P オプションでCプリプロセッサに前処理させることを前提としている場合、
#コメント がプリプロセッサディレクティブと誤認されないようにするため。

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

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

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

もう来てるみたいだけどな (w
032031102/08/22 01:32ID:???
>>319
>>315が出てこなければ問題は解決する。
0321nobodyさん02/08/22 01:41ID:lGXorje/
>>320
糞頭じゃ足りない事が、人間には沢山有るんでね
0322nobodyさん02/08/22 09:04ID:???
>>299
処理する順番を変える。
log が eof に達したら「次のページへ」を非表示にする。
0323nobodyさん02/08/22 12:42ID:C0K12Syt
初心者の質問です。
KENT WEBの宅鯖計画を見ながらソフトのインストールを試みたんだけど
Active Perlのインストール中に警告ダイアログが出て
どうしてもうまくいきません。
うまくやる方法をうまく教えてください。
0324nobodyさん02/08/22 12:43ID:???
どんな警告が出たのかを書かないと誰も答えられない。
032532302/08/22 14:34ID: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."
です。
0326nobodyさん02/08/22 14:41ID:???
MSIのバージョンをあげてみろ、といってみる。
032732302/08/22 16:01ID:C0K12Syt
MSIのバージョンのあげ方もわからない・・・

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

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
0329nobodyさん02/08/22 21:37ID:???
>>328
やさしいな。
0330初必者02/08/22 21:52ID:???
いきなりスイマセン
↓これおかしいですか?動かんようになったんです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CGI設置サーバ:aaa.com
メーラーのSMTPサーバ:mail.ccc.or.jp
Mail-1:xxxxx@aaa.com
Mail-2:xxxxxxx@bbb.com
Mail-3:xxx@ccc.or.jp
Mail-4:xxx@ddd.co.jp

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$val="65";

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

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

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

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

\x36\x35

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

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

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

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

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

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

こんな感じのページを置いておく。
0391nobodyさん02/08/26 12:40ID:???
>>388
ダメだ
0392nobodyさん02/08/26 13:09ID:???
>>388
?
0393nobodyさん02/08/26 13:36ID:???
>>391
じゃぁ .htaccess でも池
http://pc.2ch.net/test/read.cgi/php/1019888234/l50
0394nobodyさん02/08/26 13:58ID:???
>>387
同時アクセス数とか、転送バイトとかか?>>389か?
039539102/08/26 14:21ID:???
>>393
オレじゃねーよ、ボケ!
0396nobodyさん02/08/26 15:38ID:IyYWB8TD
kent-webのアップロード式掲示板のやつで
着メロをうpできるようにするにはどうすればいいんですか?
0397nobodyさん02/08/26 17:40ID: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;

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

おねがいいします。
0398nobodyさん02/08/26 17:50ID:???
>Missing right bracket
右ブラケットが欠けている。
0399nobodyさん02/08/26 18:01ID:???
たいがい、エラー行の前に原因がある。
040029902/08/26 20:06ID:???
>>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);
でした

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

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

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

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

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

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

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

299=404?
0414nobodyさん02/08/27 12:08ID:???
>>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板へ。
0415nobodyさん02/08/27 13:09ID:???
ここの掲示板みたいに、プロクシ規制の方法を教えてください。
0416nobodyさん02/08/27 13:56ID:???
Perlの「コーディング」で困ってる人のスレです。
0417nobodyさん02/08/27 15:55ID:???
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つしか画像が表示されません。
いくつも画像を表示できないのでしょうか?
0418nobodyさん02/08/27 15:59ID:???
0419nobodyさん02/08/27 17:12ID:dvEqdJRZ
i-mode絵文字対応フォームメールを設置したいのですが、
文字化け対策がうまく行きません。
(文字化けする絵文字としない絵文字がある。)
処理をうまくしてる人はどうやってやってます?
0420nobodyさん02/08/27 17:29ID:???
>>419
&#xxx;という形式で送信されるから適切に処理する
0421nobodyさん02/08/27 17:30ID:???
>>417
ヘッダーに空白行(\n\nってとこね)を出力した後には、もうContent-typeとかやってもダメです。
つまり出力できる画像は1つだけです。
042241902/08/27 18:00ID:???
>>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);
こんな感じにしたんですけども駄目なんです。
0423nobodyさん02/08/27 23:36ID:???
>>422
http://pc.2ch.net/test/read.cgi/php/1028052835/l50
0424nobodyさん02/08/28 02:34ID: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);
0425nobodyさん02/08/28 03:56ID:???
>>424
とりあえず元ソースは全放棄したほうがいいと思った

#置き換え対象文字列
$mail="xxx@xxx.com";
#置き換え文字列
$replace="hogehoge@hoge.com";

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);

みたいなのでダメなんすか?って全部書いちゃったよおい。
042642502/08/28 04:06ID:???
どでかい配列作るのが嫌なら(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;

はいオナニー終わり!
0427nobodyさん02/08/28 10:57ID:3EY8gxC5
特定の曜日、日時にコンテンツのhtmlを自動生成したいのですが
来訪者の度にCGIを実行して、時刻をチェックする方法以外ないでしょうか?
この方法だと、来訪者が増えるたびに処理が重くなってしまいます。
0428nobodyさん02/08/28 12:46ID:???
>>427
crontabが使えなければ、それしかないかな。
0429nobodyさん02/08/28 14:24ID:???
>>425
一応、エスケープね。
0430nobodyさん02/08/28 15:34ID:z8uBgDDw
正規表現で、配列を変数展開させたいのですがうまくいきません。
m/^hoge$array[0]hoge/;
↑このように書いても、$array[0]はうまく展開されないんです。
どなたかいい知恵貸してください。
おながいします。
0431nobodyさん02/08/28 16:42ID:???
>>430
正規表現中のブラケット [] は文字クラスを表します。
foreach などで他の変数に代入してから処理する等の回避方法が考えられます。
043243002/08/28 16:48ID:???
>>431
むう、やはり正規表現中で[]を使わないように回避するしかないのですね。
了解しますた!
ありがd
043343102/08/28 17:11ID:???
>>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"}
043443002/08/28 18:25ID:???
>>433
すまそ、おっしゃる通りうごきますた。
正規表現を解釈するよりも前に変数展開してるんでしょうね、きっと。
>>430で「うまく展開されない」と書きましたが、別の原因でした……
…………………吊ってくるっす ゴメ
0435nobodyさん02/08/28 18:44ID:???
配列操作に関する質問です

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

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

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

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

前教えてもらったのは"特定のURLから飛んできた人を弾く"
if ($ENV{'HTTP_REFERER'} =~ /aaa/) {
print "Location: abab\n\n";
exit;
}
(aaaから来た人をababに飛ばす)
"特定のURL以外から飛んできた人を弾く"を....
0439結構前スレ888さん02/08/28 19:39ID:99E4DmXW
>弾きたのだけど
弾きたいのだけど
044043702/08/28 19:46ID:???
あー。見えにくいかもしれんけど、 dat が拡張子ならピリオド . が必要ってことで。
あと、ファイルテスト演算子 file test operator ってのもあるから。
それで良ければ調べてみるヨロシ
0441nobodyさん02/08/28 19:48ID:???
>>438-439
何?
0442結構前スレ888さん02/08/28 19:56ID:99E4DmXW
>>441
つまり外部リンクできた人を弾きたいと(.cgiに)
0443nobodyさん02/08/28 20:25ID:???
>442
else か not か !
0444結構前スレ888さん02/08/28 20:44ID:99E4DmXW
notかな
0445nobodyさん02/08/28 20:52ID:???
unless
044643502/08/28 21:03ID:???
>437
そうでした・・・穴掘って埋まってきます・・・
0447nobodyさん02/08/28 21:22ID:???
>>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のこの問題はでてきます。
044841402/08/28 21:38ID:???
>>447
いや、板違いってゆうのは撤回しますが、結局 ゲイツ が悪いんでしょ?
えーと、現在のところ、どうも原因不明の様ですし、初心者向けの話題でもないようですから。
Active Perl + Win の新スレ立ててみたらどうでしょうか。
0449437じゃないけど02/08/28 22:28ID:???
>>446

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

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

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

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

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



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

です。
045302/08/29 05:06ID:???
みようみまねでスキンを使った掲示板をいじってるんですが、
スキンから読み込んだのを変換するとき、
$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」とかもあったんですが・・・

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

>>453
>>1
0455nobodyさん02/08/29 07:09ID:???
>>453
検索の仕方を聞いたほうがいいんじゃねーの?
http://www.google.com/search?num=30&hl=ja&inlang=ja&ie=Shift_JIS&newwindow=1&q=%90%B3%8BK%95%5C%8C%BB+%8FC%8F%FC%8Eq&lr=lang_ja
045648202/08/29 07:41ID:8thG1OyK
http://ascii.room.ne.jp/~puchico/gokuaku.html
( ´,_ゝ`)誰かここのパスワード解いて教えろ
オエの知識じゃわ が ん ね !!
0457nobodyさん02/08/29 10:53ID:???
匸0 ゚д゚)マルチ氏ね
http://pc.2ch.net/test/read.cgi/hack/997452913/101
045802/08/29 14:55ID:???
>>455
有難うございます。
つまり、
iは「大文字小文字を区別しない」で、
gは、「全体から探す」ってことで、
oは、「変数を1度しか展開しない」ってことなんですね

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

「m」が「/」以外のディリミタを使えるようにするためのものですよね?
同じ意味なのでしょうか?
違ったら、この「m」とか「s」入る場所?の名称なんかを教えて頂けないでしょうか?
検索すら出来ない状況なので・・・ホントすいません。
0459nobodyさん02/08/29 15:00ID:???
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側の問題なのか
どうやって回避したらいいんでしょうか?
046029202/08/29 15:01ID:???
$XXX =~ s/Z/A/;
$XXXに入ってる「Z」を「A」に書きかえる。(最初に見つかったやつだけ)

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

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

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

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

>>466
$" という変数を見てみな。デフォルトでは半角スペース入ってるから。
この変数はprint "@xx";の時に区切りとして使うものを入れてるモノ。
先だって
$" = '';
としておけば半角スペースは無くなる。
0471nobodyさん02/08/29 15:30ID:???
>>469
アドレスが知りたいのなら、IPアドレスがいいじゃないかアケチくん。
047229202/08/29 15:32ID:???
$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;
}
047346902/08/29 15:33ID:oKWRspRK
>>471
そうなのかしら。
でもぱっと見わかりやすいのもいいわ。
っていうかじゃぁ両方で。
047446902/08/29 15:35ID:oKWRspRK
およよ。
そう、REMOTE_HOSTでやってみたら
何も取得できなかったんですよ。
上のはアドレスから変換してるのでしょうか?
047529202/08/29 15:39ID:???
>>474
nslookというサブルーチンに、IPアドレス$ENV{'REMOTE_ADDR'}を教えて
リモートホストを教えてもらって、空っぽだった$ENV{'REMOTE_HOST'}に代入するコードじゃよ。
0476nobodyさん02/08/29 15:49ID:???
>474
何を取得できてるの?

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

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

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

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

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

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

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

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

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

ソースは495です。お願い致します。
(改行が多く書き込めなかった為、分けました。)
049542402/08/29 19:47ID: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);
0496 ◆hIr6YukI 02/08/29 19:49ID:???
sage
0497nobodyさん02/08/29 20:22ID:???
>>494-495
何をやりたいのだか解らないんだけど。
>>425 をこうするって事かしら。

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

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

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

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

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

置換え前の文字は$mail以外、変数では無いので
マッチさせる事が出来ない状態でした。
ファイルから文字を取得し、変数に格納したいと思っていました。
入力フォームを作り直します。
050550502/08/29 23:31ID:kiu2pPYa
sub make_html{
open(HTML, ">hoge.html") || &error("HTMl化に失敗しました。");
print HTML &end;
close(HTML); }
開いたファイル(hoge.html)に書き込みたくて上のように記述したのですが、
ファイルを開いて直接サブルーチン(&end)を使うのは無理なのでしょうか。
0506_02/08/30 00:12ID:???
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < >>505んな こたァない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0507nobodyさん02/08/30 10:39ID:???
>>506
end がどうなってるか一応聞いてやれよ。
050850502/08/30 13:07ID: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; }
こんな感じです。
0509_02/08/30 13:12ID:???
>>508
exit; はいらんよ、だって書きこんだ後 close している意味ないじゃん。
0510 02/08/30 13:29ID:UPHK1/CW
フォントサイズの変更や入室後の名前変更ができないチャットで、
フォントサイズを大きくしたり、名前を変更している人がいました。

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

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

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

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;
}
0521_02/09/01 11:05ID:???
ちょっと見づらいかな、もいちど

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;
}
0522 ◆4XfSMGTg 02/09/01 13:31ID:???
超絶ハッカー
何でも聞け
0523nobodyさん02/09/01 13:34ID:???
>>522
ルビ厨でつか?
0524 ◆4XfSMGTg 02/09/01 13:39ID:???
聞け
0525 ◆4XfSMGTg 02/09/01 13:41ID:???
    
0526 ◆4XfSMGTg 02/09/01 13:44ID:???
Perl上級車俺がどんな質問二問k0尾たっるぞ!
0527nobodyさん02/09/01 13:54ID:???
彼女を逝かせる超絶テクを教えてください。
052851702/09/01 15:43ID:+nm+B08x
>>518
やっぱりbreadth-firstサーチをしないとできないってことっすかね?
>>520,521
ありがとうございます。が、より一般的なケース(リファレンスの構造を問わない)が対象なのです…
052951702/09/01 15:47ID:+nm+B08x
内部構造的にはGCのためのリファレンスカウントがあるはずだとおもうので、
それをどうにかして逆に辿れないものかと思うのですが…
0530nobodyさん02/09/01 16:23ID:oCDCWNWk
◆4XfSMGTg はバッカーですか?
0531 ◆4XfSMGTg 02/09/01 16:27ID:A6Gp7Ink
会社員で日曜日によく来ます。
0532nobodyさん02/09/01 17:54ID:???
ここは初心者コーナーとは思えない
0533_gunzip ◆H/XdoCNg 02/09/01 18:23ID:???
>>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'}
053451702/09/01 23:45ID:???
>>533
そうですよね…、クイックハックならData::Dumperを使うのが一番手っ取り早いんですが、
リファレンス構造を全てtraverseするので実行速度が…
ダイレクトに辿るとしたっら、やっぱり要素ごとにリファレンス元を
保持するようなarrayを持たせるしかないですかね。。
0535nobodyさん02/09/01 23:58ID:???
何に使うのか分からないのだが...
デバッガでも作ってるの?
0536nobodyさん02/09/02 01:22ID:???
WebデザインとWebプログラミングってどう違うんですか?
ネット初心者なんで本当に分かりません。誰か教えて下さい。
0537nobodyさん02/09/02 01:29ID:???
Webデザイン
HTML、CSS,JavaScriptやブラウザーなど

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

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

>コンパイラー
落ち着け。
ActivePerlでも落としとけ。
0542nobodyさん02/09/02 02:48ID:???
複数のファイルを読み込んでsortさせて表示したいのですが。
sortはできたのですが
opendir(DIR, "$logdir") ;
@2ch = readdir(DIR);
closedir(DIR);
ファイル名を読み込んでいる様子で。
検索してやり方を探してみたのですが自分では分かりませんでした。
アドバイスお願いいたします。
054351802/09/02 06:08ID:???
>>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 のソース読んでねとしか。
0544nobodyさん02/09/02 06:28ID:???
>542
readdirのリファレンスを穴が空くほど読め
それはopendirしたディレクトリのファイルリストを得る関数だ

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

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

月と日にちを取得したいのですが、
$tm=time;
($sec,$min,$hour,$mday,$mon)=localtime $tm;
とやらないといけないのですか?
$sec,$min,$hourが余計なんですが...
0549nobodyさん02/09/02 10:48ID:???
http://www.big.or.jp/~mio/ga/pl/plman/plvari.htm#変数
0550nobodyさん02/09/02 12:02ID:???
書き込んだメッセージの中にアドレス(http://〜)が含まれていたら
<a href="" target="_blank"></a>
で囲みたいのですが、どうやってアドレスと判定すればよいのでしょうか?
0551nobodyさん02/09/02 12:27ID:???
>>548
仕様です
>>550
$message =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1" target="_blank">$1<\/a>/gi;
0552nobodyさん02/09/02 12:32ID:???
>>548
(localtime(time))[0..8]
055354802/09/02 12:32ID:???
>>551
仕様ですか。
ありがとうございました。
055454802/09/02 12:39ID:???
>>552
なるほど。
$tm=time;
($mday,$mon)=(localtime $tm)[3,4];
で、できました。
ありがとうございました。
0555 ◆JAPH9PWA 02/09/02 12:42ID:???
>>548
(undef,undef,undef,$mday,$mon)=localtime;
055654802/09/02 12:46ID:???
>>555
試してみました。それでもできるんですね。
ありがとうございました。
055755002/09/02 12:51ID:???
>>551さん
できました!ありがとうございます!
055854202/09/02 19:45ID:???
&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したディレクトリのファイルリストを得る関数だ」
の助言で納得できました。おさわがせしてすみませんでした。ありがとうございます。

0559nobodyさん02/09/02 20:49ID:???
>>558
@txt = &lock_open("a.txt");
とか
print OUT &lock_open("a.txt");
とか
chop @txt;
とか。どーでもいーけど。
0560nobodyさん02/09/02 20:52ID:???
>>547
そのガセのネタ元をさらすべし。
0561nobodyさん02/09/02 20:56ID:???
http://www.big.or.jp/~mio/ga/pl/plman/plvari.htm#変数
0562nobodyさん02/09/02 21:11ID:???
>>561
546 じゃなくて 547 ワカル?
0563nobodyさん02/09/02 21:53ID: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;}
#--------------------------
0564nobodyさん02/09/02 21:55ID:???
fork
0565 ◆Perl0MBA 02/09/02 23:13ID:???
>>563
$time=$^T;
if(int($^T-$time)>=10){shutdown(2)}
0566nobodyさん02/09/03 00:10ID:???
>>563
perldoc -f alarm
0567nobodyさん02/09/03 00:40ID:???

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


0574nobodyさん02/09/03 20:21ID:OLMxXVpc
http://www.jsweb.sexheroes.com/index.html
0575初心者02/09/03 23:24ID:KI0OEEO7
すみません質問です.

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

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

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

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

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

詳しい方、またそうでない方も、参考程度の意見で構わないので、
聞かせていただけたら幸いです。
0579bloom02/09/03 23:43ID:L4DD9EQO

http://www.leverage.jp/bloom/start/
0580nobodyさん02/09/04 00:08ID:???
>>575

>577が答え出してるだろ!
0581nobodyさん02/09/04 00:09ID:???
>>578
postはform要素で送ります。
0582 ◆4XfSMGTg 02/09/04 01:22ID:???
ここってCGI厨しかいないの?
0583T女の竹田02/09/04 01:43ID:???
>>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かなにかで送るのが
一番早いかなぁ。
0584nobodyさん02/09/04 02:59ID:???
>>575
http://www.parkcity.ne.jp/~chaichan/qanda/qa3100.htm?02-09-04-02-58
0585nobodyさん02/09/04 09:33ID:???
掲示板でログファイルのサイズが100KB以上になったら末尾要素を削除するという処理をしたいのですがうまくいきません

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

$maxsize = $maxsize * 1000;

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

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

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

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

メールを送る時にID&PASSでアクセス制限をかけたいのです。
どの様に作ったら良いのでしょうか?
0593名無し02/09/04 15:51ID:AttOz/Tz
以前、ここで見かけた様な気がするのですが
回答が書かれているのを見つけられないので
以前、質問した人に代わってお聞きします。
CookieをOnにしないと弾き出してしまう
ここで使っているものみたいなCGIのスクリプトを
扱っているようなホームページは知りませんか?
もちろん、ここにスクリプトを書いて下されば
もちろん、なおさら有り難い事ですが…
0594b02/09/04 16:01ID:07M2lj7H
http://www.jsweb.sexheroes.com/index.html
0595nobodyさん02/09/04 16:12ID:A3ZRMRKj
ある有料サーバーを使っているのですが、ファイルを出力するCGIを
実行する際に、専用のSSLサーバー(ttps://***.site-secure.net/)
を通すとInternalServerErrorが出てしまいます。
どなたか分かる方いたらお願いします。
0596nobodyさん02/09/04 16:19ID:???
>>595
  , - - 、                    /ヽ
 / O  \グヒャッ !       /ヽ、     /  ヽ
 ,, : ,ー, O |          /  _,;, -'''"~~    ヽ
'' ; ∴_ノゝ ゝ         /o    O      ヽ
  ヽ ,;''"~"'';,       /  ┌─┐   ノ(   ヽ
_ノ|  ;;'';;'';;'';;''      |  /    |    ⌒    | <スレ違いもはなはだしいわ!
   ゝ、ヾ  ヾ        | ト、   |         /
 /  ヽ ヾ  ヾ      ヾ、 \ノ        ノ
    ノ\_ヾ  ヾ      /⌒ヽ、 ___/、
       ノヾ  ヾ_ _/  ノ,         ヽ
         ヽ、ゝ     ノ ノ     ハ    ヽ
           ゝ、   ノ  ノ、     ノ ゝ   | )
             ー─一'´  ゝ、        l'´
                         )          /
CGIだけど、なんか質問ある? Part 6
http://pc.2ch.net/test/read.cgi/php/1025930486/
0597nobodyさん02/09/04 17:33ID:???
>>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'});
059859302/09/04 19:35ID:rVUPKdSl
>597さん
どうも有り難うございました。
まさか、こんなに早く教えて頂けるとは思いませんでした。
ところで
expires=Fri, 31-Dec-2010 00:00:00 GMT\n
の部分なのですが、ここの記述は
絶対こうでなくても構いませんよね。
0599nobodyさん02/09/04 20:58ID:???
>>598
別にセッションでいいだろ
0600名無しさん@Meadow02/09/04 21:42ID:rtiaBVOu
>>590
$ perl -e '@ar=qw(a b c d e f); print length("@ar"), "\n";'
11
0601nobodyさん02/09/04 22:06ID:???
ディレクトリーを削除したいのですが、中にファイルが有るので消せません。
一気に消す方法はないでしょうか?ご教授頂けないでしょうか?
0602名無しさん@Meadow02/09/04 22:18ID:rtiaBVOu
>>601
$ perl -e 'system("rm -rf ./dir");'

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


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

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

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

シネ
0610nobodyさん02/09/05 01:33ID:???
>>608
シネ
0611nobodyさん02/09/05 04:56ID:???
web用のCGI作ってるんすけど。
\r\nって\nにしちゃダメなんすか?
特に動作に問題は見当たらないしファイルサイズも削れるんで\nでいきたいんすけど。
それとも不都合な環境とかあるんでしょうか。
0612名無しさん@Meadow02/09/05 05:34ID:???
>>611
改行は、<br>で表すんだから、別に構わんです。
ただ、編集環境がwindows(MS-dos)なら、普通、¥r¥nが自動的に
つくんですが。いちいち変換するの?
061361102/09/05 05:48ID:???
>>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使ってるんだろうとか思ってみただけれす。
レスどうもっした。
0614名無しさん@Meadow02/09/05 06:01ID:???
>>613
http://tohoho.wakusei.ne.jp/wwwxx011.htm
0615名無しさん@Meadow02/09/05 06:12ID:???
ってゆうことで、613さんのは、htmlファイルの
出力だから、問題は起こらないね。
0616611、61302/09/05 06:16ID:???
>>615
多謝。
0617T女の竹田02/09/05 11:51ID: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だよ。
0618T女の竹田02/09/05 11:52ID:???
訂正
続くCR→前のCR
0619ゆゆ02/09/05 12:03ID:FN8hs1rs
CGIチェックする際、サーバで perl -wc やってます。

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

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

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

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

>>629
Java Script はクライアント側で動作しますので、
Perl 文法エラーの可能性が高いと思われます。
0632nobodyさん02/09/05 20:13ID:???
>>629
ジャバスクリプト内に半角「@」があるんでしょうね。ほぼ間違いなく。
0633nobodyさん02/09/05 20:18ID:???
>>632
激しく同意
0634nobodyさん 02/09/05 21:34ID:???
>>630-631
何の意味があるんでしょうか・・・
0635kusokote ◆4XfSMGTg 02/09/05 21:42ID:???
>634
◆4XfSMGTg はオープントリップ kusokote
630 と 631 は別人。
0636nobodyさん02/09/05 22:27ID: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;
0637nobodyさん02/09/05 22:32ID:???
>>636
$object にデータ入ってても
@object にはなにも入ってないように思うが。
0638nobodyさん02/09/05 22:35ID:???
デコード処理が行われていない。
jcode.pl が使われていない。
GETで受け取るため文字制限がある。
0639nobodyさん02/09/05 22:45ID:???
掲示板の過去ログをlogというフォルダの中に1.html 2.html〜、というふうに収納してるんすよ。
フォルダ内のファイル数を数えて、その数+1を新規の過去ログのファイル名にしてるんすよ。
でも、そうすると既に存在するファイルを削除した場合、当然やけどファイル数が減ってしもて
ファイル名がかぶってしまうんすよ。
何か良いファイル名の付け方知りまへんか。
ご教授よろしくお願いします。
0640nobodyさん02/09/05 22:50ID:???
フォルダ内のファイル数を数えるのではなく、別にカウントしとけば。
064163902/09/05 22:57ID:???
>>640
書き込みボタンを押した回数をカウントするとかですか?
もっとスマートなやり方あればよろしこ頼みます。
0642nobodyさん02/09/05 23:04ID:???
>641
空きが見つかるまでリピートぶん回して
open(OUT, "./log/日付とか$i.html");
0643nobodyさん02/09/05 23:08ID:???
ファイル名を日付にするとか。
0644nobodyさん02/09/05 23:11ID:???
>>643
ソレダ!
064563902/09/05 23:16ID:???
なるほどいろいろあるもんですのぉ。
0646T女の竹田02/09/05 23:55ID:???
>>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は好きに変えてね。
064763602/09/06 00:15ID:GoSqrpgT
cgi-lib.plを用いてgetではなくpostにして、改行処理らしきものをつけ無事解決しました。
けれどデコードっぽいことをしてませんが、半角カナいれたりしても何も問題がありません。
のちのちまずいことになりますかね?
0648 ◆XUwkgSoY 02/09/06 00:20ID:???
>>647
>半角カナいれたりしても何も問題がありません。

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

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

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

あとはお好きに
0660nobodyさん02/09/06 01:11ID:???
>>659
PDXGW|L-modeって…
0661nobodyさん02/09/06 01:12ID:???
>>659
すごく初心者なのですがそれをどうしたらいいのでしょうか?
0662 ◆XUwkgSoY 02/09/06 01:16ID:???
>>660,659
ttp://specters.net/cgipon/labo/c_dist.html
ここの内容を要約して見たつもり。
0663T女の竹田02/09/06 01:16ID:???
>>649
うん、セキュリティから言うとJavaScriptじゃ何もしてないのと同じだしね。
この場合みたいにおまけみたいな機能ならいいかなと思った。
0664 ◆XUwkgSoY 02/09/06 01:17ID:???
もとい
>>660,661だ
0665 ◆AMaff.3Q 02/09/06 01:23ID:???
unkooooooo
0666 ◆XUwkgSoY 02/09/06 01:25ID:???
>>661
まずは携帯から掲示板にアクセスして、
うまく動作してない箇所があったら>>659の方法で処理を振り分ける。
一応うちではそうしてるにょろ。
0667nobodyさん02/09/06 03:28ID:???
サブルーチンの事で質問ですけれども。
ぶっちゃけスクリプトのどこに置くのが一番効率いいんでしょうか。
とにかく先頭の方でしょうか
はたまた最下部でしょうか
それとも呼び出す直前でしょうか
どこでもいっしょでしょうか
というかなるべく使わないほうがいいんでしょうか
自分では調べられないので教えてくださいまし。
0668nobodyさん02/09/06 03:50ID:???
変わらないから気にしなくて良し
066966702/09/06 03:51ID:???
はい
0670名無しさん@Meadow02/09/06 05:32ID: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";
0671nobodyさん02/09/06 06:55ID:HPly/0Dw
cgiは今回初めてです。アクセス制限の仕方を教えて下さい。
0672nobodyさん02/09/06 06:59ID:???
>>671
http://www.google.co.jp/search?q=%83A%83N%83Z%83X%90%A7%8C%C0%82%CC%8Ed%95%FB
0673nobodyさん02/09/06 07:04ID:???
和鳥で、KENTのWebPatioを使ってます。
regist.cgiの中の
unlink("$logdir$in{'no'}\.cgi");
unlink("$logdir$in{'no'}\.dat");
なのですが、unlinkでエラーを返してきます。
和鳥だとunlinkは使えないのでしょうか?
0674nobodyさん02/09/06 07:14ID:???
掲示板が昨日まで動いていたのに急に動かなくなりました。
早くどうにかしてください。
0675nobodyさん02/09/06 07:20ID:???
>>673
板違いかな
http://pc.2ch.net/perl/
こっちちゃう
0676nobodyさん02/09/06 07:23ID:???
>>674
板違いかな
http://natto.2ch.net/denpa/
こっちちゃう
067762702/09/06 14:32ID:???
>>670
サンクス
0678nobodyさん02/09/06 15:15ID:???
PerlでのCGIなのですが、スクリプトの負荷を数値化する方法はないですか?
0679T女の竹田02/09/06 17:31ID:???
>>670
文字境界…。
$input = "浮P";
とかにすると化けちゃうよ。
0680ぱぴぷぺ02/09/06 17:41ID:UnlQ9r36
なんとかPerlで動的に画像をブラウザに表示させたろう
と考えてるんだけど、モジュールとか使わない場合、
XBMつーーのがあるのを知ったのですが、
これはモノクロのみカラーは絶対ダメ?
0681nobodyさん02/09/06 18:28ID:???
>>680
>動的に画像をブラウザに表示
なら、Location、binmodeで吐く
「動的に作成した画像をブラウザに表示」
なら、GDが無難か?ファイルにもよるか…
0682nobodyさん02/09/06 18:31ID:???
xbmは白黒のみ
xbm,xpmはIEで表示できたっけ。
0683名無しさん@Meadow02/09/06 20:35ID:???
>>679
perlによる日本語の扱いはeucにするのが常識。
0684T女の竹田02/09/06 23:09ID:???
>>683
ごめん。ついSJISで考えてた。
EUCなら、
$input="横井";
だね。
0685 02/09/06 23:30ID:???
while (!mkdir($hoge, 0705)) { mkdir "$hoge", 0705; }
これってどんな意味があるんですか?
0686nobodyさん02/09/06 23:31ID:???
$hogeがパーミッション705で製作されるまで繰り返す。
0687nobodyさん02/09/06 23:34ID:???
>>685
どうしてもmkdirしたい
{}の中が怪しいがw
068868502/09/06 23:38ID:???
>>686
これはもし、ディレクトリィがあった場合はどうなるんですか?
>>687
どの部分がぁゃしぃですか?
0689nobodyさん02/09/06 23:42ID:Aw2qBvZ4
ある変数の一番最後の文字を別の変数の頭に置くにはどうすればよいでしょうか。
例えば$aaaが4876で$bbbが124だった場合、$aaaを487、$bbbを6124にしたいのです。
「$bbb = chop($aaa).$bbb」 と書いてみたら、結果は$aaaが空白で$bbbが4876124になってしまいました。
どう書けばよいでしょうか。
0690nobodyさん02/09/06 23:57ID:1kVQvMrN
■10.000円の高額収入
1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.bea.hi-ho.ne.jp/paisen/
0691nobodyさん02/09/06 23:59ID:???
>>689
$aaaを""で1文字ずつsplitしたものを配列に入れて@hairetu[-1]で最後の文字を取り出してみる?
069268502/09/07 00:01ID:???
これは?
$ccc=$aaa$bbb;
$cco=$ccc =~ s/\d/\d/g;
$cco=$cco-1;
$ccc=~ s/(\d{1,$cco})([^\n])/$2/g;
$ccc=$ccc$bbb;
069368502/09/07 00:02ID:???
一行ミスった。
$ccc=~ s/(\d{1,$cco})([^\n]*)*/$2/g;
こふだった。
069468502/09/07 00:05ID:???
全然違うので考え直してきます。
069568502/09/07 00:12ID:???
$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";
0696nobodyさん02/09/07 00:17ID:???
>>692-695
おいおい、何をやりたいんだ?
0697nobodyさん02/09/07 00:18ID:???
$aaa = '4876';
$bbb = '124';
$aaa =~ s/(.)$//;$bbb = $1.$bbb;
0698nobodyさん02/09/07 00:20ID:???
>>697
( ´,_ゝ`) プッ
0699T女の竹田02/09/07 00:23ID:???
>>685
そのスクリプトを理解する必要はないし、そのスクリプトから
何かを学ぼうと思わない方がいいと思うよ。

>>689
そのまま
$bbb = chop($aaa).$bbb;
で動くと思うけど。
070069702/09/07 00:23ID:???
>>698
何か間違ってる?
070168502/09/07 00:24ID:???
$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";
070268502/09/07 00:39ID:???
685[なぜだ?今の答えなら間違いなくあたっていたはずだ。
きさまは以前にも突然現れ消えたことがあった。]
689[オラには聞き逃げができる。]
685[そいつはやっかいな技だ。バシッ!私も聞き逃げは自身があるんだ。]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

perlでゲームは作れるが、perlでゲームを作る本などない
perlで掲示板が作れるようになれば、まあゲームも作れるだろう
0740nobodyさん02/09/08 06:36ID:???
>>732
Perlでマインスイーパー作りましたが、何か?
0741nobodyさん02/09/08 06:47ID: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等で制御したほうが良いですか?
0742名無し二丁拳銃 ◆0s6WDHa6 02/09/08 11:30ID: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;
0743nobodyさん02/09/08 11:37ID:???
>>742
ファイルに書き込んでないじゃん。
0744nobodyさん02/09/08 11:41ID:???
sendmailでメールを送りたいです。
html形式で送ろうと思うんですが、
ヘッダーの部分の
Content-Type: text/plain; charset=ISO-20220JP
ここのtext/plainを
text/html
に変えればいいだけですか?
ローカルだと実行できないので教えてください。
0745nobodyさん02/09/08 12:07ID:???
>>744
ローカルでテストするときはsendmailに渡すんじゃなく、ファイルに書き出してみればいいんじゃない。
0746nobodyさん02/09/08 12:14ID:Y8OpaJeI
はじめまして。
掲示板のプログラムを作成しています。
『投稿確認』をしたいのですが、そこでどうにもこうにも困ってるキングオブDQNなんです。

まず、htmlファイルからsubmitで送られたデータを表示することはできるのですが
そこから先、どうすればいいのか分かりません。
どうすれば
[投稿確認画面表示]⇒[logファイルへの書き込み]の二段構えにすることができるのでしょう?
0747nobodyさん02/09/08 12:21ID:???
>746
<input type="hidden" name="***" value="*********">
0748 02/09/08 12:24ID:???
>>746
hidden
074974602/09/08 12:31ID:Y8OpaJeI
>>747-748
ありがとうございます。さっそく作ってみます。
0750nobodyさん02/09/08 12:52ID:???
>>745
どもっす。
とりあえず、上手くいきました。
0751nobodyさん02/09/08 13:02ID:???
whileとかループをぬけるのはlastですが、ifをそっこーで抜ける方法はありますか?
075274602/09/08 13:16ID: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とかのデータが全部消えてる。
0753nobodyさん02/09/08 13:16ID:???
>>751
アルゴリズムを再考しる。
075474702/09/08 13:21ID:???
>752
1から勉強しなおせ。

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

nameなどのデータを入力

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

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

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

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

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

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

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

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

CGIを単独で実行できるEXEにするようなツールはありませんか?
postやgetで受信した変数を判断し、ローカルでそれっきりで動くもの
そういうものはありませんか?
0782nobodyさん02/09/09 01:47ID:???
CGIってのが、PerlならPL2EXEとか。
0783Rikuta02/09/09 01:50ID:4uRhXRlu
掲示板を作成しています。
長くなったタイトルや、URL表記を途中まで取得し、
残りを「....」としたいのですが、正規表現ではどうするのでしょうか。
@subject = split(//,$subject);
@subject = splice @subject,0,40;
undef $subject;
foreach (@subject){
$subject = $subject.$_;
}
print $subject;
としたのですが、当然というか・・・日本語では化けてしまいます。
Jperlを使用しないでどうすればよいでしょうか。
0784nobodyさん02/09/09 01:52ID:ewVE42mB
782>>
ありがとうございます
試して見ます
078574102/09/09 02:12ID:2XJWXXjE
鬱。ダレモコタエテクレナイヨー
078674102/09/09 02:49ID:2XJWXXjE
チョトIDガカコイイカモ
0787nobodyさん02/09/09 03:05ID:???
>>783
$subject =~ s/([\W])/sprintf("%%%02X",unpack("C",$1))/ge;
078878702/09/09 03:07ID:???
↑URLエンコードしてしまう
0789nobodyさん02/09/09 03:08ID: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。それも他の書き込みに対するロックなので
読み込みには無力。
書き込みで開いてロックしときな。
079078302/09/09 03:18ID:???
>>787
表示上で使用しますので、エンコードはちょっと・・・

>>789
ありがとうございます。
うまくいきました。
0791nobodyさん02/09/09 03:26ID:???
>>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;
079279102/09/09 03:42ID:???
あ、これじゃエンコードしてる意味無いね(;´Д`)
0793nobodyさん02/09/09 03:43ID:PULoisdM
空行は/^$/にマッチするのは分かるんだけど
空行を削除するにはどうしたらいいんですか?

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

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

で逝けますYO

0796T女の竹田02/09/09 07:59ID:???
>>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;

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

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

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

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

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

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

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

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

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

何日目かは
$wday + 1

だと思う。たぶん…
0816nobodyさん02/09/10 20:37ID:???
>>810
>>815
ランダムに日付を変えて何度かテストしてみても
期待通りの結果が得られて大丈夫でした。
ちなみに、利用するのは
いつも巡回する複数サイトの一部記事を
引っこ抜いて表示させるものです。
新しく追加するサイトのファイル名が
今回質問させていただいたフォーマットでした。
ありがとうございました。
0817nobodyさん02/09/10 21:40ID: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) .*/ だと、頭の/が残るような気がするんだけど。。。

なんでだろう。。。?

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

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

0820nobodyさん02/09/10 21:45ID:???
>>817
1)については
ttp://namazu.org/~tsuchiya/perl/info/perl-ja_44.html#SEC44
082181702/09/10 21:59ID:ApnEpI8H
>>820サン、ありがとうございます。

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

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

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

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

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

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

 馬 鹿 ば っ か し だ な(藁





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


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

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

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

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

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

フォームのtextareaのvalue=""にログを入れたいのですが。
084884702/09/12 14:37ID:???
一行目の$syuは$valueの間違いです。
0849nobodyさん02/09/12 14:42ID:???
出来ない。
つーか、\nで十分。
085084702/09/12 14:45ID:???
>>849
分かりました。
0851nobodyさん02/09/12 17:28ID:???
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")
こうしたらできたのですが・・・
085285102/09/12 17:34ID:???
ファイルが連番で[1-20].jpgである場合、

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

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

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

0855nobodyさん02/09/12 18:18ID:???
>>854
<BR> を改行に変換したかったんじゃないのか?
0856nobodyさん02/09/12 18:22ID: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;
}


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

$FileAddress$NUM.jpg
違うよ
0860nobodyさん02/09/12 18:49ID:???
>>859
それで?
0861初心者厨房02/09/12 19:24ID: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_
0862nobodyさん02/09/12 19:26ID:???
print 10+5 # 足し算
0863nobodyさん02/09/12 19:27ID:???
print 10+5 # 足し算

print 10+5; # 足し算

エラーメッセージぐらい読め
0864nobodyさん02/09/12 19:31ID:???
>>863
氏ね!
0865nobodyさん02/09/12 19:33ID:???
>>864 ハァッ!!!!!!!!!!!!!!!!!!!!!?
0866nobodyさん02/09/12 19:34ID:???
>>863
揚げ足取りは氏ね!
0867nobodyさん02/09/12 19:38ID:???
>>865
氏ね!
0868nobodyさん02/09/12 19:38ID:???
>>866
何が揚げ足取りなんだ?
0869nobodyさん02/09/12 19:39ID:???
( ● ` ∇ ´ ● )ガオー
0870初心者厨房02/09/12 19:54ID:ODncwTzE
ありがとうございます。わかりました。ところでエラーメッセージのどこをみればわかるのですか?
0871nobodyさん02/09/12 20:01ID:???
>>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 /";
0872名無しさん@Meadow02/09/12 20:07ID:???
>>864-870
荒らしさん、こんにちは
あなたの存在がエラーです
0873初心者厨房02/09/12 20:08ID:ODncwTzE
ほんとに始めたばっかでなにがなんだかわかんねーんだからしょうがねーだろ。
0874nobodyさん02/09/12 20:11ID:???
< ● ` ∀ ´ ● > < >>873 一緒に祖国に帰るニダ
0875nobodyさん02/09/12 20:15ID:???
1 :ぼぶ ◆EMrmvKLI :02/09/10 19:18 ID:G4zqfa38
これはいろんなとこにコピペしてください。
みんなで台風を起こしましょう。
東京駅を中心に右回りです。
9月22日夜9時にみんなでいっせいに「フゥー」と吹くのです。
注意
周りに障害物のないところでやりましょう(なるべく高いところ)
「フゥー」以外に扇風機やうちわを使ってもかまいません。
       !東京を壊しましょう!
0876初心者厨房02/09/12 20:15ID:ODncwTzE
帰ります・・・>>874
0877nobodyさん02/09/12 21:03ID:???
#!/usr/local/bin/perl
print "Content-type: text/html\n\n;


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

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

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

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

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

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

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~
0894nobodyさん02/09/13 03:15ID: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に全て出力されてしまいます。
なにがいけないんでしょう?
0895nobodyさん02/09/13 03:17ID:???
>>894
追記
最初に$n = 1;で初期化してます。
0896nobodyさん02/09/13 03:17ID:???
>894
改行文字忘れてるよ
0897nobodyさん02/09/13 03:25ID:???
>>896
ごめん意味わからない。どこにつけ忘れてるの?
0898nobodyさん02/09/13 03:29ID:???
>897
unless(/^\.\n$/){
かな?
0899nobodyさん02/09/13 03:42ID:???
>>898
指摘サンクス。
あとはどうすれば連番で出力できるのか
教えてくらはい。
0900nobodyさん02/09/13 03:43ID:???
>894
てか unless( $_ eq ".\n" ) でいいんじゃ...
0901nobodyさん02/09/13 03:56ID:???
メール本文に.\nがあったらまずいかな
と思ったんだけど。。。
0902nobodyさん02/09/13 04:04ID:???
>>899
open(OUT,">$n");
をwhileの中に入れてないからでわ?
0903nobodyさん02/09/13 04:05ID:???
何がしたいのかイマイチわからないけど
こういう事か?

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

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

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

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

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

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

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

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

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

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

  if(-d $dir){



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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

$xxx = index($yyy, "aaa"|"bbb");
0958 ◆JAPH9PWA 02/09/15 14:11ID:???
>>957
質問に答える前に一つ聞きたいんだけど、どこでそういう構文を学んだの?
正直、凄く興味がある。
09593PIO ◆3pIoOHKo 02/09/15 14:14ID:???
indexって位置を返すんじゃなかたっけ?
0960 ◆JAPH9PWA 02/09/15 14:33ID:???
>>959
いや、それ以前にビットOR演算子が…。
論理OR演算子なら百歩譲ってああ誤解するのも頷けるけど、なぜビットOR演算子が…。
0961nobodyさん02/09/15 14:39ID:???
答えられないのか?
09623PIO ◆3pIoOHKo 02/09/15 14:41ID:???
>>961
つーか>>957は何を言いたいのかワカラン
0963nobodyさん02/09/15 14:43ID:???
どっちか先に出現するほうの位置を晒せってことだろ?
0964nobodyさん02/09/15 14:47ID:???
>960
正規表現とごっちゃになってるとか。
0965nobodyさん02/09/15 14:49ID:kinL8j5T
>>963
そうだよ
0966nobodyさん02/09/15 14:54ID:???
>>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);
}
}

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

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

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

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