Perlコーディング初心者質問スレ Part 51
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/27(木) 17:04:23ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0002nobodyさん
2006/07/27(木) 17:11:03ID:???CGI: Common Gateway Interface part 13
http://pc8.2ch.net/test/read.cgi/php/1126436361/
【Perl,CGI】参考書籍 第三版
http://pc8.2ch.net/test/read.cgi/php/1030209573/
【Perl】ファイルロック(排他処理)について語ろう
http://pc8.2ch.net/test/read.cgi/php/1024795138/
★負荷軽減対策委員会(Perl、PHP)★
http://pc8.2ch.net/test/read.cgi/php/1034645635/
CGIに依存しないPerlの話題一般/Part2
http://pc8.2ch.net/test/read.cgi/php/1030548610/
★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1143834740/
【 スクリプト改造依頼スレ 】(丸投げ) part5
http://pc8.2ch.net/test/read.cgi/php/1141174205/
0003nobodyさん
2006/07/27(木) 17:14:18ID:???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
0004nobodyさん
2006/07/27(木) 17:16:02ID:???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
Part14 http://pc.2ch.net/php/kako/1026/10269/1026977659.html
Part15 http://pc.2ch.net/php/kako/1028/10288/1028816385.html
Part16 http://pc.2ch.net/php/kako/1032/10320/1032070299.html
part17 http://pc.2ch.net/php/kako/1034/10345/1034583844.html
part18 http://pc.2ch.net/php/kako/1037/10377/1037797479.html
part19 http://pc.2ch.net/php/kako/1042/10422/1042260745.html
part20 http://pc2.2ch.net/php/kako/1044/10447/1044717887.html (タイトルに19と誤記)
0005nobodyさん
2006/07/27(木) 17:16:41ID:???part21 http://pc2.2ch.net/php/kako/1047/10479/1047980851.html
part22 http://pc2.2ch.net/php/kako/1050/10503/1050369328.html
part23 http://pc2.2ch.net/php/kako/1053/10530/1053051519.html
part24 http://pc2.2ch.net/php/kako/1054/10549/1054992610.html
part25 http://pc2.2ch.net/php/kako/1056/10567/1056730690.html
part26 http://pc5.2ch.net/php/kako/1059/10590/1059043704.html
part27 http://pc5.2ch.net/php/kako/1060/10608/1060808783.html
part28 http://pc5.2ch.net/php/kako/1063/10635/1063562491.html
part29 http://pc5.2ch.net/php/kako/1066/10662/1066286828.html
part30 http://pc5.2ch.net/test/read.cgi/php/1069846177/
0006nobodyさん
2006/07/27(木) 17:19:01ID:???part31 http://pc5.2ch.net/test/read.cgi/php/1072896288/
part32 http://pc5.2ch.net/test/read.cgi/php/1075545279/ (タイトルに31と誤記)
part33 http://pc5.2ch.net/test/read.cgi/php/1078076768/
part34 http://pc5.2ch.net/test/read.cgi/php/1081148490/
part35 http://pc5.2ch.net/test/read.cgi/php/1085557731/
part36 http://pc5.2ch.net/test/read.cgi/php/1089779036/
part37 http://pc5.2ch.net/test/read.cgi/php/1093106507/
part38 http://pc5.2ch.net/test/read.cgi/php/1097158988/
part39 http://pc5.2ch.net/test/read.cgi/php/1101522903/
part40 http://pc5.2ch.net/test/read.cgi/php/1106816922/
0007nobodyさん
2006/07/27(木) 17:19:49ID:???part41 http://pc8.2ch.net/test/read.cgi/php/1110383236/
part42 http://pc8.2ch.net/test/read.cgi/php/1116970588/
part43 http://pc8.2ch.net/test/read.cgi/php/1123777607/
part44 http://pc8.2ch.net/test/read.cgi/php/1129477637/
part45 http://pc8.2ch.net/test/read.cgi/php/1134049707/
part46 http://pc8.2ch.net/test/read.cgi/php/1137518266/
part47 http://pc8.2ch.net/test/read.cgi/php/1141195171/
part48 http://pc8.2ch.net/test/read.cgi/php/1146042050/
part49 http://pc8.2ch.net/test/read.cgi/php/1149017548/
part50 http://pc8.2ch.net/test/read.cgi/php/1153987463/ (前スレ)
part44-621氏による過去ログ倉庫
ttp://user.ftth100.com/mirrorhenkan/perl/
0008nobodyさん
2006/07/27(木) 17:20:53ID:???[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/
[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/
[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.8/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0009nobodyさん
2006/07/27(木) 17:21:52ID:???[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0011nobodyさん
2006/07/27(木) 19:47:33ID:0k8QdmRt変数を途中で使いたいのですが、どういう方法がありますでしょうか?
$fruit =~ s/みかん/りんご/; #OK
$apple = "りんご";
$fruit =~ s/みかん/$apple/; #NG
$apple = "りんご";
$RegExp = "s/みかん/$apple/";
$fruit =~ $RegExp; #NG
0012nobodyさん
2006/07/27(木) 19:59:13ID:???>$apple = "りんご";
>$fruit =~ s/みかん/$apple/; #NG
これはNGにならない。
$apple = "りんご";
$RegExp = "s/みかん/$apple/";
eval "¥$fruit =~ $RegExp";
0013nobodyさん
2006/07/27(木) 20:03:14ID:???0014nobodyさん
2006/07/27(木) 20:13:21ID:???すんません、確かにNGではなく変数使えました。
$in{"select_fruit"} でフォームからの値が入ってなかったようです・・・
全体をevalするのがあるんですね、JavaScriptで多少覚えたので理解できます。
確か処理が遅いから、やらないほうがいいですよね?
無難に>>11の2番目の方法にしておきます。
0015nobodyさん
2006/07/27(木) 20:39:57ID:???読み込むことってできないですかね?
やはり一度全部読み込んでから、
特定の文字列1より前と文字列2より後の部分を削除する
という方法でやるしかないでしょうか?
0016nobodyさん
2006/07/27(木) 20:48:35ID:???>ファイルを読み込むときに、特定の文字列1と文字列2の間の部分だけ
>読み込むことってできないですかね?
できる。
正確にはお察しのとおり、
1.ファイルを読み込みながら文字列1を探す。このとき読み込んだ文字列は保存せずに捨てる
2.1が見つかったらファイルを読み込みながら文字列2を探す。このとき読み込んだ文字列は変数に収納。
3.文字列2が見つかって終わり。
001715
2006/07/27(木) 20:58:10ID:???手順の説明ありがとうございます。
ただ自分としてはファイルの中身全部読み込んで
正規表現で文字列1と2をマッチさせてそれぞれの前後を捨てる
という方法を考えていたので、
>>16のようなスマートなやり方が分かりません。
もう少しヒントというか具体的な関数名を教えてもらえないでしょうか?
0018nobodyさん
2006/07/27(木) 21:14:10ID:???next unless /文字列1/ .. /文字列2/;
読み込む;
}
文字列1, 文字列2 自体が要らないなら、nextの次の行あたりで捨てて。
0019nobodyさん
2006/07/27(木) 21:18:18ID:???全体のファイルのサイズはどれほどなのかとか
読み込みたい中身の文字列の割合はどのくらいなのかとか
対象文字列の判定はどのくらい厳密にやらなければならないのか
(たとえば "このように引用された文字列" を探したいときに、
"このように\"エスケープされた引用符" をどう扱うのか
これは正規表現でもいっしょ。)
なので正規表現みたいに一行でスパッとというわけにはいかない。
そもそもどういう状況でその操作が書いてみると他のより効率的な手段を教えてもらえるかもしれない。
まぁ1kbyteそこらのファイルからなら単純に読み込んで正規表現使えばオケ
002015
2006/07/27(木) 21:43:03ID:???なるほど、nextを使って文字列にマッチしない限り次の処理へ進ませないわけですか。
ただ、文字列1と2が別の行にある場合は分けて処理する必要があるわけですね。
あいがとうございました。
>>19
後出し情報ばかりになってしまいますが、現在扱おうとしているファイルは
[00001]
情報A
情報B
[00002]
情報C
というように番号(重複なし)だけの行と情報が入ってる行があるファイルで
サイズはまちまちで大きいものだと100Kbyte近くあります。
そのうち特定の番号の間の情報だけを抽出したいと考えています。
そこで、ファイルの中身全部を$logに格納して
$start = '開始番号';
$end = '終了番号';
$log =~ s/$end.+/$1/;
$log =~ s/.+$start/$1/;
番号だけの行削除;
というような処理を考えていたのですが、
>>18の方法の方がメモリ消費を抑えられそうですね。
まずはやってみます。ありがとうございました。
また何か妙案があれば是非ともお願いします。
0024nobodyさん
2006/07/27(木) 23:18:59ID:1uzwaimq年月日時分秒の計算がもっとらくに出来たらいいのにと。
print "こうなればいいのに" if 20060727121000 - 20060727120950 == 10
例えば時分秒用のマイナス演算子があれば・・・・・
0026nobodyさん
2006/07/27(木) 23:29:08ID:???0027nobodyさん
2006/07/27(木) 23:43:22ID:???ずっと昔のライブラリです。
$a = hoge::escape_h($a);
@a = hoge::escape_h(@a);
%a = hoge::escape_h(%a);
$a = hoge::escape_h($a); #scalarref
$a = hoge::escape_h($a); #arrayref
$a = hoge::escape_h($a); #hashref
でも全てうまく行くようにしたいのです。
用は引数がスカラか配列かハッシュか、リファレンス(どのタイプか)なのかを
チェック入れてif分岐でもすればいいとおもいますが、どうやってチェックするのか。
そこで行き詰ってます。宜しくお願いします。
0028nobodyさん
2006/07/27(木) 23:47:50ID:???>@a = hoge::escape_h(@a);
>%a = hoge::escape_h(%a);
この2つの区別はつかないよ。
他のは大丈夫だけど。
リファレンスの区別は ref を使う。
002927
2006/07/27(木) 23:51:33ID:???やっぱりさすがにハッシュと配列の区別なんて無理ですよね。
同じですもんね。
スカラーか配列かはどうすればいいですか?
やっぱり@_の要素数が1か複数かで見るのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています