【Perl】初心者コーナー Part15
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
02/08/08 23:19ID:???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あたりを見よう。
00021
02/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:???0004nobodyさん
02/08/08 23:20ID:???00051
02/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/
00061
02/08/08 23:21ID:???・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:???00081
02/08/08 23:21ID:???・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/
0010nobodyさん
02/08/08 23:22ID:???001211
02/08/08 23:25ID:???0014nobodyさん
02/08/08 23:29ID:???0018nobodyさん
02/08/08 23:42ID:???0019nobodyさん
02/08/08 23:56ID:???ノ ( \| || !:::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:bBZPsuqFttp://www.taiyosha.co.jp/comic/comic0209_date1.html
にある HTML を LWP::Simple の get を使って取得してみたんですが、
いつもは
@lines = split(/\n/, (get $target_url));
みたいにするとサクっと取得できるのに、このサイトのソースだと
文字列の終端のコードがちょっと違うらしくてうまく split できないん
ですけどどうしたらよいのでしょうか?
色々と試してはみたのですけど、ちょっとよくわからなかったので
ココでお聞きしてみました。
どうぞよろしくお願いします。
0022nobodyさん
02/08/09 04:25ID:???0023nobodyさん
02/08/09 06:37ID:???0024nobodyさん
02/08/09 06:56ID:???use lib './module';
test.cgiに
use lib './module';
use module;
のように記述するんでしょうか?
002524
02/08/09 07:08ID:???0026nobodyさん
02/08/09 11:22ID:???中身は 名無し=> 2 ひろゆき=>5 ネオ麦茶=>3
という感じです。
で、これを値(数字)の大きい順に名前を表示したいんですがどうしたいいでしょうか。
0029nobodyさん
02/08/09 13:56ID:???ソート出来たら$hogeをどうするんですか?
0030nobodyさん
02/08/09 14:13ID:???0031nobodyさん
02/08/09 14:41ID:???その質問おかしいだろ。w
print sort { $hoge{$b} <=> $hoge{$a} } keys %hoge;
で確認してみ。
0032g
02/08/09 14:48ID:pPvuKcdo〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能住み込みも可
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
0034nobodyさん
02/08/09 14:50ID:???ネオ麦茶 3
名無し 2
こういう感じで名前と値を表示させたいんですけど
print sort { $hoge{$b} <=> $hoge{$a} } keys %hoge;
これだと名前しか出なかったでし。
0036nobodyさん
02/08/09 15:04ID:???Perl昨日始めたばかりのオレでも出来ましたが…。
foreach $i (sort { $hoge{$b} <=> $hoge{$a} } keys %hoge) {
print $i, " " , $hoge{$i} , "\n";
}
0039nobodyさん
02/08/09 16:10ID:???ネタ?君は生まれた時からハッシュを知っていたんだね。素直に感謝しなさい。
>>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:???0048nobodyさん
02/08/09 21:35ID:???$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:84ebYeoV0051nobodyさん
02/08/09 22:48ID:???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:???そんなの短くできないって。あきらめなさい。
と言いつつトライ。
$value=~s/[\+&"<>,]/($t=index'+&"<>,',$&)?'&'.qw(amp quot lt gt cedil)[$t-1].';':' '/eg;
これ以上無理かな…
わけたままのほうが圧倒的に処理が速いぞ。
と言いつつ>>53のバグフィックス&処理速度向上版
$value=~s/\+|([\+&"<>,])/$1?'&'.(qw(amp quot lt gt cedil))[index'&"<>,',$1].';':' '/eg;
0055nobodyさん
02/08/10 01:36ID:???ソース短くしたら処理が早くなるわけじゃないぞ
正規表現あたりは激しく可読性に影響が行くから
>>53 >>54
が言ってるとおり素直にそのままにしとけ
#俺は厨だから>>54のをさらに改良したりとかできん
#てか、もう読めません・・・(;´Д`)
005654
02/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,'"<>&');
005854
02/08/10 03:35ID:???>とりあえず、(cedilはいらんだろう)
条件を勝手に変えては・・・
エンティティ文字だから末尾の ; が無くては・・・
>@{[join '', keys %slist]}
この部分は典型的な処理おそーだから・・・
>$value=~s/$_/'&'.$slist{$_}/eg for keys %slist;
ハッシュキーをまわすと & が出現する順番によっては整合性が・・・
0059nobodyさん
02/08/10 03:55ID:???> 条件を勝手に変えては・・・
> エンティティ文字だから末尾の ; が無くては・・・
$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,'&"<>,'); ね。
006020
02/08/10 04:07ID:2iXM5pV6遅ればせながらありがとうございました。
おかげさまで無事に綺麗なHTMLを取得できましたー。
0061nobodyさん
02/08/10 06:08ID:???>>んで最終的にはこれを勧めておく。
>>use HTML::Entities;
>>$value=~tr/+/ /;
>>encode_entities($value,'"<>&');
>>49のと↑だとどっちが早いんですか?
0062nobodyさん
02/08/10 09:37ID:???encode_entities()のなか見てないからわからないけど
多分どちらも大して変わらないだろう。
てかね、Perlで速さを求めないでください。
速くしたいならCね
0063nobodyさん
02/08/10 17:02ID:???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:???これの4ページ目の13行。
0067nobodyさん
02/08/10 17:43ID:???$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:???これの意味がわかってやってんだろうな。
0070nobodyさん
02/08/10 19:30ID:???007168
02/08/10 19:44ID:???print DATA $_[1];
こうやってみたんですがどうも。。
open(DATA,">$_[0]") || exit;
print DATA $_[1];
一行目でlog.datを書きこみ専用でオープンしてもし開けなかった場合はexit
2行目でファイルハンドルDATAに$_[1]の中身を書きこんでるんですよね?
$_[1]に@dataの中身をいれたいんですがどうも配列の先頭要素しか受け渡しできませんでした。
@_[1]にもしてみたんですがうまくいきませんでした・・
どうやれば配列を受け渡せるのでしょうか?
007268
02/08/10 19:49ID:???ちょっと渡来してみます
0073nobodyさん
02/08/10 19:50ID:???どこがモジュール?
サブルーチンにしなくてもいいんじゃないか?
007468
02/08/10 19:54ID:???>>73
たしかにそうなんですが何回か読み書き作業をするので行数がかさんできたため
モジュールに、、サブルーチンとかパッケージ化でもよかったんですが
モジュールが一番よさそうだったので・・
あと趣味で作ってるので使いまわしするのでできるのは全部モジュール化しといたほうがあとでらくかなーと思いまして・・
0075nobodyさん
02/08/10 20:43ID:???URLはタグ等で囲まれたりしていません
0077nobodyさん
02/08/10 22:10ID:???0078nobodyさん
02/08/10 23:09ID:0iqc1GSZされません。どうやるのですか?
0080コギャルとHな出会い
02/08/10 23:15ID:FTkfInMw朝までから騒ぎ!!
小中高生
コギャル〜熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
おこずかいの欲しい女の子もたくさん来てね!!
全国デ−トスポット情報も有ります
0081ど厨房
02/08/10 23:41ID:???困ってます。でMSのactiveXギャラリーに行けと言う表示が出たので行ってみ
たけど何をDLしていいのか・・罵倒覚悟です。誰か教えてください・・・
0082nobodyさん
02/08/11 02:25ID:uMk9XU0wPERLと関係あるのか?
漏れが無知なだけか
0083nobodyさん
02/08/11 11:47ID:U9P8YsFW書き込み時にログに記録された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";
0085nobodyさん
02/08/11 12:32ID:U9P8YsFWログには保存しているんです。
ただ、HTML出力のソースを見ると、>>83のように、
$ENV{'REMOTE_ADDR'}; したものを$adみたいにして出力するような記述なんですね。
ログから引っ張ってるような記述が見当たらない…
0086nobodyさん
02/08/11 12:37ID:???【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/l50
上のスレのお世話になってはいかが?
008785
02/08/11 12:41ID:U9P8YsFW# 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:???008985
02/08/11 13:15ID:U9P8YsFWこちらはDBファイルのデータがタブ区切りで、読み出しもただ変数を羅列しているため、
その順番どおりに表示するようになっていました。
もともとIPは記録しない仕様のため、適当にタブの間にIPを付け足したのが間違いで、
読み込みの順番どおりにDBファイルのタブ区切りを修正したら表示されるようになりました。
俄然perlが面白くなってきますたよw
0091nobodyさん
02/08/11 13:37ID:???スクリプトはちゃんと吐き出してる。$ipとして。
0093nobodyさん
02/08/11 16:05ID:wwIT5eGLこのスクリプトなのですが、時間設定で
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を使い分けたりする意味はあるのでしょうか?
前者は処理が早くなるとか・・・?
オシエテクダサイ
0097nobodyさん
02/08/11 19:40ID:???0098nobodyさん
02/08/11 19:44ID:???そうでもないものなんですか
0099nobodyさん
02/08/11 19:44ID:???0100nobodyさん
02/08/11 19:46ID:???0101お願い!
02/08/11 19:56ID:5quTF2lDというテキストを
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:???たとえば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";}
でいいと思うのですが、上手くできませんでした。
ヒントを頂けないでしょうか?
$times が当時の書き込み時間で
$now が現在の時間なんでしょ?
だったら
$now - $times
で何秒たったか分かる
たとえば$nowに110000がはいってて$timesに100000がはいってれば
その差は10000秒になる
んでこれと$limitを比べればいいんでないの?
0106nobodyさん
02/08/11 22:53ID:QpOp3e8Yおい。お前ら!応援投票しろ!
0107nobodyさん
02/08/11 23:56ID:???whileで回す方法と、配列に一気に読んでforeachで回すのとでは
メモリは食うけど、foreachで回すほうが処理は速いんですかね?
それともwhileで回す方法が速い?
0108nobodyさん
02/08/12 00:15ID:???使いこなせるかな? 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でも、他サイトの無改造のゆいぼっとにクッキー全部消去してからお邪魔して
退室したあとにまた入室画面で名前欄を見ると同じようになってるんですよ。
0113110
02/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:???0115110
02/08/12 02:41ID:y1lt6txe= split(/\t/, $cooks);
を
= split(/_/, $cooks);
にしてしまったらうまくいきました。
しかし、環境依存でバグが出るかもしれませんね。
UNIXやMACのクッキーはよく知らないんですが。
0116110
02/08/12 02:47ID:y1lt6txeなんか、IE6.0のバグっぽい。
ということは、それ以外のブラウザではやはり問題が起きてないかもですね。
0117nobodyさん
02/08/12 02:50ID:???IEが正しくて、ほかが間違ってる
んなこたぁない。IEが間違えてることの方が多い。
0118110
02/08/12 03:02ID:y1lt6txeIE6にあわせた修正をしたバージョンでは逆にトラブルになりました。
区切りを本当に_ にしたがダメ。区切りとsplitを, であわせたところ、
IE6、ネスケともにトラブルは収まりました。
MS、恐るべし…
0119nobodyさん
02/08/12 03:05ID:VEDKxtaL違うな
IEが間違ってて、そのCGIも間違ってる。
そして仕様と言い張る。
0120nobodyさん
02/08/12 03:16ID:???制御文字はNG
http://www.ietf.org/rfc/rfc2965.txt
0121nobodyさん
02/08/12 03:20ID:???まぁ、CSSもネスケ4.7が悪い品。
0122nobodyさん
02/08/12 07:05ID:???いえいえ悪いのはオマエの頭だけです
0124nobodyさん
02/08/12 14:23ID:???0125困ったチャン
02/08/12 17:38ID:???パスワードを入力して
認証してOKならページ移動
の処理を作成中なんッスけど
認証のためのデータをあるファイルから
参照してハッシュを使ってIDをキーにして
パスワードをデータにして、
IDを比較するのはOKなんッスけど、
パスワードの比較はどうしたらイイんでしょうか?
ようはキーの中身の比較っすね
0126困ったチャン
02/08/12 17:58ID:???0127nobodyさん
02/08/12 18:26ID:???0128困ったチャン
02/08/12 18:30ID:???0130nobodyさん
02/08/12 22:25ID:???0131nobodyさん
02/08/12 23:21ID:???0132nobodyさん
02/08/12 23:50ID:???…そんなcgiってありますか?
もしあったら、参考になるサイト、もしくはプログラムを
お教え下さい。
0134nobodyさん
02/08/13 00:08ID:???0135nobodyさん
02/08/13 01:27ID:???ほれ。
文化庁がトップページ以外へのリンクを機械的に拒否
http://slashdot.jp/article.pl?sid=02/07/09/0626258&mode=thread
0136nobodyさん
02/08/13 01:31ID:/aTNrvJIカウントするスクリプト、どっかに落ちてますか?
別に自分で見れればページに表示するつもりはないです。
0138nobodyさん
02/08/13 01:40ID:???0139nobodyさん
02/08/13 12:05ID:???スクリプト開始時に自前のcookieを発行→直後それを照合出来ればcookie有効、出来なければcookie無効と見なして弾く。
そう難解でもないかと>133
0140nobodyさん
02/08/13 15:47ID:???ちょっと時間が空いたので,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:0NNEcJ22use 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:0NNEcJ22foreach 文は
・扱うデータ量が少なく,ファイルをすぐに閉じたい場合.
・同じデータを繰り返し使用する場合.
while 文
・データ量が大きく,配列を生成すると莫大なメモリを使用してしまう場合.
・データの1部分だけを必要とし,無駄なデータを読む込みたくない場合.
という事でした.
0143nobodyさん
02/08/13 21:45ID:Q5/MwQBf凄く普通の結論。
0144nobodyさん
02/08/14 00:05ID:???0146nobodyさん
02/08/14 00:26ID:LHt/Hq/vある変数をサブルーチン名に代入したりできるのでしょうか?
&サブルーチン名=変数; みたいにしたいのです
例えば
&hazime というサブルーチンを使いたい時
&(ココの書き方が分かりません)=$hazime;
みたいのことができるのでしょうか?
0147nobodyさん
02/08/14 00:31ID:???$count = &con();
0148147
02/08/14 00:31ID:???0149nobodyさん
02/08/14 00:54ID:???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)}
0152nobodyさん
02/08/14 14:31ID:8dp0qhB8HTMLソースをHTML形式のメールに変換するスクリプトをご存知ないでしょうか?
HTML形式のメールは、HTMLソースがそのまま本文中に書いてあるのだと
ばかり思ってましたが、MHTMLとかいう形式があるようで・・・
0153nobodyさん
02/08/14 14:48ID:???スレ違い
【CGI初心者コーナー】
http://pc.2ch.net/test/read.cgi/php/1028646335/
0154nobodyさん
02/08/14 14:56ID:8dp0qhB8リンク先は「まぁ、またお前は騙されたわけだが・・・ 」というスレッドです。
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:???0158nobodyさん
02/08/14 23:26ID:???157じゃないけど、具体的には「申」のあとに\を入れろって事。
申\し込み
なぜこうなるかというと、「申」のShift-JISでの2バイト目が'\'(0x5c)だから。
0159nobodyさん
02/08/14 23:35ID:???$a = 1 << 2 としてみました
00000100 になると思ってたんですが
unpack("B*",$a) としてみたら
00110100 となっていました
上4ビットはなんなんですか
0162156=154=152
02/08/15 01:27ID:5Zkc/vw2EUCに変換して解決しました。
ありがとうございました。
>>158
分かりやすい解説ありがとうございます。
勉強します。
152の問題も解決しました。
スクリプトは見つかりませんでしたが、
Content-type: multipart/alternative;boundary="--- ・・・
を付けて、テキスト部分とHTML部分を区切るだけで出来ました。
ありがとうございました。
0163↓晒しヽ(`Д´)ノアゲー
02/08/15 02:47ID:???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分) (最新)
0164nanasi
02/08/15 04:12ID:???したいのですがどのようにしたら良いのでしょうか
0166nanasi
02/08/15 05:50ID:???http://www.cj-c.com/cgi_s/upb.htm (UPP BORD)
を設置してるのですがあっぷした画像のみを他サイトの掲示板で
転載されて困ってるので他サイトからあぷされた画像を閲覧した場合
自分のHPのTOPに飛ぶようにしたいのです。
あっぷされた画像直リンの場合弾きたいということです。
どうか方法教えてください
0167nobodyさん
02/08/15 11:08ID:???画像の直リンク防ぎたいなら .htaccess の出番かと
「.htaccess 画像 制限」 こんな感じのキーワードで
googleで検索すれば解説してるサイトみつかるべ。
これ以上はスレ違いなので、あとはご自分で・・・
0168エロ助
02/08/15 11:32ID:h1WzO6+xhttp://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:???/ ̄ ̄ ̄ ̄ ̄ ミ
/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < HTMLでできるだろ!
/| /\ \__________
0172nobodyさん
02/08/15 15:33ID:???GDを使うといい。GD.pmで検索しる。
http://member.nifty.ne.jp/hippo2000/perltips/GD.html
0174アップローダを作り隊
02/08/15 18:04ID:OdAnllx3どうもわからんのです。
フリーのアップローダのソースを見ても掲示板とかが邪魔で
肝心のアップローダの仕組みがわからず。。。
perlのリファレンス本を何冊か読んでも、
何をアップローダに使えばわからず。。。
どうか皆様、この私にアップローダの「ア」の字くらいを教えてくださいませんでしょうか。
0175170
02/08/15 18:24ID:???3<>コメント
1<>コメント
ログファイルにこういう形で保存されいて
1 2 3の中のもっとも大きい数字を求めるにはどうすればいいのでしょうか?
0177170
02/08/15 18:40ID:???0178nobodyさん
02/08/15 18:44ID:???0179nobodyさん
02/08/15 19:04ID:???ゆいのーとの最初の方をみれば割と判るとおもう。
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スマソ。やっぱりわからんです。
設定するところをして、CGI対応のサーバーにアップしたのですが、
ファイルサイズがやけに小さくなって、しかも開けず。
自分のPCにApache入れてるんですが、それでも同じ結果です。
他のアップローダーもファイルサイズが同じように小さくなります。
ちなみにJPGファイル。
対応してるはずなんですが。。。
アップローダー十個くらい試してみたのですが、全滅です。。。
設定がいけないんでしょか?
0182nobodyさん
02/08/15 20:01ID:???バグの原因が判らないなら3〜4種のブラウザで再現するかどうか見れ。
0183アップローダを作り隊
02/08/15 20:17ID:OdAnllx3http://ruffnex.oc.to/ipusiron/upload/1171.zip
↑一応ゆいのーとを使っているサイトにソースをアップしました。
最低限設定する必要がある部分など指摘していただけたら、と。
0184アップローダを作り隊
02/08/15 20:17ID:OdAnllx30185nobodyさん
02/08/15 20:49ID:???ちゃんと動くよ?(^^;
$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そ。。。そうなんですか?
ちなみにスペース借りてるサーバーがWindows2000なんですが、
それも関係あるんでしょうか?
文字化けも激しいのですが。。。
0187nobodyさん
02/08/15 21:08ID:???0189アップローダを作り隊
02/08/15 21:24ID:OdAnllx3一応、いくつかファイルをアップした時の状態のものを晒しておきます。
何かこれからわかることがあったらよろしくです。
0190アップローダを作り隊
02/08/15 21:29ID:OdAnllx3もともとソースファイルを参考にして自分で作ろうと思ってるので、
できれば>>183のソースファイルの何行目あたりが大事だぞ、とかだけでも言っていただけないでしょか?
ほんと聞いてばかりですみませんです。
0192nobodyさん
02/08/16 00:02ID:???0193アップローダを作り隊
02/08/16 00:09ID:kDsvONdE今ソースファイルをわかり易く?まとめてるので、
binmodeを使うべきところがわかったら試してみようと思ってます。
使い方はわかったのですが、今までbinmodeというのは知らなかったので。。。
0194nobodyさん
02/08/16 01:13ID:???CGI.pmでもいいけど。
0195nobodyさん
02/08/16 14:48ID:???しょうか。普通:じゃないですか?
0198nobodyさん
02/08/16 17:45ID:gz1h7SNU:をエスケープしないで済むからだとおもわれ。
タグを許可しなければ<>が入力されてくることはないので都合がよい。
0199nobodyさん
02/08/16 18:53ID:???ていうかこれが普通だと思いこんでいたけど。
0200nobodyさん
02/08/16 20:57ID:???セパレータに2バイトも使うとは愚の骨頂ですね
\t ?? はつみみです
0201アップローダを作り隊=193
02/08/17 04:09ID:17AkwzDgそれならばと、書店に行って「大人のCGIスクリプト」という本を買って
そこに出ている「ホームページにファイルをアップロードする」というところを
参考にしました。
それで、とりあえず本に載っているソースをそのまま書いて試したのですが、
うまくいきません。…つД`)
もうどうしていいのかわからないのですが、
本に載ってたものをそのまま書いたソースファイルをアップしておきましたので、
もし見て何かわかることがありましたら、どうかお願いします。
http://ruffnex.oc.to/ipusiron/upload/1178.zip
状態として、CGI自体はエラーもなしに動くのですが、
ファイルがまったくアップロードされません。
1バイトもファイルが作られないので、何か決定的な間違えがあると思うのですが。。。
あと32行目当たりのコメントの後ろに「$bound =~ s/…」とあるのですが、(本がその通りに書いてあったので)
これは本来コメント部分なのか、それとも間違えてコメントの部分に書かれたものなのかがよくわかりません。
0202アップローダを作り隊=193
02/08/17 04:12ID:17AkwzDg本には”アップロードされたファイルは「./filepost/」というディレクトリに保存される。”
と書かれたありました。
0203nobodyさん
02/08/17 09:27ID:???0204アップローダを作り隊
02/08/17 10:12ID:17AkwzDgパーミッションは755ではダメですか?
CGIスクリプトからの書き込みとパーミッションって関係ないと思ってたのですが。。。
あと、前述したのですがNTサーバーなのでパーミッションが変更できないのです。
(NTサーバーだから変更できないわけじゃないかもしれませんが、借りてる鯖は変更できません)
やっぱりパーミッションは777がいいのでしょうか?
0205195
02/08/17 13:13ID:???CGIの流儀には詳しくないんだ。スマソ。
0206nobodyさん
02/08/17 13:20ID:???>> パーミッションは755ではダメですか?
>> CGIスクリプトからの書き込みとパーミッションって関係ないと思ってたのですが
ええと、不特定の人がファイルをうpするんですよね。うp = 書きこみですから、
ファイルを保存するディレクトリに誰でも書きこめるようにしておかないと駄目です
よ。755なら所有者しか書きこめません。
って、これはUNIX鯖の話で、NTのことは分かりません。でもパーミッションが変更で
きなかったら使いものにならないような気がしますが...
0207nobodyさん
02/08/17 14:19ID:???まずはここから ⇒ REQUEST_METHOD
0208207
02/08/17 14:28ID:???if ($ENV{'CONTENT_LENGTH'} > 5050000){exit;}
binmode(STDIN); # 追加
#ファイル名、区切り文字「バウンダリ」の取得
while (<STDIN>){
0209207
02/08/17 14:30ID:???binmode(OUT); # 追加
0210nobodyさん
02/08/17 16:09ID:???ランダムに並び換えて(シャッフルして)出力するにはどうすればいいですか?
0212アップローダを作れ隊
02/08/17 17:34ID:17AkwzDgで、で、で。。。できますた〜。つД`)
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んで、落とそうとしたサイトが、
有名なんでしょうが、一応書いとくと、
http://www.activestate.com/Products/Download/Get.plex?id=ActivePerl&_x=1
です。。。
0216nobodyさん
02/08/17 18:16ID:Jdg3+PCYよし↑とりあえずこれいれろ5.8な、
、、んでだActivePerlのそれはインストーラーがうまくいかないOSは
パッチあててねって意味。2000/XPには必要ねーよってこと
0217nobodyさん
02/08/17 18:20ID:???↑、どこでダウソするんだろうな?
有名も糞もなにもここにいるWin厨はみんなActivePerlだろう。
最近はネトランも付録CDにつけてるからな〜そういうのはいいんだがあの雑誌は
0218???
02/08/17 18:25ID:???アフォ過ぎだったんですね。
優しく教えていただき有難うございました!
0219nobodyさん
02/08/17 20:03ID:fKAF/2/WPERLってパラメータ(変数)渡してファイル実行、てできないんでつか。
cgiページで別のcgi呼ぶのに
require 'XXX.cgi';
とやればいいのは分かるんですが、変数渡して実行するやり方が
分かりません。
0220nobodyさん
02/08/17 20:38ID:???グローバル変数はそのままサブに引き継がれるが・・・
難しいか?
====================
本スクリプト
$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:???分かりました!ありがとうございます、やってみます。
0223nobodyさん
02/08/17 21:08ID:???} 1;
ってどういう意味があるのですか?
このパッケージ関数の仕事は正常に終わったよ(゚Д゚)、ペッ って意味。
0228nobodyさん
02/08/17 22:47ID:???( ゜д゜)ポカーン
0229nobodyさん
02/08/17 22:48ID:???>225-227
タイム( ゜д゜)ポカーン
0236nobodyさん
02/08/18 15:40ID:CpuDe273openでURLを指定してwhileでprintさせてみましたが
何も表示されませんでした。
もしできるのなら方法を教えてください。
0237nobodyさん
02/08/18 15:44ID:???http://ash.jp/perl/socket_http.htm
0238nobodyさん
02/08/18 15:56ID:QsLadsc+アプレットを、なんとかしてホームページで使いたいと考えています。
WaterPicというアプレットなのですが、
「classファイルが見つかりません」とステータスバーに表示されてしまい
必要なファイルはすべてサーバーにアップしたのですが、
うまく表示されません。
海外サイトなので、翻訳ツールなど使ってFAQを読んでみたり
自分なりに検索をしてみたのですが、どこを直せば良いのかわからず…。
どなたかご教授戴けますでしょうか。よろしくお願い致します。
参考サイト ttp://www.durius.com/index.php
0240nobodyさん
02/08/18 16:27ID:QsLadsc+0242nobodyさん
02/08/18 16:31ID:???ここ Javaアプレット のスレじゃなくて perl のスレですよん?
>>1 読んでます?
アプレットの設置で詰まってるならWeb製作管理板へどうぞ
☆ Webサイト制作初心者用スレッドver29 ☆
http://pc3.2ch.net/test/read.cgi/hp/1028459248/l50
0243nobodyさん
02/08/18 16:32ID:QsLadsc+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:R5t0PgRFhttp://www.ActiveState.com/ActivePerl/download.htm
↑ココから進んだ先で、DL出来ないんですが、
なぜでしょう?(Win の AS package)
どこか他でDL出来ないでしょうか?
0246nobodyさん
02/08/18 18:02ID:???http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.633-MSWin32-x86.msi
0247+++
02/08/18 18:07ID:R5t0PgRF落ちてきます?
404なんですけど・・・。
0248+++
02/08/18 18:10ID:R5t0PgRF0249f
02/08/18 18:25ID:zqX/Ef2t〇デートクラブ〇女性専用ホストクラブ〇
〇ハード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:???alarmとevalを使えばよい。
http://www9.org1.com/~anach/memo/20020309.html
0252nobodyさん
02/08/18 21:56ID:???スクリプトのエラーがあると、err500とかになっちゃいますが、エラーの個所とか出せないんでしょうか?
前はIIS+ActivePerlだったんですが、そのときはエラーログが残ったんですが。。
0255nobodyさん
02/08/19 11:26ID:???use sigtrap;
use diagnostics;
use warnings;
0256nobodyさん
02/08/19 12:43ID:???CGI.pmを使ってフォームから
ENCTYPE="multipart/form-data" METHOD="POST"
としてCGIに送っているのですが、書き込みを中止させたときに
JavaScriptで書き込みのページに戻しているのですが(一から書き直させない為です)
「 警告 : ページの有効期限切れ 」
と、出てしまいます。
これはしょうがないのでしょうか?
CGI.pmを使わない普通の掲示板だと上手くいくのですが・・・。
0258nobodyさん
02/08/19 13:59ID:???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上の形式で保存されているログファイルの中にあるcの数をカウントするにはどうすれば良いのでしょうか?
0261259
02/08/19 17:08ID:???メモしておきます!!!!!!!
0263256
02/08/19 19:43ID:TnC/wrS+ヘッダーに入れてキャッシュを無くすものでしょうか?
自分では入れていないので、データを受取ってCGI.pmで
$query->param
しているのが原因でしょうか?
というか勝手にCGI.pmで処理されているのでしょうか?
0264nobodyさん
02/08/19 21:34ID:nf8Usneb「#」ってエスケープできないんでしょうか。
0265nobodyさん
02/08/19 21:45ID:DxRxf6Pvuse encoding "euc-jp";
してるときにURLエンコード・デコードってどうやるんでしょうか?
文字列がUNICODEになるせいか普通の方法だとできないです。
0267264
02/08/19 22:40ID:nf8Usnebええと、色コードの指定に使いたいんですけど、実体参照でも有効なんですか?
っていうのは板違いですかね。
調べてきます。
0268E04 ◆Ikb1Go..
02/08/19 22:50ID:gHSnDTPFログファイルに書き込まれた文字列を$capとして読み込み、
読み込んだ後に暗号化したいんですけど…
YY-Boardのcryptルーチンを転用させてもらったら、アクセスするごとに表示されるキャップが変わってしまいました。
どなたか、キャップ機能のルーチンを書いていただけたら光栄です。
0269E04 ◆Ikb1Go..
02/08/19 22:52ID:gHSnDTPF鬱じゃ
0270nobodyさん
02/08/20 10:21ID:mXpjYijiコピペする人のために書くルーチンは在りません。
カエレ。
http://pc.2ch.net/test/read.cgi/php/1003131529/375
0271E04
02/08/20 13:28ID:OO5Itufaマジかよ・・それ俺じゃないのになぁ(´Д`;
ま、マルチじゃないのにマルチと決め付けられたり、自作自演と決め付けられるのも、
この板ならではだからシカタナイか。
0272nobodyさん
02/08/20 13:32ID:0fyshNrg$trip = substr( crypt($cap, $cap), -8 ) ;
0273270
02/08/20 13:45ID:UfVInuyuマルチは問題ではありません。
ていうか、そこまで出来るのであれば、
crypt
の動作を調べて自力で出来るはず。と思う。
ソレで出来なかったらソースを晒して下さい。
0274nobodyさん
02/08/20 14:03ID:???ダウンロードするときなどに、認証するようにしたいのですが
どのような処理を行えばいいでしょうか(;´Д`)
ヒントを頂けないでしょうか?
0275nobodyさん
02/08/20 14:12ID:???ダウンロードするときなどに、クッキーで認証する。
0276nobodyさん
02/08/20 14:48ID:???http://www.parkcity.ne.jp/~chaichan/qanda/qa3047.htm?02-08-20-14-46
0277nobodyさん
02/08/20 15:04ID:???プンプン
0278256
02/08/20 16:39ID:???>>262さん
原因がわかりました、一度投稿した後そのまま記事表示させ、
その後の投稿でエラーなどで、投稿が中断され戻ると、
警告が出てきていました。
ですので、書き込み処理の後にHTTP-EQUIV=Refreshで更新させ
たら、上手く行きました。
すいませんでした。
0279256
02/08/20 16:41ID:???その後の投稿が中断され、ブラウザの戻るボタンで戻ると
0280nobodyさん
02/08/20 22:43ID:EZdiVz9http://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は取れますけどね
0282280
02/08/20 23:25ID:EZdiVz9hすみません。オークショントップは繋がりました。
(さっきはできなかったのに)
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:???0287nobodyさん
02/08/21 08:52ID:wr41ngxxちゃんと動作してるcgiを(無意味ですがうっかり)書き換えなしに
上書きアップロードしたら動作しなくなってしまいました。
なぜなんでしょうか?サーバー側には問題ないようなんですが・・・
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:???$DATA{'hokkaido'} = "hokkaido,北海道,十円";
$DATA{'aomori'} = "aomori,青森,百円";
$soryo = (split(/\,/, $DATA{$form_data{'pref'}}))[2];
とか?
いや、もっといい方法あると思うけど。ケースバイケースで。
0293nobodyさん
02/08/21 11:20ID:???http://pc.2ch.net/test/read.cgi/php/1021897804/l50
何故、エロいと判った!?
0295
02/08/21 21:17ID:koSJYhB+レンタルのカウンター使いたいんです。
でもHPにタグを挿入とか意味が分からない
どうやるんですか??
0296送料
02/08/21 21:18ID:piy6swDNレスありがとう。
$form_data{'pref'}は、北海道とか、青森とか
漢字が入ります。が、大丈夫ですよね。
試してみます。
0297nobodyさん
02/08/21 21:22ID:NuztNbpZリスト作っとくだけで出せるだろ。
%pref =(
'北海道',"$hokkaido",
'青森件',"$aomori",
'秋田県',"$akita",
'岩手県',"$iwate",
);
$soryo = "$pref{$form_data{'pref'}}";
0299nobodyさん
02/08/21 21:54ID:???次のページへ移動する時にログファイルの行数で判断しようと思っています。
下の方法だと、行数のためにログを開くのがかなり無駄に思えるのですが
アフォなので良い方法が見つかりません。ヒントをご教授して頂けませんか?
$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;
一部省略しているので、分かりにくいかも知れませんが・・・
0301nobodyさん
02/08/21 22:29ID:???よくわかんないけど。
print @header;
print @lines;
print @footer;
じゃダメポ?
0302送料
02/08/21 22:39ID:piy6swDNレスありがとう。これで、やってみたらできますた。
深く感謝。
これって、'北海道',"$hokkaido", でセットになっているんですか?
北海道の場所がわかると、その横の変数が表示できるということ?
0303nobodyさん
02/08/21 22:40ID:???それじゃ、ダメなんですよ。スマソ
open(LOG,$log)
@lines = <LOG>;$lines=@lines;close(LOG);
この処理はなくてもいいんですが、
記事が無くなっても、次のページへと言うのが
残ってしまうんです
0304297
02/08/21 22:55ID:NuztNbpZハッシュについて調べてみ。
%hoge("キー","値");
$hoge{キー}で値が呼べる。
0305 ◆RbZL6NeQ
02/08/21 23:13ID:myM0YIeg各タグ、延々と同じようなことを繰り返す
もっとマシな書き方(効率・処理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 '>'}}
}
@_=($agent,...)
ライブラリのわりに、コピペして'1;'忘れ
0307nobodyさん
02/08/21 23:26ID:???0308nobodyさん
02/08/21 23:29ID:???;# がよくて # が悪い?????
0309nobodyさん
02/08/21 23:37ID:???0310_gunzip
02/08/21 23:54ID:???;# コメント
の形式のコメントが、たまに使われることがあるのは、
そのスクリプトが -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:SxBa3EGu0314nobodyさん
02/08/22 00:13ID:SxBa3EGu0315305 ◆Eth6qXuM
02/08/22 00:15ID:F/orcdTEスマソ、何も考えず適当に入れてた
最強なのか…一応変えとく
0316_gunzip ◆H/XdoCNg
02/08/22 00:33ID:???作者ではないので真意は分からないが、スタイルでそうしているだけだと思う。
#トリップ御教示ありがとう。
0317nobodyさん
02/08/22 01:03ID:???こいつ鬱陶しすぎ
マジむかつく
0319nobodyさん
02/08/22 01:26ID:lGXorje/ほれ 糞用のスレ立ててやったから
こっちに来い
http://pc.2ch.net/test/read.cgi/php/1029945604/l50
もう来てるみたいだけどな (w
0321nobodyさん
02/08/22 01:41ID:lGXorje/糞頭じゃ足りない事が、人間には沢山有るんでね
0323nobodyさん
02/08/22 12:42ID:C0K12SytKENT WEBの宅鯖計画を見ながらソフトのインストールを試みたんだけど
Active Perlのインストール中に警告ダイアログが出て
どうしてもうまくいきません。
うまくやる方法をうまく教えてください。
0324nobodyさん
02/08/22 12:43ID:???0325323
02/08/22 14:34ID:C0K12Syt警告文は
"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:???0327323
02/08/22 16:01ID:C0K12Syt出直してきます。
お手数をお掛けして申し訳ありませんでした(逝)
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
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:???if ($email eq ''") { <=(。∀゜)「"じゃなくて""じゃないの?」
print "$name : ";
}
else {
0332nobodyさん
02/08/22 21:57ID:???print "<A href=\"mailto:$email\">$name<\/A> : ";
0334初必者
02/08/22 22:03ID:???超初歩的でしたね(スイマセン・・・)
1時間悩んだのが、5分ほどでいけました。
何やってたんだろ・・・
どもでした!
0335nobodyさん
02/08/22 23:05ID:???""のなかに"が入る場合は\でエスケープするよりも、
print "<A href=\"mailto:$email\">$name<\/A> : ";
↓
print qq(<A href="mailto:$email">$name<\/A> : );
で書くほうがすっきりするよ。
0336初必者
02/08/23 00:25ID:???おっ!そんな方法もあるんですね。
参考になります。
なんせ、実質昨日から始めたみたいなモンなんで・・・
もう、お世話にならなくて済むようにガンバリマス。
ありがdでした。
0337nobodyさん
02/08/23 05:01ID:???ファイルの各行を配列の要素として読み込ませるコードって
open(FP,"+<$file");
@xx = <FP>;
foreach $yy (@xx) {
print $yy;
}
close(IN);
って書くらしいんだけど、
foreach $yy (@xx) {
print $yy;
}
これって意味あんの?
0338337
02/08/23 05:09ID:???0339nobodyさん
02/08/23 06:17ID:???読み込むなら
open(FP,"< $file"); #または open(FP,$file);
@xx = <FP>;
close(FP);
でいいと思う。
漏れも初心者だからあってるかわからん。
0342初必者
02/08/23 14:45ID:???かなりシンプルな掲示板を色々いじって勉強してるんですが、
テンポラリーファイルが、勝手に消えるんです。
全く分かんなかったんで、何度も何度も自分で作るんですけど、
プログラム実行するたび消えたんです。
で、検索したら、
「プログラムが動いているとき、一時的に作られる作業用ファイル」
って書いてあったんですけど、、、
つまり、実行後消えるって言うのは正常なんでしょうか?
0344初必者
02/08/23 15:06ID:???「一時的な」でしょ?
それは分かってます・・・
正常なのかが聞きたかっただけなんですけど、
煽られそうなんで、もぉやめときます。。。
0349nobodyさん
02/08/23 20:05ID:BD+5XVCeつまづいてしまったのですが、アドバイスいただけますでしょうか。
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:???これじゃいかんかの?
open(SAQ,"unittest.pl");
@fasx=<SAQ>;
$fasx[2]="-_-";#替えたい行
print @fasx;
0352350
02/08/24 01:55ID:???書きこむ時には結局
open(SAQ,">unittest.pl");
foreach(@cnt)
{ print SAQ "$_\n";}
ってやらないとだめなんですか?
0353nobodyさん
02/08/24 04:07ID:???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:???スレ違い以前に板違い。
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:???0361nobodyさん
02/08/24 17:37ID:???悲惨な終わり方だな。
0362nobodyさん
02/08/24 19:42ID:???print "含んでいる\n";
}
の/xxx/の部分て文字列じゃなく、変数にしてもできるんですか?
if ($str =~ /$str2/) {
print "含んでいる\n";
}
みたいに
結論からいうとできるけど、試せよ
0364nobodyさん
02/08/24 19:53ID:???0366nobodyさん
02/08/24 20:27ID:???0367nobodyさん
02/08/24 22:19ID:???@listから456を取り除いて、
print "@list";
で123,789にするにはどうすれば良いのでしょうか。
配列のindex Nの要素を取り除きたいのか、
値Xを持つ要素を取り除きたいのかで全然違うよ
# 前者
my $N = 1;
splice @list, $N, 1;
# 後者
$X = 456;
@list = grep { $X != $_ } @list;
0370367
02/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 =~ s/456//;
本買えよー
0374こんなのしか思いつかん
02/08/24 23:05ID:???$hoge =~ s/(.)/sprintf("\\x%02X",ord $1)/eg;
unpackは使いづらいから嫌い
0375nobodyさん
02/08/24 23:28ID:zQgcBRyf即レスありがとうございます。早速試してみましたところ
\x36\x35
と表示されました。
実はこの出力が欲しかったのではなく
バイナリエディタで見た場合に 0x41 と表示される
出力が欲しかったのです。
入力ファイル内容 が ABC の場合に
出力ファイル内容が 16 進バイナリで 41 42 43 であって欲しいのです。
エディタで開くと謎の文字が表示されるアレです。
私の説明が悪く申し訳ありません。
何に使うかと言いますと
ジャンクハードの FlashROM 内容をダンプした物を
文字列整形後バイナリデータに変換し逆アセンブルしたいのです。
他に方法がありましたら宜しくお願い致します。
0376nobodyさん
02/08/24 23:57ID:Us3nZQzg0377nobodyさん
02/08/25 00:12ID:EOslaqTi$count++ while($hoge =~ /$page/g);
0383nobodyさん
02/08/25 10:13ID:???いまさら泣いて許しを請うても遅いからな(w
0384nobodyさん
02/08/25 10:16ID:???糞固定どもと成れあっとけや糞虫。
0385nobodyさん
02/08/25 11:28ID:???0387nobodyさん
02/08/26 11:06ID:kuaIpm200388nobodyさん
02/08/26 11:27ID:???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:???教えてー
0390他にも方法はあるだろうけど…
02/08/26 12:26ID:???] あなたは Proxy を利用していますか?
]
] はい、利用しています (→Yahoo! へのリンク)
] いいえ、利用していません (→トップページへのリンク)
こんな感じのページを置いておく。
0393nobodyさん
02/08/26 13:36ID:???じゃぁ .htaccess でも池
http://pc.2ch.net/test/read.cgi/php/1019888234/l50
0396nobodyさん
02/08/26 15:38ID:IyYWB8TD着メロをうpできるようにするにはどうすればいいんですか?
0397nobodyさん
02/08/26 17:40ID:AuEFFmIZ色々な人のソースを参考に本を片手に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:???右ブラケットが欠けている。
0399nobodyさん
02/08/26 18:01ID:???0400299
02/08/26 20:06ID:???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を同じフォルダーに置いて、コマンドから実行させてみたりしましたが
ダメでした。ご教授して頂けないでしょうか?
0402299
02/08/26 22:43ID:4fIS3YbU@footer;
の中にNEXTがあるので、
print $table; をpush (@txt,$table);
にして
{ここで置き換え処理}
@header;
@txt;
@footer;
にしたのですが、@txtが大きくなると負荷が掛からないかと心配です
ログのサイズは大きくても200kくらいです
0403nobodyさん
02/08/26 22:55ID:???頼むから、一度くらい検索かけてくれ。
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:???1 短くて簡潔な方がイイ。
2 だと @DATA が空である必要があるし、よけいな while を呼び出さなければならないから。
0407nobodyさん
02/08/26 23:22ID:???0408nobodyさん
02/08/26 23:29ID:???0410404
02/08/26 23:34ID:???0411nobodyさん
02/08/27 00:56ID:???本当にファイルの中身を配列に入れる必要があるのかと
0412nobodyさん
02/08/27 02:38ID:???Runtime Exceptionって出てperl自体がこけるんだけど、
対処方法がわからない。なんとなく正規表現に負担をかける
処理を多用するとまずい感じ(64k制約の話を聞いたことがあるけど、
漏れの場合、扱ってる個々の文字列の長さはせいぜい2k程度)
だれか教えてちょ。
こける場所は不定。デバッガかませると動作完了したりする
ときもある。
0414nobodyさん
02/08/27 12:08ID:???日本語のページから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:???0417nobodyさん
02/08/27 15:55ID:???<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文字化け対策がうまく行きません。
(文字化けする絵文字としない絵文字がある。)
処理をうまくしてる人はどうやってやってます?
0421nobodyさん
02/08/27 17:30ID:???ヘッダーに空白行(\n\nってとこね)を出力した後には、もうContent-typeとかやってもダメです。
つまり出力できる画像は1つだけです。
0422419
02/08/27 18:00ID:???どうもありがとうございます。文字化けするものと、しないものを一部抜粋しました。
***************************************
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:???http://pc.2ch.net/test/read.cgi/php/1028052835/l50
0424nobodyさん
02/08/28 02:34ID:TSMc6GTX新しい文字列に置換えるスクリプトを作成したいのですが、わかりません。
下記のメールアドレスで行を取得して、元データ(@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:???とりあえず元ソースは全放棄したほうがいいと思った
#置き換え対象文字列
$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);
みたいなのでダメなんすか?って全部書いちゃったよおい。
0426425
02/08/28 04:06ID:???一時ファイル作ったほうがいいね。
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来訪者の度にCGIを実行して、時刻をチェックする方法以外ないでしょうか?
この方法だと、来訪者が増えるたびに処理が重くなってしまいます。
0430nobodyさん
02/08/28 15:34ID:z8uBgDDwm/^hoge$array[0]hoge/;
↑このように書いても、$array[0]はうまく展開されないんです。
どなたかいい知恵貸してください。
おながいします。
0431nobodyさん
02/08/28 16:42ID:???正規表現中のブラケット [] は文字クラスを表します。
foreach などで他の変数に代入してから処理する等の回避方法が考えられます。
0433431
02/08/28 17:11ID:???ごめん。
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"}
0434430
02/08/28 18:25ID:???すまそ、おっしゃる通りうごきますた。
正規表現を解釈するよりも前に変数展開してるんでしょうね、きっと。
>>430で「うまく展開されない」と書きましたが、別の原因でした……
…………………吊ってくるっす ゴメ
0435nobodyさん
02/08/28 18:44ID:???readdirで得たファイルリスト「@datafiles」から
カレントディレクトリやデータファイル以外のファイル名が収まっている要素をspliceしたいのですが
なにかうまい方法は無いでしょうか?
データファイルかどうかは命名規則「/^\d+(dat)$/」で判断したいと思っています
0436435
02/08/28 19:06ID:???@datafiles = grep(/^\d+(dat)$/, @filelist);
としてもダメでした
grepの使い方間違ってます?
0437nobodyさん
02/08/28 19:37ID:???だったりはしない?
0438結構前スレ888さん
02/08/28 19:38ID:99E4DmXW前教えてもらったのは"特定のURLから飛んできた人を弾く"
if ($ENV{'HTTP_REFERER'} =~ /aaa/) {
print "Location: abab\n\n";
exit;
}
(aaaから来た人をababに飛ばす)
"特定のURL以外から飛んできた人を弾く"を....
0439結構前スレ888さん
02/08/28 19:39ID:99E4DmXW弾きたいのだけど
0440437
02/08/28 19:46ID:???あと、ファイルテスト演算子 file test operator ってのもあるから。
それで良ければ調べてみるヨロシ
0442結構前スレ888さん
02/08/28 19:56ID:99E4DmXWつまり外部リンクできた人を弾きたいと(.cgiに)
0443nobodyさん
02/08/28 20:25ID:???else か not か !
0444結構前スレ888さん
02/08/28 20:44ID:99E4DmXW0445nobodyさん
02/08/28 20:52ID:???0446435
02/08/28 21:03ID:???そうでした・・・穴掘って埋まってきます・・・
0447nobodyさん
02/08/28 21:22ID:???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のこの問題はでてきます。
0448414
02/08/28 21:38ID:???いや、板違いってゆうのは撤回しますが、結局 ゲイツ が悪いんでしょ?
えーと、現在のところ、どうも原因不明の様ですし、初心者向けの話題でもないようですから。
Active Perl + Win の新スレ立ててみたらどうでしょうか。
0450437じゃないけど
02/08/28 22:29ID:???0451nobodyさん
02/08/29 02:33ID:r6Il9+nbでのアクセント付き記号の扱いに困っています。
例えば、&egarve;を入力して、&egarve;だけにマッチさせたいんで
すが、&egarve;とeが引っかかってきます。
ご存知のお助けください。
0452451
02/08/29 02:36ID:r6Il9+nb>例えば、&egarve;を入力して、&egarve;だけにマッチさせたいんで
>すが、&egarve;とeが引っかかってきます。
は
例えば、èを入力して、èだけにマッチさせたいんで
すが、èとeが引っかかってきます。
です。
0453?
02/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」とかもあったんですが・・・
検索しても見つからないのでお願いします。
0455nobodyさん
02/08/29 07:09ID:???検索の仕方を聞いたほうがいいんじゃねーの?
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
0456482
02/08/29 07:41ID:8thG1OyK( ´,_ゝ`)誰かここのパスワード解いて教えろ
オエの知識じゃわ が ん ね !!
0457nobodyさん
02/08/29 10:53ID:???http://pc.2ch.net/test/read.cgi/hack/997452913/101
0458?
02/08/29 14:55ID:???有難うございます。
つまり、
iは「大文字小文字を区別しない」で、
gは、「全体から探す」ってことで、
oは、「変数を1度しか展開しない」ってことなんですね
で、もう一つ疑問が・・・
=~ /***/ や
=~ m/***/ は解ったんですが、
=~ s/***/ の説明がないんですよ・・・
「m」が「/」以外のディリミタを使えるようにするためのものですよね?
同じ意味なのでしょうか?
違ったら、この「m」とか「s」入る場所?の名称なんかを教えて頂けないでしょうか?
検索すら出来ない状況なので・・・ホントすいません。
0459nobodyさん
02/08/29 15:00ID:???@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側の問題なのか
どうやって回避したらいいんでしょうか?
0460292
02/08/29 15:01ID:???$XXXに入ってる「Z」を「A」に書きかえる。(最初に見つかったやつだけ)
$XXX =~ s/Z/A/g;
$XXXに入ってる「Z」を「A」に書きかえる。(すべて)
$XXX =~ s/Z/A/i;
$XXXに入ってる「Z,z」を「A」に書きかえる。(大文字小文字を区別しない)
0463459
02/08/29 15:06ID:???テキストデータには展開される可能性がある文字列はありませんでした
・・・そういう意味じゃないのかな
>462
はい、TEXTAREAで挟むと半角スペースが現れますが
「print @data;」だとソースでも半角スペースは現れません
0464?
02/08/29 15:08ID:???sが、置き換えるって意味ですか!
ホントおばかでした。
スレ汚しすいませんでした。
皆さん有難うございました!
0466459
02/08/29 15:17ID:???うーん、直接その答えにはたどり着けませんでしたが
「print "<TEXTAREA name=\"text\" cols=\"80\" rows=\"16\">" . @data . "</TEXTAREA>";」
とすることで解決しました
ありがとう
0467292
02/08/29 15:27ID:???0469nobodyさん
02/08/29 15:28ID:jYAiqFv3*******.ap.plala.or.jp
こんなやつ
$ENV{'REMOTE_ADDR'};
だとIPアドレスが表示されるようなのですが
0470292
02/08/29 15:29ID:???>>466
$" という変数を見てみな。デフォルトでは半角スペース入ってるから。
この変数はprint "@xx";の時に区切りとして使うものを入れてるモノ。
先だって
$" = '';
としておけば半角スペースは無くなる。
0472292
02/08/29 15:32ID:???ただし、最近のプロバイダではここにリモホが入ってる設定にしてるところは少ない(無駄だから)
その場合は次のコードで行けるだろう。
$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;
}
0473469
02/08/29 15:33ID:oKWRspRKそうなのかしら。
でもぱっと見わかりやすいのもいいわ。
っていうかじゃぁ両方で。
0474469
02/08/29 15:35ID:oKWRspRKそう、REMOTE_HOSTでやってみたら
何も取得できなかったんですよ。
上のはアドレスから変換してるのでしょうか?
0475292
02/08/29 15:39ID:???nslookというサブルーチンに、IPアドレス$ENV{'REMOTE_ADDR'}を教えて
リモートホストを教えてもらって、空っぽだった$ENV{'REMOTE_HOST'}に代入するコードじゃよ。
0476nobodyさん
02/08/29 15:49ID:???何を取得できてるの?
foreach(sort(keys(%ENV))){$chk .= "$_ is $ENV{$_}<br>\n"}
0478476
02/08/29 15:57ID:???foreach(keys(%ENV)){$chk .= "$_<br>\n"}
0479469
02/08/29 16:03ID:KExh1vW6やってみましたが、それでもIPアドレスになっちゃう。
CGIサーバーはPlalaです
自分のPC上でやるとパソコンの名前が表示されます。
(ActivePerl+httpd)
0480nobodyさん
02/08/29 16:08ID:???あきらめるか、別の鯖で試す。
0481nobodyさん
02/08/29 16:32ID:SCkpIe5Lパースして、htmlから特定のデータを取得したいのですが
必要なモジュールとか、ソースとか解説のHPがあれば教えてください。
0483469
02/08/29 16:50ID:1fSV4HtQこんなのでいけました。
0484nobodyさん
02/08/29 17:01ID:SCkpIe5L何番目のスレの何番になります?
それ読みますから教えてください。
0486初心者の依頼者(´∀`; ◆3zTzMwh2
02/08/29 17:16ID:w2vhS8x7↑に答えが出てることはわかっているんですが、理解できません。
fusianasanで表示されるやつはどうやって取得するんですか?
0488初心者の依頼者(´∀`; ◆3zTzMwh2
02/08/29 17:20ID:w2vhS8x7別に
0490nobodyさん
02/08/29 17:30ID:SCkpIe5Lありがとうございます。
0491nobodyさん
02/08/29 18:02ID:???2chの使い方になると思うんだが、この板から全文検索したいんだが、どうすればいいの?
「全部表示してブラウザで検索」しかないのか? それとも googleに拾ってもらわなければいけないのかな?
0492nobodyさん
02/08/29 18:03ID:???google de "string site:www.2ch.net"
0494424
02/08/29 19:47ID:k9SFERS8有難うございました。
私の勘いで、作成したいスクリプトの記述が間違っていました。
すみませんでした。
(勉強の為、書いて頂いたソースは保存しました)
以下、教えて頂きたい内容です。
任意の文字列が含まれる1行を抽出し、複数の該当文字列を
新しい文字列に置換えるスクリプトを作成したいのですが、わかりません。
(置換え対象の文字列には、手入力の文字列も含まれます)
495の様に、メールアドレスで行を取得し、
@oldに格納されている全ての文字列を個々の変数に代入して、
ファイルに出力させるスクリプトを作成しましたが、うまく動作しません。
確認出来たエラーは2点です。
1.ファイルの一行目しか$lineに入りません。
その為、該当レコードがあるにも拘らず、「データがありません」と
なってしまいます。
2.レコードの改行が削除され、次のデータが同じ行に出力されてしまいます。
($old1,$old2,$old3,$old4,$old5) = split(/,/,$old);
@oldから抽出する上記以外の方法がわからず、困っています。
ソースは495です。お願い致します。
(改行が多く書き込めなかった為、分けました。)
0495424
02/08/29 19:47ID:k9SFERS8置き換えたい変数です→($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);
0497nobodyさん
02/08/29 20:22ID:???何をやりたいのだか解らないんだけど。
>>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:0ltwZgpC1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.future-web.tv/haru/
0503498
02/08/29 22:31ID:mQvrBYqz逝ってきます。
0504424
02/08/29 23:02ID:zsUv5K1Pレス有難うございました。
書き方が悪くてすみませんでした。
>>425 様にも>>426で教えて頂いたのですが・・・。
置換え前の文字は$mail以外、変数では無いので
マッチさせる事が出来ない状態でした。
ファイルから文字を取得し、変数に格納したいと思っていました。
入力フォームを作り直します。
0505505
02/08/29 23:31ID:kiu2pPYaopen(HTML, ">hoge.html") || &error("HTMl化に失敗しました。");
print HTML &end;
close(HTML); }
開いたファイル(hoge.html)に書き込みたくて上のように記述したのですが、
ファイルを開いて直接サブルーチン(&end)を使うのは無理なのでしょうか。
0506_
02/08/30 00:12ID:???/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < >>505んな こたァない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0508505
02/08/30 13:07ID:tuhObyZ6&header;
open(IN,"$file") || &error("$file を読み込めません");
@lines = <IN>;
close(IN);
foreach $line (@lines) {
local($name,$url,$mail,$body,$hogehoge) = split(/<>/,$line);
&output;
}
&footer;
exit; }
こんな感じです。
0510
02/08/30 13:29ID:UPHK1/CWフォントサイズを大きくしたり、名前を変更している人がいました。
どうやったらできるのでしょうか?
0512nobodyさん
02/08/30 13:43ID:???戻り値を print 死体なら
return @lines;
だろうけど…。どう説明して良いやら。
>>510
そのチャットの管理人に聞いて下さい。
0513
02/08/30 13:45ID:UPHK1/CWソースを書き換えるのですか?
どうやれば書き換えられますか?
0515_
02/08/31 12:58ID:???substr($_, 8, 1)= "\x89";
substr($_, 14, 1)= "\x81";
print;
0516>_
02/08/31 13:40ID:???0517517
02/09/01 03:40ID:+nm+B08x知りたい場合はどうしたらよいでしょうか?
例えば
$a = { 'b' => [ $c = { 'd' => 'e' } ] };
とあった場合に、
&rel($a,$c) = '{b}[0]' みたいな出力を得たいのですが…
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;
}
0527nobodyさん
02/09/01 13:54ID:???0528517
02/09/01 15:43ID:+nm+B08xやっぱりbreadth-firstサーチをしないとできないってことっすかね?
>>520,521
ありがとうございます。が、より一般的なケース(リファレンスの構造を問わない)が対象なのです…
0529517
02/09/01 15:47ID:+nm+B08xそれをどうにかして逆に辿れないものかと思うのですが…
0530nobodyさん
02/09/01 16:23ID:oCDCWNWk0531 ◆4XfSMGTg
02/09/01 16:27ID:A6Gp7Ink0532nobodyさん
02/09/01 17:54ID:???0533_gunzip ◆H/XdoCNg
02/09/01 18:23ID:???いい加減だが...。
#!/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'}
0534517
02/09/01 23:45ID:???そうですよね…、クイックハックならData::Dumperを使うのが一番手っ取り早いんですが、
リファレンス構造を全てtraverseするので実行速度が…
ダイレクトに辿るとしたっら、やっぱり要素ごとにリファレンス元を
保持するようなarrayを持たせるしかないですかね。。
0535nobodyさん
02/09/01 23:58ID:???デバッガでも作ってるの?
0536nobodyさん
02/09/02 01:22ID:???ネット初心者なんで本当に分かりません。誰か教えて下さい。
0537nobodyさん
02/09/02 01:29ID:???HTML、CSS,JavaScriptやブラウザーなど
Webプログラミング
PerlやCGI、PHP,Ruby等
0538nobodyさん
02/09/02 01:31ID:???Webプログラミング→プログラマがやる
0539nobodyさん
02/09/02 01:34ID:???ありがとうございます。と言っても、本当はよくわかりません(w
仕事の内容がどう違うか分かり易く教えて頂けるとありがたいんですが。
>>538
ありがとうございます。
0540初心者
02/09/02 02:28ID:???最初にエディタやコンパイラーは、何を落とせばよいのでしょうか?
先輩の皆様お薦めのものなどございますでしょうか?
使ってるPCはWinMEなのですが、ご教授お願いします。
0541nobodyさん
02/09/02 02:31ID:???自分が使いやすいと想うテキストエディタを使え。
>コンパイラー
落ち着け。
ActivePerlでも落としとけ。
0542nobodyさん
02/09/02 02:48ID:???sortはできたのですが
opendir(DIR, "$logdir") ;
@2ch = readdir(DIR);
closedir(DIR);
ファイル名を読み込んでいる様子で。
検索してやり方を探してみたのですが自分では分かりませんでした。
アドバイスお願いいたします。
0543518
02/09/02 06:08ID:???禿同。(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:???readdirのリファレンスを穴が空くほど読め
それはopendirしたディレクトリのファイルリストを得る関数だ
だいたい複数ファイルを読み込んでsortって何だ?
そのファイルにはASCIIデータが1行しか入ってない事が保証されてんのか?
要リファクタリングと思われ
0546nobodyさん
02/09/02 10:34ID:???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:???0550nobodyさん
02/09/02 12:02ID:???<a href="" target="_blank"></a>
で囲みたいのですが、どうやってアドレスと判定すればよいのでしょうか?
0551nobodyさん
02/09/02 12:27ID:???仕様です
>>550
$message =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1" target="_blank">$1<\/a>/gi;
0554548
02/09/02 12:39ID:???なるほど。
$tm=time;
($mday,$mon)=(localtime $tm)[3,4];
で、できました。
ありがとうございました。
(undef,undef,undef,$mday,$mon)=localtime;
0558542
02/09/02 19:45ID:???@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:???@txt = &lock_open("a.txt");
とか
print OUT &lock_open("a.txt");
とか
chop @txt;
とか。どーでもいーけど。
0561nobodyさん
02/09/02 20:56ID:???0563nobodyさん
02/09/02 21:53ID:Ldjfc++cその際にタイムアウトの時間を設定することは出来ませんか?
例えば、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:???$time=$^T;
if(int($^T-$time)>=10){shutdown(2)}
0567nobodyさん
02/09/03 00:40ID:???ヽ(´∀`)ノ
( へ)
ヽ
0568nobodyさん
02/09/03 00:41ID:???0570nobodyさん
02/09/03 18:24ID:???0571nobodyさん
02/09/03 19:43ID:bBGpZ26t0572nobodyさん
02/09/03 19:48ID:???0573f
02/09/03 19:51ID:K/olstAP---●●●変態痴女を紹介致します。●●●---
例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・
フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・
アナル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:OLMxXVpc0575初心者
02/09/03 23:24ID:KI0OEEO7perlで、他のurlに変数と値をポスト送信してアクセスする方法はありますか?
print"Location: http://〜";
はうまくいきませんでした。お願いします。
詳しい方、教えてください。
0578初心者
02/09/03 23:34ID:KI0OEEO7ふつう、<a>タグの記述だと、
"〜.cgi" method="post" postdata="name=value&name2=value2"
とかになるのかな?と思うのですが(htmlではなくhdmlで作業して
いるので、そういう記述になっています)、
GETメソッドなら
print"Location: http://〜.cgi?name=value&name2=value2";
みたいなやり方で出来るのかもしれませんが、
postだとどうなのかな?と。
perl自体、初めて触ったという話にならない初心者なので、
正直まいっています。
詳しい方、またそうでない方も、参考程度の意見で構わないので、
聞かせていただけたら幸いです。
0579bloom
02/09/03 23:43ID:L4DD9EQOhttp://www.leverage.jp/bloom/start/
0583T女の竹田
02/09/04 01:43ID:???ソケットで繋いで、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:???http://www.parkcity.ne.jp/~chaichan/qanda/qa3100.htm?02-09-04-02-58
0585nobodyさん
02/09/04 09:33ID:???# 記事の最大保存容量(単位:KB)
$maxsize = 100;
$maxsize = $maxsize * 1000;
$logsize = (stat($logpass))[7];
while($logsize > $maxsize) {pop @data; $logsize = (stat($logpass))[7];}
書き込み処理の直前に↑のようにやってみたんですがうまくいきませんでした。
変数を書き出したりしてみたんですが原因がわからず困っています。
どなたかわかりませんでしょうか?
0586名無しさん@Meadow
02/09/04 10:08ID:???ファイルは変わっていない。
0588名無しさん@Meadow
02/09/04 12:03ID:gOg0cXWU書き込む前でしょ。
while($logsize > $maxsize) {pop @data; ↑$logsize = (stat($logpass))[7];}
矢印のところで書き込まないと・・・
それより別の方法を考えたら?
0589nobodyさん
02/09/04 13:23ID:???0590nobodyさん
02/09/04 14:56ID:???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のスクリプトを
扱っているようなホームページは知りませんか?
もちろん、ここにスクリプトを書いて下されば
もちろん、なおさら有り難い事ですが…
0594b
02/09/04 16:01ID:07M2lj7H0595nobodyさん
02/09/04 16:12ID:A3ZRMRKj実行する際に、専用のSSLサーバー(ttps://***.site-secure.net/)
を通すとInternalServerErrorが出てしまいます。
どなたか分かる方いたらお願いします。
0596nobodyさん
02/09/04 16:19ID:???, - - 、 /ヽ
/ O \グヒャッ ! /ヽ、 / ヽ
,, : ,ー, O | / _,;, -'''"~~ ヽ
'' ; ∴_ノゝ ゝ /o O ヽ
ヽ ,;''"~"'';, / ┌─┐ ノ( ヽ
_ノ| ;;'';;'';;'';;'' | / | ⌒ | <スレ違いもはなはだしいわ!
ゝ、ヾ ヾ | ト、 | /
/ ヽ ヾ ヾ ヾ、 \ノ ノ
ノ\_ヾ ヾ /⌒ヽ、 ___/、
ノヾ ヾ_ _/ ノ, ヽ
ヽ、ゝ ノ ノ ハ ヽ
ゝ、 ノ ノ、 ノ ゝ | )
ー─一'´ ゝ、 l'´
) /
CGIだけど、なんか質問ある? Part 6
http://pc.2ch.net/test/read.cgi/php/1025930486/
0597nobodyさん
02/09/04 17:33ID:???どんなスクリプトでも頭に以下のような文を入れれば弾ける。
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'});
0598593
02/09/04 19:35ID:rVUPKdSlどうも有り難うございました。
まさか、こんなに早く教えて頂けるとは思いませんでした。
ところで
expires=Fri, 31-Dec-2010 00:00:00 GMT\n
の部分なのですが、ここの記述は
絶対こうでなくても構いませんよね。
0600名無しさん@Meadow
02/09/04 21:42ID:rtiaBVOu$ perl -e '@ar=qw(a b c d e f); print length("@ar"), "\n";'
11
0601nobodyさん
02/09/04 22:06ID:???一気に消す方法はないでしょうか?ご教授頂けないでしょうか?
0602名無しさん@Meadow
02/09/04 22:18ID:rtiaBVOu$ perl -e 'system("rm -rf ./dir");'
./dirってとこは、消すディレクトリのパスを入れてね。
0604601
02/09/04 22:33ID:???0605名無しさん@Meadow
02/09/04 22:35ID:rtiaBVOu>そう言う方法があるのですがね。
~~
逆説の「が」ですか?
だったら、
$ perl -e 'use File::Path; rmtree ("./dir");'
0606601
02/09/04 22:42ID:???そういう意味じゃないです(;´Д`)
そちらもダメでした・・・
logフォルダーに 1 と言うフォルダーがあり、
その中に、0.log 1.log ・・・ 10.log
と言うファイルが有るので、それをフォルダーごと消したかったんです。
説明が悪かったのかも知れませんが・・・
0607名無しさん@Meadow
02/09/04 22:50ID:???>そちらもダメでした・・・
perl5でしょ?
libディレクトリにFileモジュールが入ってないってこと?
考えがたい。
じゃスクリプトミス?
use File::Path;
rmtree("./dir");
ってちゃんと書いた?
じゃファイル属性を確認してちょ。
0611nobodyさん
02/09/05 04:56ID:???\r\nって\nにしちゃダメなんすか?
特に動作に問題は見当たらないしファイルサイズも削れるんで\nでいきたいんすけど。
それとも不都合な環境とかあるんでしょうか。
0612名無しさん@Meadow
02/09/05 05:34ID:???改行は、<br>で表すんだから、別に構わんです。
ただ、編集環境がwindows(MS-dos)なら、普通、¥r¥nが自動的に
つくんですが。いちいち変換するの?
0613611
02/09/05 05:48ID:???改行コード自体いまいち理解できてないんですすんまそん。とりあえず
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名無しさん@Meadow
02/09/05 06:01ID:???http://tohoho.wakusei.ne.jp/wwwxx011.htm
0615名無しさん@Meadow
02/09/05 06:12ID:???出力だから、問題は起こらないね。
0617T女の竹田
02/09/05 11:51ID:sI+RlSZgftp://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エラーで
70行目に @Iとあるけど\@Iにするべきというエラーがでるのだけど
そんなものどこにも書いてないです。
いままで行数があってないなどありましたが、@Iというもの自体が
ない場合のエラー場所がわかりません。
何か特有の字が @Iとなったりしますか?
0620nobodyさん
02/09/05 12:17ID:???0621nobodyさん
02/09/05 13:53ID:???0622613
02/09/05 13:58ID:???\nを使うって事はアプリケーション側のサービスに甘えるってカンジすか。
とりあえずCGIを公に配布とかしたりしない限りは
こっそり\n使っちゃってもいっか、と解釈。
0623nobodyさん
02/09/05 14:11ID:???だとWindowsサーバーで動かすときとか、おかしくなることがある。
0625nobodyさん
02/09/05 14:24ID:???のように16進数でCRLFを表すのがいいらしい。
Windowsでの改行はCRLFだから、\r\nで出力してしまうと\r\r\nになってしまう罠。
0626613
02/09/05 14:29ID:???0628名無しさん@Meadow
02/09/05 14:55ID:???0629nobodyさん
02/09/05 16:18ID:FN8hs1rs>>EOF 内にHTMLのほうで使ってるまま持って来たら
InternalServerErrorに・・・。
ジャバスクリプト取ったらエラーは起こらないのだけど。
初心者わらってんじゃねーよ。
初心者をあざ笑うスレでも作ってそこでやってくれ。
解っているのなら教えてやって下さい。
初心者同士で嘗め合うことから先に進めません。
>>629
Java Script はクライアント側で動作しますので、
Perl 文法エラーの可能性が高いと思われます。
0635kusokote ◆4XfSMGTg
02/09/05 21:42ID:???◆4XfSMGTg はオープントリップ kusokote
630 と 631 は別人。
0636nobodyさん
02/09/05 22:27ID:CVMgCTHS初めてperlでCGIを書いてみたんですが動きません。
どんな原因が考えられますか?
#!/usr/local/bin/perl
require "./jcode.pl";
$object = $ENV{ 'QUERY_STRING' };
open (FILEOUT, ">./xxx.txt");
print FILEOUT @object;
close (FILEOUT);
exit;
0638nobodyさん
02/09/05 22:35ID:???jcode.pl が使われていない。
GETで受け取るため文字制限がある。
0639nobodyさん
02/09/05 22:45ID:???フォルダ内のファイル数を数えて、その数+1を新規の過去ログのファイル名にしてるんすよ。
でも、そうすると既に存在するファイルを削除した場合、当然やけどファイル数が減ってしもて
ファイル名がかぶってしまうんすよ。
何か良いファイル名の付け方知りまへんか。
ご教授よろしくお願いします。
0640nobodyさん
02/09/05 22:50ID:???0642nobodyさん
02/09/05 23:04ID:???空きが見つかるまでリピートぶん回して
open(OUT, "./log/日付とか$i.html");
0643nobodyさん
02/09/05 23:08ID:???0645639
02/09/05 23:16ID:???0646T女の竹田
02/09/05 23:55ID:???半角全角は面倒だね。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は好きに変えてね。
0647636
02/09/06 00:15ID:GoSqrpgTけれどデコードっぽいことをしてませんが、半角カナいれたりしても何も問題がありません。
のちのちまずいことになりますかね?
>半角カナいれたりしても何も問題がありません。
EUCで書いてるからカシラ
0649nobodyさん
02/09/06 00:22ID:+YKj9Zdt俺はJAVAscriptで入力制限てどうも気に入らないんだけどどうよ?
ユーザビリティーを考えてjavascriptの入力チェックを書くことあるけど
クライアントでチェックってどうも設計上よろしくないと思っている俺。
0650636
02/09/06 00:37ID:GoSqrpgTはい EUCで書きますた
0651nobodyさん
02/09/06 00:37ID:???ここはPerlスレだからCGIと仮定するのもおかしいかもしれないけど、
「CGIでParsed headers」なら規格上 LFのみ か、 CRLF のどちらかです。
http://hoohoo.ncsa.uiuc.edu/cgi/out.html
もうちょっと詳しく言うと、CGIのヘッダというのは
HTTPサーバが解釈して、HTTPヘッダを生成するためのものなので、
フォーマットは一緒ですがHTTPのヘッダとは別物と考えるべきです。
蛇足で、NPHの場合はそのままクライアントに渡されるので、
当然CRLFにする必要があります。
0652651
02/09/06 00:38ID:???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
0656nobodyさん
02/09/06 00:48ID:???$ua=$ENV{'HTTP_USER_AGENT'};
if($ua=~/UP.Browser|DoCoMo|J-PHONE|ASTEL|PDXGW|L-mode/i){
あとはお好きに
ttp://specters.net/cgipon/labo/c_dist.html
ここの内容を要約して見たつもり。
0663T女の竹田
02/09/06 01:16ID:???うん、セキュリティから言うとJavaScriptじゃ何もしてないのと同じだしね。
この場合みたいにおまけみたいな機能ならいいかなと思った。
>>660,661だ
0667nobodyさん
02/09/06 03:28ID:???ぶっちゃけスクリプトのどこに置くのが一番効率いいんでしょうか。
とにかく先頭の方でしょうか
はたまた最下部でしょうか
それとも呼び出す直前でしょうか
どこでもいっしょでしょうか
というかなるべく使わないほうがいいんでしょうか
自分では調べられないので教えてくださいまし。
0668nobodyさん
02/09/06 03:50ID:???0669667
02/09/06 03:51ID:???0670名無しさん@Meadow
02/09/06 05:32ID:dZ6p0GwtIE5.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/0Dw0672nobodyさん
02/09/06 06:59ID:???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:???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:???板違いかな
http://pc.2ch.net/perl/
こっちちゃう
0676nobodyさん
02/09/06 07:23ID:???板違いかな
http://natto.2ch.net/denpa/
こっちちゃう
0678nobodyさん
02/09/06 15:15ID:???0680ぱぴぷぺ
02/09/06 17:41ID:UnlQ9r36と考えてるんだけど、モジュールとか使わない場合、
XBMつーーのがあるのを知ったのですが、
これはモノクロのみカラーは絶対ダメ?
0681nobodyさん
02/09/06 18:28ID:???>動的に画像をブラウザに表示
なら、Location、binmodeで吐く
「動的に作成した画像をブラウザに表示」
なら、GDが無難か?ファイルにもよるか…
0682nobodyさん
02/09/06 18:31ID:???xbm,xpmはIEで表示できたっけ。
0683名無しさん@Meadow
02/09/06 20:35ID:???perlによる日本語の扱いはeucにするのが常識。
0686nobodyさん
02/09/06 23:31ID:???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:1kVQvMrN1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
インターネットができる環境の方なら誰でも参加可能です。
インターネットを利用したビジネスですので、自宅や会社で好きなときにで
きるビジネスです。
■専門的な知識は一切不要!
ビジネスに必要なツールは全て当社で用意いたします。
また、サポートも万全です。
■詳細は今すぐこちらから
http://www.bea.hi-ho.ne.jp/paisen/
0692685
02/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;
0693685
02/09/07 00:02ID:???$ccc=~ s/(\d{1,$cco})([^\n]*)*/$2/g;
こふだった。
0694685
02/09/07 00:05ID:???0695685
02/09/07 00:12ID:???$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";
0697nobodyさん
02/09/07 00:18ID:???$bbb = '124';
$aaa =~ s/(.)$//;$bbb = $1.$bbb;
0699T女の竹田
02/09/07 00:23ID:???そのスクリプトを理解する必要はないし、そのスクリプトから
何かを学ぼうと思わない方がいいと思うよ。
>>689
そのまま
$bbb = chop($aaa).$bbb;
で動くと思うけど。
0701685
02/09/07 00:24ID:???$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";
0702685
02/09/07 00:39ID:???きさまは以前にも突然現れ消えたことがあった。]
689[オラには聞き逃げができる。]
685[そいつはやっかいな技だ。バシッ!私も聞き逃げは自身があるんだ。]
0703685
02/09/07 00:43ID:???685[689とまではいかないがね。]
0704689
02/09/07 01:15ID:mL5CsCc5わたしもなぜ$bbb = chop($aaa).$bbb; で$bbbの値全部が$aaaの頭にくっついて
しまうのか、わからないんです。
>>685
$aaa $bbb の値は dat.txtを参照しているので、固定値ではありません。
0705689
02/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の頭に付く。
0708689
02/09/07 01:55ID:mL5CsCc5きっとその通りです(><)
でも、置換条件があるので、
if($aaa ne $hoge){
$bbb = chop(aaa).$bbb;
}
というように、{}内に書かなきゃいけないかなと思っているのです。
発想自体間違っているのかな...
>>707
文字列扱いにする方法はありますでしょうか。。
0710nobodyさん
02/09/07 02:03ID:???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:???0713689
02/09/07 02:10ID:mL5CsCc5とりあえずchopはあきらめてsubstrで試してみます。
(やりたい事は同じはずだから)
ありがとうございました。
0714nobodyさん
02/09/07 02:12ID:???その外側にwhile(){〜}とかfor(){〜}とかforeach(){〜}とかの
ループがあるんじゃないのか。
substrじゃ$aaaの値は減らないけど良いの?話違わない?
>>712
スレタイ嫁
0715nobodyさん
02/09/07 02:33ID:???$bbb = (chop($aaa)).$bbb;
0717名無しさん@Meadow
02/09/07 04:24ID:???私は、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ゲームを作ることで
そのために参考書を買って勉強したいのですが
オススメの本ありますか?
本屋いってもゲーム作りの本がどれだかわからなくて・・・
よろしくおねがいします。
0722nobodyさん
02/09/07 18:40ID:???作りたいゲームにもよるけど
Perl は君の求めるものに向いてないと思うよ。
JavaScript とかの方が良いんじゃない?
0724nobodyさん
02/09/07 19:11ID:???まてまて、Flash+CGIという素晴らしいコンビネィションがあるだろうが
0726nobodyさん
02/09/07 20:02ID:6TBf75EAヤッタ?マン コーヒー ライター
という3つがスペースで区切られてあった時、
aa=ヤッタ?マン
bb=コーヒー
cc=ライター
というふうにするにはどうすればよいのでしょうか?
0727nobodyさん
02/09/07 20:05ID:???>>721 はわざわざこのスレを選んだんだ。
http://www.webgame.co.jp/
でも Perl のゲームはわりとあるし。
てゆうか検索してオレがびっくりしたよ。
しりとりゲームくらいならココで。
http://www.geocities.co.jp/SiliconValley-Oakland/1680/xperl/
0730CGIゲームつくりたい人
02/09/07 20:58ID:BCsa1yWWレスありがとうございます。
作りたいゲームは・・・罪と罰++やFFAみたいなゲームです
普通のPerlの本をきちんと読めば作れますか?
それともゲーム作成向けの本とかあるんですか?
0732nobodyさん
02/09/07 21:08ID:???だいたいゲーム作りたいならCやれ。
Perlは馬鹿でも使える言語だが、ゲームが作りやすい言語でない。
習得期間は
Perlは3カ月で
Cは1年
C++は3年だ。
Perlの本はオライリーの奴買っとけ。
0733nobodyさん
02/09/07 21:13ID:???複雑さがCとは比べものにならないでしょ(^_^;)
0734nobodyさん
02/09/07 21:17ID:???両方覚えたけどPerlの方が楽。
Cは基本的な部分を覚えるまでに挫ける人が出そう。
プログラムのいろはを知らない人間ならPerlからの方が断然楽だと思う。
サンプルソースが山のように転がってるし。
なにをもって習得とするかの問題だけど、出力をHTMLでできる分、
PerlでCGIスクリプト作った方が楽だと思うよ。
0735nobodyさん
02/09/07 22:28ID:???perlは「ゲームを作るための言語」ではないので
「ゲームの作り方の本」なるものはないと思われ。
応用すればゲームにもなるというだけの話
0736nobodyさん
02/09/08 01:41ID:GXmEPtQHと
foreach(@xx){〜}
の違いを教えてください
0737nobodyさん
02/09/08 01:46ID:???perl -MO=Deparse,-x7 -e 'foreach(qw/a b c/){ print }'
というわけで、for(@配列)の場合、ただのforeachと同等。
0738nobodyさん
02/09/08 01:53ID:GXmEPtQH0739nobodyさん
02/09/08 06:17ID:nOl8KoRoperlでゲームは作れるが、perlでゲームを作る本などない
perlで掲示板が作れるようになれば、まあゲームも作れるだろう
0741nobodyさん
02/09/08 06:47ID:gqIGmvuoアクション系列のゲームならそうでしょうが、ウェブ上でのゲームなら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以下のソースだと,カウンタの値が永遠に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;
0744nobodyさん
02/09/08 11:41ID:???html形式で送ろうと思うんですが、
ヘッダーの部分の
Content-Type: text/plain; charset=ISO-20220JP
ここのtext/plainを
text/html
に変えればいいだけですか?
ローカルだと実行できないので教えてください。
0746nobodyさん
02/09/08 12:14ID:Y8OpaJeI掲示板のプログラムを作成しています。
『投稿確認』をしたいのですが、そこでどうにもこうにも困ってるキングオブDQNなんです。
まず、htmlファイルからsubmitで送られたデータを表示することはできるのですが
そこから先、どうすればいいのか分かりません。
どうすれば
[投稿確認画面表示]⇒[logファイルへの書き込み]の二段構えにすることができるのでしょう?
0747nobodyさん
02/09/08 12:21ID:???<input type="hidden" name="***" value="*********">
hidden
0749746
02/09/08 12:31ID:Y8OpaJeIありがとうございます。さっそく作ってみます。
0751nobodyさん
02/09/08 13:02ID:???0752746
02/09/08 13:16ID:Y8OpaJeI確認画面で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とかのデータが全部消えてる。
0754747
02/09/08 13:21ID:???1から勉強しなおせ。
>751
gotoなどと言ってみるテスト。
0757747
02/09/08 13:30ID:???nameなどのデータを入力
↓
入力されたデータを受け取る
確認画面表示
↓
入力されたデータを送っていない
データが空っぽ
0759746
02/09/08 14:01ID:???なには他に注意点はあるのでしょうか?
荒らしてゴメン。
0760nobodyさん
02/09/08 14:04ID:???ソースをtxtにしてアプれ。
多分一斉につっこんでくれる。
0762761?
02/09/08 14:11ID:???これだと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:???0764746
02/09/08 14:25ID:???0765nobodyさん
02/09/08 14:29ID:???0766nobodyさん
02/09/08 14:29ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0767nobodyさん
02/09/08 14:45ID:971QY8yxどのように書いたらよいですか?
a.sh
#!/bin/sh
STR=testtxt
↑
(このSTRという変数をperlのスクリプト内で使いたい)
0768nobodyさん
02/09/08 14:52ID:???#!/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:QxRWekvCiモード用作成は初めてで、
しかもMacなので、どうやってテストすればいいか分かりません。
iモードツールみたいなもののMac版ってないですかね?
教えて下さい。
0770nobodyさん
02/09/08 16:27ID:???0771nobodyさん
02/09/08 16:30ID:fnlZSMGR0772nobodyさん
02/09/08 21:22ID:???どうやらGoogieは、「〜.cgi」で終わってるリンクは無視するけど、
「〜.cgi?***」となってるリンクは拾う模様。
***の部分はテキトーで構わないので、Googleに拾って欲しければ
そのCGIへリンクを張る時に、「<a href=〜.cgi?hoge>」とでもしておけばよし。
まぁ俺調べに過ぎないのでダメだったらすまそ。
つってもスレ違いぽいけど。
0773nobodyさん
02/09/08 21:42ID:???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:wn4ctmfO0776nobodyさん
02/09/08 22:13ID:???漏れ串くらいしか無理。
A串は無理。
診断君でも見てな。
0777nobodyさん
02/09/08 22:13ID:???0778775
02/09/08 22:18ID:???0779741
02/09/08 22:19ID:gqIGmvuo0780nobodyさん
02/09/09 00:56ID:ocbC3C/Q0781nobodyさん
02/09/09 01:41ID:ewVE42mB初心者なのでよろしくお願い致します
CGIを単独で実行できるEXEにするようなツールはありませんか?
postやgetで受信した変数を判断し、ローカルでそれっきりで動くもの
そういうものはありませんか?
0782nobodyさん
02/09/09 01:47ID:???0783Rikuta
02/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ありがとうございます
試して見ます
0785741
02/09/09 02:12ID:2XJWXXjE0786741
02/09/09 02:49ID:2XJWXXjE0788787
02/09/09 03:07ID:???0789nobodyさん
02/09/09 03:08ID:EyAemdpt$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。それも他の書き込みに対するロックなので
読み込みには無力。
書き込みで開いてロックしときな。
0791nobodyさん
02/09/09 03:26ID:???エンコードして切ってデコードって言いたいんじゃないの?こんなふうに。
$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;
0792791
02/09/09 03:42ID:???0793nobodyさん
02/09/09 03:43ID:PULoisdM空行を削除するにはどうしたらいいんですか?
あたりまえだと思うけど
while(<STDIN>){
s/^$//;
}
としても駄目なんです。。
0794nobodyさん
02/09/09 04:47ID:???@line = <IN>;
$n = @line;
for($i=0; $i<$n; $i++){
if($line[$i] eq "\n"){
$line[$i] = '';
}
}
かな…?
0795名無しさん@Meadow
02/09/09 05:44ID:???print unless /^$/;
で逝けますYO
0796T女の竹田
02/09/09 07:59ID:???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;
}
0799nobodyさん
02/09/09 10:16ID:OPX6Zz9+パスワードが違ったらahoと表示させたいんですよ
eqだと合ってたらahoですよね?
そこまでわかってて何故neにたどりつけないのか謎
ちなみにパスワードは暗号化したほうが良いよ
0801nobodyさん
02/09/09 10:41ID:OPX6Zz9+neでやっても500Internal...がでてきちゃうんですよ
0802nobodyさん
02/09/09 10:54ID:OPX6Zz9+passが違う場合にif内を実行したらcgiを終了させるものを作りたいんですよ
(passが合ってるならifより後を実行)
0803 ◆TpctYDQ6
02/09/09 10:56ID:YALFpbWAprint "aho";
exit;
}
で、エラーなら問題は別のところでしょ。
0804nobodyさん
02/09/09 11:04ID:OPX6Zz9+print "Content-type: text/html; charset=EUC-JP\n";
を加えたら正しく動きました。スマンコ
首釣って逝ってきます。
0806nobodyさん
02/09/10 01:33ID:???その方法でいけました。
ただ、
while(<STDIN>){
s/hoge/hage/;
s/omeko/sasete/;
print;
}
みたいな置換と一緒に空行を削除したい
場合はどうすればいいの?
ifをネストすればいけると思うんだけど
書けないので教えてください。
0807適当さん
02/09/10 06:52ID:???while(<STDIN>){
if($_ ne"\n"){
s/hoge/hage/;
s/omeko/sasete/;
print;
}
}
0808nobodyさん
02/09/10 12:40ID:???今日が、その年その月の第何週何日目か?
を求める方法を教えて下さい。
例えば今日の場合、第2週の3日目なので
出力結果を23と得たいです。
お願いします。
0809名無しさん@Meadow
02/09/10 12:47ID:???while(<STDIN>){
next if /^$/;
s/omae/bakaka/;
s/omae/ahoka/;
print;
}
でもええよ。
0810nobodyさん
02/09/10 12:59ID:???($sec , $min , $hour , $mday , $mon , $year , $week) = localhost(time);
print (int($mday/7)+1)*10 + $week ;
0811nobodyさん
02/09/10 12:59ID:???∧‖∧
0812nobodyさん
02/09/10 13:02ID:???それだと2-6日は必ず第1週になるよ…
0813nobodyさん
02/09/10 13:29ID:???0814∧‖∧
02/09/10 13:46ID:???仕様書の意味取り違えてました。
($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:???>>815
ランダムに日付を変えて何度かテストしてみても
期待通りの結果が得られて大丈夫でした。
ちなみに、利用するのは
いつも巡回する複数サイトの一部記事を
引っこ抜いて表示させるものです。
新しく追加するサイトのファイル名が
今回質問させていただいたフォーマットでした。
ありがとうございました。
0817nobodyさん
02/09/10 21:40ID:ApnEpI8Hリャマ本第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/U0819817
02/09/10 21:45ID:ApnEpI8Hルートディレクトリの「/」も 「.*/」で、「.」にマッチするやん!
ってゆーか、これだと、
# test.pl aaa ~/bbb
の場合、エラーになるよね?
ニョロがマッチしないから。。。
で、1)の方は、おながいします。
0820nobodyさん
02/09/10 21:45ID:???1)については
ttp://namazu.org/~tsuchiya/perl/info/perl-ja_44.html#SEC44
0821817
02/09/10 21:59ID:ApnEpI8Hははぁ、なるほど!
文字列を単一行として扱う、ということですね。
だけど、この問題の場合、こんなオプションが必要なのでしょうか?
勘違いしているかもしれないけど、漏れの理解では、深いディレクトリ
を処理すると、引数が複数行になってしまうことがあるかもしれないので
sをつける、と思ってるのですが、この考えによると、普通mvするとき
引数に改行なんか入れないですよね?
そもそも、んな深いディレクトリを掘ることってあまりないので、
今まで思いもよらなかったし、そもそもmvコマンドで引数に改行
入れてもいいのかどうかも分からん。。。
0822nobodyさん
02/09/10 22:32ID:???0823nobody
02/09/11 02:17ID:Zh9eBVFzcrypt関数の使い方で聞きたいことがあります。
(例)
print "文字列を暗号化します。適当に文字をいれて下さい\n";
$get = <STDIN>
$key ="sp";
$pass = crypt($get,$key);
print "暗号化された文字列は$passです\n";
この$keyの部分は任意の二文字を入れるんだけど
それってどういう意味があるんでしょうか?
これによって暗号化される結果などが違ってくるのでしょうか??。
特に意識することではないんでしょうか?
0827nobodyさん
02/09/11 03:13ID:???0828nobodyさん
02/09/11 12:43ID:???どうかおしえてつかーさい。
0829nobodyさん
02/09/11 12:58ID:???「LWP」で検索。
0830nobodyさん
02/09/11 13:13ID:l0g0P0Oz7枚くらい読みこまなきゃいけないんですけど長ったらしくて。
0832nobodyさん
02/09/11 14:44ID:???馬 鹿 ば っ か し だ な(藁
おれをふくめてな。
0833nobodyさん
02/09/11 15:06ID:???オクレ兄さあああああああああああああああんッッッ
0834名無しさん@Meadow
02/09/11 16:09ID:???別ファイル(仮にloading.plとする)に
require "a.pl";
require "b.pl";
.
.
.
って書いといて、本ファイルでは
require "loading.pl";
だけで逝けるよ。
さすがに、require "a.pl", "b.pl" ...;はだめでしょ。
0836nobodyさん
02/09/11 18:55ID:???0837nobodyさん
02/09/11 18:59ID:???byとほほパパ
0838nobodyさん
02/09/11 20:31ID:ofaOgNivすまそ。教えてください。
0839nobodyさん
02/09/11 20:32ID:???index
後は検索しる。
0840nobodyさん
02/09/11 20:39ID:ofaOgNivindexって何番目にあるかを検索するだけですよね?
どうやって使うのかが分からないです。
0841nobodyさん
02/09/11 20:45ID:???特定の文字列を探したかったんでしょ?
使い方は検索しる。
文字列を探して抜き出してどうこうしたいってなら、
substrを使うとか、indexを使わず正規表現に頼るとか。
後は検索しる。
0842839
02/09/11 20:48ID:ofaOgNiv使い方何となく分かりました。ありがとう!
0843nobodyさん
02/09/11 21:12ID:???0844名無しさん@Meadow
02/09/11 21:48ID:???ユーザーが作ったサブルーティン、ライブラリ、モジュール。
(反対語:)組み込み関数
ユーザー定義を関数にするんじゃないか?
0845nobodyさん
02/09/11 21:49ID:wdtzvpz40847847
02/09/12 14:36ID:???$value =~ s/<br>/\r/g;
$value =~ s/<br>/\n/g;
このようにフォームデータを変換するのと逆に、
すべてのOSの改行文字に対応して、改行を<br>に変換することはできますか?
フォームのtextareaのvalue=""にログを入れたいのですが。
0848847
02/09/12 14:37ID:???0849nobodyさん
02/09/12 14:42ID:???つーか、\nで十分。
0851nobodyさん
02/09/12 17:28ID:???print "<a href=\"$NUM.jpg\">$NUM</a>";
}
としたのですが、上手く動きませんでした。
For文は
for(NUM =0; ここの条件が成り立ってるとき動作する; NUM++)
こういう事ではないのでしょうか?
while文で
while(-e "$FileAddress$NUM.jpg" eq "1")
こうしたらできたのですが・・・
0852851
02/09/12 17:34ID:???-e でファイルが存在を調べるか、
readdir で一覧を取得するか どちらかを考えたのですが
どちらの方が効率が良いと思うでしょうか?
ご教授頂けないでしょうか、お願いいたします
0853nobodyさん
02/09/12 17:51ID:???0854>>847
02/09/12 18:16ID:???$syu =~ s/\x0D/<BR>/g;
$syu =~ s/\x0A/<BR>/g;
>>847
この産業で出来るぞ。
0856nobodyさん
02/09/12 18:22ID:V0oL4dfDsub 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:???0858nobodyさん
02/09/12 18:31ID:NNUPZyEk0861初心者厨房
02/09/12 19:24ID:jvK2X5HWどうしてなんでしょうか。教えてください。お願いします。
#!/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:???0863nobodyさん
02/09/12 19:27ID:???↓
print 10+5; # 足し算
エラーメッセージぐらい読め
0869nobodyさん
02/09/12 19:39ID:???0870初心者厨房
02/09/12 19:54ID:ODncwTzE0871nobodyさん
02/09/12 20:01ID:???もう(#・∀・)カエレ!
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名無しさん@Meadow
02/09/12 20:07ID:???荒らしさん、こんにちは
あなたの存在がエラーです
0873初心者厨房
02/09/12 20:08ID:ODncwTzE0875nobodyさん
02/09/12 20:15ID:???これはいろんなとこにコピペしてください。
みんなで台風を起こしましょう。
東京駅を中心に右回りです。
9月22日夜9時にみんなでいっせいに「フゥー」と吹くのです。
注意
周りに障害物のないところでやりましょう(なるべく高いところ)
「フゥー」以外に扇風機やうちわを使ってもかまいません。
!東京を壊しましょう!
0876初心者厨房
02/09/12 20:15ID:ODncwTzE0877nobodyさん
02/09/12 21:03ID:???print "Content-type: text/html\n\n;
$atai='値';
print '「$atai」(シングルクォート文字列では展開されない)/';
print "「$atai」(ダブルクォート文字列では展開される)";
_END_
何がまちがってんの?
0878nobodyさん
02/09/12 21:11ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0882nobodyさん
02/09/12 21:54ID:???上級者ぶってツッコミ入れてるのも知ったかぶりだからとんちんかんだし
とりあえず初心者嘲笑いたいなら的確に回答してやってからにするのが筋ってもんじゃないの
0883nobodyさん
02/09/12 22:47ID:???0884nobodyさん
02/09/12 23:03ID:???0885nobodyさん
02/09/12 23:03ID:???そいつ自身答えられないパターン多すぎなのも見ててうざ
0886nobodyさん
02/09/12 23:28ID:???0888nobodyさん
02/09/12 23:39ID:???いや今まで無視してたよ リアクションしてあげないのが一番だから。
ここに来て立て続けで軽く荒れてきたから
ちょうどいいかと思ってつっこんでみただけ。
0889nobodyさん
02/09/12 23:54ID:???0890888
02/09/13 00:03ID:???−−−−−−−−−−−−−−−−−−−−−−−−−−−
以下、普通のスレに戻って下さいませ。
0891nobodyさん
02/09/13 00:08ID:???0892nobodyさん
02/09/13 00:16ID:???これ以上乱れないように882で釘さした形だと思うが。887とかが俺を煽ってきただけだし
申し訳ないがもうレスらないんでよろ
0893nobodyさん
02/09/13 00:16ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~
0894nobodyさん
02/09/13 03:15ID:R5wD3hCHスクリプトを書こうと思ってます。
mbxは複数のメールが1つのファイルになっていて
ピリオドだけが書かれた行がメールの区切りになっ
てます。そのmbxファイルを1つ1つのメールに
ばらして連番で出力したいのです。
#書いたプログラム-mbx.pl
open(OUT,">$n");
while(<STDIN>){
unless(/^\.$/){
print OUT;
}
else{
++$n;
}
#ここまで
で、実際にperl mbx.pl < hoge.mbx
とすると1に全て出力されてしまいます。
なにがいけないんでしょう?
0896nobodyさん
02/09/13 03:17ID:???改行文字忘れてるよ
0898nobodyさん
02/09/13 03:29ID:???unless(/^\.\n$/){
かな?
0900nobodyさん
02/09/13 03:43ID:???てか unless( $_ eq ".\n" ) でいいんじゃ...
0901nobodyさん
02/09/13 03:56ID:???と思ったんだけど。。。
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:???こんな感じでどう?
$n = 0;
loop: {
$n++;
open( OUT, ">$n" );
while ( <> ) {
if ( $_ eq ".\n" ) {
close OUT;
redo loop;
}
print OUT;
}
}
0906nobodyさん
02/09/13 04:16ID:????
0907905
02/09/13 04:29ID:???0908nobodyさん
02/09/13 04:30ID:???>ないだろう。もしあったらシステムが破綻する。
よく考えたらそうですよね。
>>903>>904
両方試したけど各行ばらばらになって出力されてしまいます。
.mbxの改行コードはlfなんですが。
なんでだろう。。
0909nobodyさん
02/09/13 04:32ID:???ばらばらって?
0910894
02/09/13 04:35ID:???open(OUT,">$n");
while(<STDIN>){
unless(/^\.\n/){
print OUT;
}
else{
++$n;
open(OUT,">$n");
}
}
で自己解決しました。
説明が下手でちゃんと伝わらなかったみたいでスマソ。
0912nobodyさん
02/09/13 04:42ID:???そんなはずは......ちゃんとコピペしてくれた?
0914nobodyさん
02/09/13 04:51ID:???あ 904 なんだけどね......
うちではちゃんと動いたんだけどなぁ
まぁいいんだけど
0915894
02/09/13 05:05ID:???はじめてのperlって本を一通り終えただけの
初心者だからredoとかloopが分からないのレス。
動かない理由がよく分からないけどサンクス!
0916nobodyさん
02/09/13 15:55ID:???if ($xx ne "aa"|"bb"){
print "cc";
}
これじゃいつでも"cc"と表示します。何でですか?
0917nobodyさん
02/09/13 15:57ID:???print "cc";
}
0918905
02/09/13 16:15ID:???| > MBXファイルのフォーマットを公開して頂けないでしょうか?
|
|次の通りです。
|
|ヘッダ
|(ブランク行) --- CRLF1個だけの行
|本文
| --- 行頭に1個のピリオド(メール間の区切り文字)
|ヘッダ
|(ブランク行) --- CRLF1個だけの行
|本文
| --- 行頭に1個のピリオド(メール間の区切り文字)
|
|
| (注意)本文の行頭に「.」がある場合は、「..」というように「.」を1
| 個余分につけて保存されます。
0919nobodyさん
02/09/13 16:48ID:+7b38iG7コード書いてみたんですが、いくつかディレクトリが存在するにも関わらず
「.」(ルート)と「..」(上)のディレクトリしか拾えないんですが、何かおかしな
点などありますでしょうか・・・
opendir(DIR, "data");
while($dir = readdir(DIR)){
if(-d $dir){
#処理・・・
}
}
closedir(DIR);
0920919
02/09/13 16:51ID:+7b38iG7if(-d $dir){
は
if(-d "data/$dir"){
としないとダメですね。
0921nobodyさん
02/09/13 17:50ID:???特に気にする必要はない?
0922nobodyさん
02/09/13 17:57ID:???数十行でも重い処理は書けるからね。
>>921
まず気にするほどのことは無いと思う。多分1MBくらなら問題ないでしょう。
プログラムが重いと感じたら処理の流れを見直すべし。
それと、「CGIファイル」じゃ意味が通じないんで「Perlスクリプト」や「スクリプトファイル」と表現するように。
上記の回答もそのような意図と解釈して書いてます。
0925名無しさん
02/09/13 20:11ID:dJSmRC1Rhttp://natto.2ch.net/test/read.cgi/off/1031911920/l50
キタ━━━━━━━(゚∀゚)━━━━━━━!!!!!
0926nobodyさん
02/09/13 20:56ID:MTIQ7Fw0$xx_(ここも変数)
()の変数は$yy
どう表記したらいいでしょうか?
0927nobodyさん
02/09/13 21:07ID:???my $xx_1 = "foo";
my $yy = 1;
no strict 'refs'; # シンボリックリファレンスを許可する(デフォルト)
print ${"xx_$yy"};
}
0930nobodyさん
02/09/14 08:14ID:???Can't use an undefined value as a symbol reference at test.3.pl line 8.
>>928
fooが出力されるべきところ何もでてこない
結局、どれでやってもだめレスが・・・
0931930
02/09/14 08:21ID:???>>928は、myを取ったら出力されました
わしの考えたのは
$var = "xx_" . $yy;
print $$var;
分かりやすくていいでしょ
0934nobodyさん
02/09/14 14:58ID:bLV5ATcLデータ数が多い場合はやはり幾つかのDBMに分けた方が良いのでしょうか。
それとも全部一括りにして1つのファイルにまとめた方が効率が良いのでしょうか。
ちと分からないので質問です。
0935nobodyさん
02/09/15 00:34ID:???ファイル1枚
・壊れやすそう
・壊れたら致命的そう
・サイズがでかそう
ファイル複数
・壊れにくそう
・壊れても被害は少なそう
・余計なデータは読まずに済むから軽そう
0936nobodyさん
02/09/15 05:43ID:sdGpPtiVどうしたらよかとでしょうか?
0937nobodyさん
02/09/15 07:30ID:iaBuYHci1900年からの経過秒数が知りたいの?
だったら、
use Time::Local;
print timelocal(0,0,0,15,8,102);
で9月15日0時0分0秒のそれが出てくる
0938nobodyさん
02/09/15 11:34ID:???ライブラリルーチンのインクルードは、requireを使った方が良いといわれていますが、
その理由がよくわからないので言う事を聞く気になりません。
うまい具合に違いを説明して僕を説得してください。
0939あ ◆4WVJTVm.
02/09/15 11:47ID:7pMxPAY1途中である条件が一致した場合、現在処理している変数が何番目の変数なのかを知り、変数に数値を格納したいのです。
どなたかご回答よろしくお願いします
0940あ ◆4WVJTVm.
02/09/15 11:51ID:7pMxPAY1>現在処理している変数が何番目の変数なのかを知り、 ↓
>現在処理している配列が何番目なのかを知り、
すみません
0941nobodyさん
02/09/15 11:54ID:???わたしは初心者なのですが、ライブラリをインクルードするのはdoではできな
いと思うのですが、具体例を示していただけませんでしょうか。
0942nobodyさん
02/09/15 12:01ID:???配列の番号は$array[$i]の$iです
for $i (0 .. $#array) {
if ($array[$i] == 0) {
$array[$i] = $num;
print "$i番目の配列要素の値に$numを代入しますた\n";
}
}
0943nobodyさん
02/09/15 12:02ID:???require "hoge.pl";
となっているところを
do "hoge.pl";
と置き替えるだけです。
一応平気で動作しています。
0944nobodyさん
02/09/15 12:09ID:???if ($array[$i] == 0) { って??
$array[$i] = $num; って$numはどこからでてきたの?
それにそんなことしたら配列の内容書き換えてるんじゃ?
doは%INCをチェックしない。つまり、同じライブラリを何度も読んでしまう。
そうなると、サブルーチンの再定義など、いろいろ不都合が生じると。
0947944
02/09/15 12:17ID:???for $i (0 .. $#array) {
if($array[$i] eq $arujouken){
$hensuu = $i
last;
}
}
かな?>>939
0948nobodyさん
02/09/15 12:18ID:???>>939は、配列要素が何らかの条件に合致した場合、
その要素(>>939は変数といってるが)に何らかの
数値を格納したいって言うんでしょ
それなら、>>942で合ってるよ
>>944は>>939を別の解釈をしてるなら、それに
従って答えるべし
0950942
02/09/15 12:25ID:???じゃ、同じ質問を返そう
$arujoukenって??
$array[$i] = $i; って?
>>939は数値を格納したいっていってるのよ
配列の番号を格納していなんて言ってないよ
0951944
02/09/15 12:27ID:???わかりやすくしたつもりだが…<$arujouken
もちろんマッチングだとは思うので仮にこうしたまでだが。
$array[$i] = $i;
なんて書いてません。
0954938
02/09/15 12:36ID:???そうなのですか。一応検索はかけていたのですが
そこまで説明しているとこは見つけられなかったもので。
説得されました。require使います。
>>946
だそうです。
0955あ@939 ◆4WVJTVm.
02/09/15 12:48ID:s9DZ7/nK>>939の質問に答えてくださったかたがた、ありがとうございました。
陰様で、いろんなかたがたの意見を参考に服用していって、さらに素晴らしいものが出来上がりました。
本当にありがとうございますた。
0957nobodyさん
02/09/15 13:48ID:kinL8j5T正しく動きません。何で?
$xxx = index($yyy, "aaa"|"bbb");
質問に答える前に一つ聞きたいんだけど、どこでそういう構文を学んだの?
正直、凄く興味がある。
09593PIO ◆3pIoOHKo
02/09/15 14:14ID:???いや、それ以前にビットOR演算子が…。
論理OR演算子なら百歩譲ってああ誤解するのも頷けるけど、なぜビットOR演算子が…。
0961nobodyさん
02/09/15 14:39ID:???0963nobodyさん
02/09/15 14:43ID:???0964nobodyさん
02/09/15 14:47ID:???正規表現とごっちゃになってるとか。
0965nobodyさん
02/09/15 14:49ID:kinL8j5Tそうだよ
0966nobodyさん
02/09/15 14:54ID:???ちがうんじゃない?
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:???0969nobodyさん
02/09/15 14:57ID:???次スレ立てて〜
09703日目
02/09/15 14:57ID:AwUTEWn/$temp="ここに<br>入力"
print <<"HTML";
<textarea >$temp</textarea>
とすると、
フォームのテキストエリアに
”ここに<br>入力”と表示され<br>が入ってしまう。
”ここに
入力”
とちゃんと改行させるにはどうすればいいの?
0972nobodyさん
02/09/15 14:59ID:???お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
お前はHTMLからやり直せ
09773日目
02/09/15 15:13ID:AwUTEWn/09793PIO ◆3pIoOHKo
02/09/15 15:17ID:???1000取り厨房以外はhttp://pc.2ch.net/test/read.cgi/php/1032070299/へ
0980nobodyさん
02/09/15 15:27ID:???0981nobodyさん
02/09/16 03:22ID:???0982nobodyさん
02/09/16 21:35ID:PzkShHDm__
/_、_\
( _ノ` ) ズキューン
/⌒ /_ \ , :,
( ;y=ー( _ノ` )・∵: ;
/ と ̄ ̄_)
/ /\  ̄ / ̄\ ←◆3pIoOHKo
_| ̄ ̄ \ / ヽ \_
\ ̄ ̄ ̄ ̄ ̄ ̄ \__)
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0983perl初心者
02/09/17 00:56ID:i0fZtbTDTMPL_LOOPのネストって出来るのでしょうか? もし出来るとしたら、その方法は?
テンプレではTMPL_LOOPをネスとさせておいて、単純に配列に配列を格納すればいいのでしょうか?
0984nobodyさん
02/09/17 01:14ID:???正解 つーか自分で試せ
次スレ http://pc.2ch.net/test/read.cgi/php/1032070299/
0985nobodyさん
02/09/17 01:23ID:jlRQ/iYc他のブラウザは大丈夫なのにMAC版のIEでのみcookieが書き込めないと言う
現象がおきて困っています。考えられる原因はなんでしょう?
手法としては通常通りHTMLヘッダの前にprint文でSet-Cooki:を出力しています。
0986nobodyさん
02/09/17 02:53ID:???0987nobodyさん
02/09/17 06:28ID:yAKo74Fa> 他のブラウザは大丈夫なのにMAC版のIEでのみcookieが書き込めないと言う
日本語の値をMacOSX用IE5.2のcookieに書き込む場合には、
Jcode.pmを利用して、UTF-16形式にエンコードする必要が
あるかもしれません。
0988nobodyさん
02/09/17 07:57ID:PJt6wEZh0989nobodyさん
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:???0999nobodyさん
02/09/17 08:55ID:???10001000
02/09/17 08:55ID:???1000
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。