【Perl】初心者コーナー Part15
■ このスレッドは過去ログ倉庫に格納されています
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-2000�V 」を改造済み
にした、アイティーエス製の「 RX-2000�V 」↓
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していいのか・・罵倒覚悟です。誰か教えてください・・・
■ このスレッドは過去ログ倉庫に格納されています