1 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:47:06 ] "The duct tape of the Internet" こと、Perl についての質問箱です。 "There's more than one way to do it" ということで、 Perl の奥深さについて皆で語り合い、追求してまいりましょう。 CGI についての質問は板違いです。WEB プログラミング板でどうぞ。 CGI と Perlの区別がつかない人も WEB プログラミング板に行ってください。 (WEB プログラミング板: pc11.2ch.net/php/ ) CGI の質問は答えが Perl と全然関係ない話に帰着する場合が 多かったりするので WEB プログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2010/02/19 現在の最新版: 5.10.1 ▼ 前スレ Perlについての質問箱 42箱目 pc12.2ch.net/test/read.cgi/tech/1257139591/ リンク集は >>2-3 Perl 日本語処理の基礎の基礎 >>4 過去スレは >>5-7 あたり
381 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 10:03:01 ] なんで?
382 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 11:48:53 ] >>378 リポジトリにこれ加えとけ。 trouchelle.com/ppm10/package.xml
383 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 12:20:10 ] elseifでなく何故elsifなんですか?
384 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 13:26:56 ] 母音が続くのが気持ち悪いから elifじゃないのと聞かれたら解答に窮するが、CPPはelifなんだよな 文化によって多少違いはあるが、やはり、母音が続くのが気持ち悪いんだと思う
385 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 13:55:38 ] いっそのことelfでいいじゃん。 短いし。
386 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 15:33:01 ] 最近プログラミングの勉強を始めました print "hello world"; と書いてhello.plで保存し、ターミナルで perl hello.pl と入力するのはわかったんですが、hello.plはどこに保存すればいいのですか? 環境はMac OS Xです
387 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 16:10:27 ] >>386 好きな場所
388 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 16:28:15 ] >>386 今自分がいる場所におけばいい 違う場所に置きたいならフルパスで指定すれば実行できる
389 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 16:41:23 ] >>382 サンクス つか、ppmguiにリポジトリのサジェストなんてあったんだな そこにも載ってたわ 重ねてサンクス
390 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 17:56:24 ] >>386 perlの前にターミナルの使い方を覚えるためのBash入門を読んだ方が良いかも。
391 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 18:42:40 ] それは的外れなアドバイス
392 名前:373 mailto:sage [2010/05/18(火) 21:37:27 ] ATOM::XML をWinXP/Active Perl に入れたい なにかヒントありますか? >>374 >>375 >>379 ストロベリー入れましたけど、Activeパールと同じエラーです。 (nmake をダウンロードして、ダウンしたパッケージをmake して、 それから、再度ACTIVE Perl で,ATOM::XMLしたときとです。 やはり、パッケージが問題なのかな? cpan> install ATOM::XML Fetching with LWP: cpan.strawberryperl.com/authors/01ma Fetching with LWP: cpan.strawberryperl.com/modules/02pa Fetching with LWP: cpan.strawberryperl.com/modules/03mo Creating database file ... Gathering information from index files ... Populating database tables ... Done! Warning: Cannot install ATOM::XML, don't kn Try the command i /ATOM::XML/ to find objects with matching identifiers.
393 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:44:02 ] 現在 WinXP上にActivePerlが入っています。StrawberrryPerlを入れて共存できるのでしょうか?
394 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:49:59 ] エラーメッセージくらい読めよ
395 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:52:02 ] 普通に考えるとパッケージ名ってAtom::XMLもしくはXML::Atomだからでは
396 名前:373 mailto:sage [2010/05/18(火) 21:57:06 ] とりあえず、 install XML::Atom::Feed とすると、したみたいになった。これってATOM::XML ってインストールできたのかな Prepending C:\strawberry\cpan\build\XML-Atom-0.37-H4btN8/blib/arch C:\strawberry \cpan\build\XML-Atom-0.37-H4btN8/blib/lib to PERL5LIB for 'install' Installing C:\strawberry\perl\site\lib\XML\Atom.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Base.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Category.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Client.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Content.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Entry.pm Installing C:\strawberry\perl\site\lib\XML\Atom\ErrorHandler.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Feed.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Link.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Person.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Server.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Thing.pm Installing C:\strawberry\perl\site\lib\XML\Atom\Util.pm Appending installation info to C:\strawberry\perl\lib/perllocal.pod MIYAGAWA/XML-Atom-0.37.tar.gz C:\strawberry\c\bin\dmake.EXE install UNINST=1 -- OK cpan>
397 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:13:16 ] perlで添付ファイル取得して、それをopencvに渡して結果を保存したいんだが、出来ない。 ローカルでemlファイル読み込ませるといけるのに、メール受信をトリガに起動するとだめだ・・。 どうして?
398 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:32:58 ] >>396 OKってかいてありますやん 心配なら $ perldoc XML::Atom
399 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:34:23 ] >>396 XML::Atom と ATOM::XML は全く別のモジュールだ。 (存在すればの話しだが) お前さんが、いくら XML::Atom を入れたとしても、 ATOM::XML は永久に入らん。 気持悪いったらありゃしない。
400 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 12:22:56 ] アハハハ
401 名前:デフォルトの名無しさん [2010/05/19(水) 14:46:33 ] たとえば、[[:ascii:]]から'<'を除いた文字クラスを表わすにはどうしたらいいでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 18:51:09 ] もともと入ってないやん
403 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 21:53:00 ] 数百のファイルを処理するPerlスクリプトがありまして、それがシーケンシャルに処理してて クソ時間がかかるため、マルチスレッドでやらせようとPerlについて勉強しています。 で、いまんとこ、セマフォで並列処理数を制御し、joinするためだけのスレッドを動かして かたっぱしからjoinするようにしています。おかげで処理時間は半分以下になったのですが、 これを添削していただけないでしょうか。もっとエレガントなやり方があれば教えていただきたいです。 よろしくおねがいします。 #!/usr/bin/perl use strict; use File::Basename; use File::Path; use threads; use threads::shared; use Thread::Semaphore; use Codemap; use SVG; my $concurrency = 5; my $semaphore = Thread::Semaphore->new($concurrency); my $exitflag :shared = 0; my $jointhreads = threads->new(\&joinThreads); while (@ARGV) { my $orig_svg = shift(@ARGV); $semaphore->down; threads->new(\&doSplit, $semaphore, $orig_svg); } $exitflag = 1; $jointhreads->join; exit 0;
404 名前:403のつづき mailto:sage [2010/05/21(金) 21:53:56 ] sub joinThreads { until ($exitflag) { foreach my $thr (threads->list) { if ($thr->tid and !threads::equal($thr, threads->self)) { $thr->join; } } print "\nThreads joined.\n"; } } sub doSplit { my $semaphore = shift; my $orig_svg = shift; my $svg = new SVG($orig_svg); $svg->setdumpdir("work.d"); if ($svg->modtime() > $svg->splittime()) { $svg->dump(); print STDERR " $svg->{filename} : splitted\n" } else { print STDERR " $svg->{filename} : SKIP\n" } $semaphore->up; }
405 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 14:07:11 ] UTF8の〜をshift_jis(cp932)に変換して出力するとエラーが出てしまいます。 解決策があれば教えていただきたいです。 環境はWindows 7 64bitとActivePerl v5.10.1 64bitです。 use utf8; binmode STDOUT, ":encoding(cp932)"; print "昨日は10時〜6時まで寝た。\n"; D:\>test.pl "\x{301c}" does not map to cp932 at D:\test.pl line 3. 昨日は10時\x{301c}6時まで寝た。
406 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 14:20:39 ] D:\>test.pl 何故こんなところで作業しているのか
407 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 14:54:09 ] 「〜」には FULLWIDTH TILDE (FF5E) WAVE DASH (301C) の二種類がある。
408 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 14:57:40 ] 〜の厄介さはMacを使ってるとよく分かる
409 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:10:32 ] macでなくても〜は厄介
410 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:13:53 ] Macだとプログラムとか使わなくても 普段から〜が厄介になる
411 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:15:49 ] え? 俺は生粋のマカーだけど、厄介さが全然分からん。 何かトラブるっけ? "〜"って。 Mac<=>Winのデータ交換とかの話し?
412 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:21:41 ] Macで〜と書き込んだら Winだと逆向きの波線に見えたり 最近は大丈夫な気はするが
413 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:31:53 ] 〜が厄介なんて、OS9時代の話だろ。 昔から機種依存文字問題とか、今はUTF8-macとUTF-8とか もっと厄介なモンがあるから。
414 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 16:54:16 ] OSXでの話だが
415 名前:405 mailto:sage [2010/05/22(土) 17:06:03 ] 皆さんレスありがとうございます。 >>405 はmeadowから打ち込んだ〜は\x{301c}となり、 notepad等から打ち込んだ〜は\x{ff5e}になる事が原因で表示に失敗していました。 \x{301c}はshift_jisでは表示に成功しcp932では失敗しました。 \x{ff5e}はcp932では表示に成功しshift_jisでは失敗しました。 どうやらeucとsjisの〜はutf8の\x{301c}に対応していて cp932の〜はutf8の\x{ff5e}に対応しているようでした。 なので例えばeucの〜をutf8に変換し、それをcp932に変換すると失敗するようです。 挙動がおかしいと思った元のプログラムではネット上にあるeucのページを取ってきて utf8に変換し出力時にcp932に変換していたので上記の理由で文字化けしていた様です。 そこでeucをutf8に変換した際に\x{301c}を\x{ff5e}に変換するようにしました。 $utf8data =~ tr/\x{301c}/\x{ff5e}/; そうしたところprintした際に"\x{301c}" does not map to cp932というエラーも出ず、無事〜が表示されるようになりました。
416 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 17:10:30 ] 意味不明
417 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 19:23:59 ] >>405 use utf8は「フツーは使うな」とCPANに書いてあった気がする。 Windowsを呪いながらEncode使え。 #!perl use Encode; my $msg = "昨日は10時〜6時まで寝た。\n"; Encode::from_to($msg, 'utf8', 'cp932'); print $msg;
418 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 19:39:43 ] >use utf8は「フツーは使うな」 理由は?
419 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 20:34:20 ] >>417 >use utf8は「フツーは使うな」とCPANに書いてあった気がする。 どこに書いてあったの?聞いたことない
420 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 21:01:51 ] > Do not use this pragma for anything else than telling Perl that your script is written in UTF-8. もしかしてこれの事か?
421 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 21:08:00 ] >>417 そのEncodeの作者が >スクリプトはUTF-8で書き、use utf8;するのがモダンPerlのあり方です。 って言ってるけどな。 ttp://blog.livedoor.jp/dankogai/archives/51221731.html
422 名前:デフォルトの名無しさん [2010/05/22(土) 22:19:22 ] 文字列の切り取りに関して質問があります。 $a="aho"; $b="baka"; $str="ahomanukebaka"; $strには$aと$bで"manuke"という文字が挟まれています。 このとき$strからmanukeだけを切り抜くにはどうすればよいでしょうか?
423 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:24:54 ] substr($str, length($a), length($str)-length($a.$b));
424 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:48:06 ] >>422 my $a1 = "aho"; my $b1 = "baka"; my $str = "ahomanukebaka"; $str =~ s/$a1(.*)$b1/$a1$b1/; warn $str; # ahobaka warn $1; # manuke
425 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:01:54 ] 失敗してるのに前の$1を読んでしまう
426 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:16:31 ] >>425 あぁ、ごめん。本当はifとかやるけどmanukeが必要なのかどうなのかわからなくて とりあえず$1に入ってるよって言いたかった
427 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 23:22:02 ] >>424 できましたありがとうございます!
428 名前:417 mailto:sage [2010/05/23(日) 01:13:47 ] >>420 それだ。 WWW::Mechanizeでcp932受け付けんからEncode::decode_utf8($massage)とかやってたのに、 use utf8だけで済んだのか・・・・クソアホみたいだわorz
429 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:00:16 ] 正規表現のグルーピングについて質問です 繰り返し表れる対象をグループ化したいのですが良いやり方ありますか? gオプション付けたら行けるかと思ったらダメだった。 my $str = << 'END'; aba aca ada END $str =~ m{(a[^a]a)\n\n}g; # これだと初めの対象にしかマッチしない
430 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:23:18 ] >>429 g(global?)オプションだけでなく m(multi line?)オプションもいるんじゃなかったっけ
431 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:27:20 ] >>429 こう? my @matches = $str =~ m{(a[^a]a)\n\n}g;
432 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:32:54 ] >>430 $str =~ m{(a[^a]a)\n\n}mg; これも試したけどダメだったんだよね >>431 おぉ。いけました。 ちなみに=と=~を一緒に書くとわかりにくいので別にする方法ってありますか? 普通のマッチの場合、下みたいに分けたりしてるのだけどそういう方法があれば教えてください warn $1 if $str =~ m{(a[^a]a)\n\n}g;
433 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:41:44 ] >>432 ifをwhileに変えるだけ warn $1 while $str =~ m{(a[^a]a)\n\n}g;
434 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 13:59:57 ] gオプションが付いても付かなくても 正規表現に括弧がひとつしかないから、$2と$3は未定義。 ループを回すたびに$1の内容が変わる。
435 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 14:09:01 ] my @matches; push @matches, $1 while $str =~ m{(a[^a]a)\n\n}g;
436 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 14:25:05 ] while m//g とか while each %hash って気持ち悪いな
437 名前:429 mailto:sage [2010/05/23(日) 14:34:43 ] >>433-435 なるほど!ありがとうございます。while使うのかぁ。知らなかった。 perldoc perlreに書いてあるのかなぁって探してみたら書いてあった。勉強になりました。 @matches = ( 'foo' =~ m{ o? }xg ); or print "match: <$&>\n" while 'foo' =~ m{ o? }xg; せっかくなのでついでにもう一つ質問ですが、>>430 みたいにm付けた場合もやり方がありますか?
438 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 14:59:38 ] >>437 ないと思う mは^と$の意味が変わるだけだった気がする
439 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 15:51:17 ] なんか改行コードだけ特別扱いなんだよな
440 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:00:35 ] Perlのif文で質問があります。とあるデータ文書からPerlを使って情報を抜き出しているのですが、 情報1、情報2というのが存在して、情報1にヒットしたときは、情報1と情報2を出力、 情報1にヒットしないときは、無視というような判定をするにはどうすればよいのでしょうか?
441 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:09:09 ] perlに関係ないような気がするけど、こういう意味じゃないの? if (情報1にヒット) { print 情報1; print 情報2; }
442 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:12:57 ] >>441 データ文書の情報1と情報2が別々のところに記載されていてそれができないのです。 元データ文書を晒すので少々お待ちください。
443 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:24:18 ] 両方揃ってから判断するのだ
444 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:32:12 ] このデータ文書ファイルです。 uploader.moe.hm/cgi-bin/upload.cgi?mode=dl&file=2067 パス:perl 内容として作家情報と執筆した作品の情報が記載されています。 このファイルでは3名しか載っていませんが、実ファイルは世界中の作家情報が載っているので、 数万単位で同じような情報が載っています。 この中から、SCHOOLの行にUOFTOKYOと書いてある作家の作品だけを抜き出して出力できるようにしたいです。
445 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:35:10 ] DB_FileとかDBI使えばいいのに……Plain/textとはまた面倒な
446 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:53:34 ] >>444 schoolがuoftokyoの作家の名前を抜き出し、 その名前から違う場所にあるデータを抜き出して出力したいってこと? 大して>>441 とやること変わらない気がするな if (情報1にヒット) { 作家名から情報2を取得; print 情報1; print 情報2; } こうなるだけじゃない?
447 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 22:57:06 ] >>446 仰る通りです。 コードを書いているのですが、情報1にヒットした後、 情報2を書き出してやると、UOFTOKYO以外の作家作品情報も出力されてしまい、 どうしていいのか分からない状態です。
448 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:13:39 ] >>447 情報2のデータの取得方法がおかしいんじゃいの? そっちはどういうデータなの?
449 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:14:43 ] >>448 情報2はWORKSとENDの間の情報です。
450 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:33:20 ] 現在書いているコードも載せておきます。 uploader.moe.hm/cgi-bin/upload.cgi?mode=dl&file=2085 パス:perl
451 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:41:07 ] while (<IN>){ $line = $_; なんだこれ
452 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 23:48:02 ] ああー、そんなこと書いたこともあった
453 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:19:55 ] テキストファイルだと>>444 のようにやるのは無理なのでしょうか?
454 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:22:31 ] >>449 こんな感じかな。ネストがちょっと気持ち悪くてどうにかしたいけど codepad.org/I7NaSAPC >>450 にソース上がってたのね。見てなかったわ
455 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:37:05 ] 綺麗なコード書くなぁ 人の書いたコードは難しくて読めないことが多い俺にはちょうど良い読み易さだった
456 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:53:43 ] my $name ; while(<>){ $name = $_ if /^NAME/ ; next if ! ( /UOFTOKYO/ .. /^ID/ || eof ); print $name and undef $name if defined $name ; next if !(/^WORKS/ .. /^END/ ) ; print ; } 細かい所は知らん。
457 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 00:57:51 ] × /UOFTOKYO/ .. /^ID/ || eof ◯ /UOFTOKYO/ .. /^END/
458 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 01:01:27 ] >>456 おぉ。..ってそういう時も使えるのか。フラグ要らなかったな
459 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 02:00:33 ] へぇ、こんな使い方が出来るんだ。 30分位調べてようやく意味が理解出来た。 参考にした物 ttp://ja.wikibooks.org/wiki/Perl/%E6%BC%94%E7%AE%97%E5%AD%90#.E7.AF.84.E5.9B.B2.E6.BC.94.E7.AE.97.E5.AD.90 ttp://books.google.co.jp/books?id=BpdX333gbjkC&lpg=PR4&dq=oreilly%20%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%80%80perl&as_brr=3&pg=PA120#v=onepage&q&f=false
460 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 07:33:10 ] 正規表現に必ずxmsつける人ははじめて見たけど流行ってんの? 個々の意味はわかるけどこうしとくといい理由とかあるんだろうか??
461 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 07:38:13 ] >>460 Perlベストプラクティスに書いてあった癖で書いちゃう 普通は気にしなくていいと思う
462 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 10:06:39 ] >>461 気になるのでどういう理由でそう書いてあったか憶えてたら教えてください。 本屋に行くにせよ尼かなんかでポチるにせよ週末になっちゃうので待てないw
463 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 17:45:34 ] googleのアカウント持ってるなら、 ttp://books.google.co.jp/books?id=0dRPNtVvoqUC&printsec=frontcover&dq=perl+best+practice&as_brr=3&cd=2#v=onepage&q=正規表現&f=false で、255ページから読め
464 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 17:47:37 ] あ、URLエスケープ忘れてた。 ttp://books.google.co.jp/books?id=0dRPNtVvoqUC&printsec=frontcover&dq=perl+best+practice&as_brr=3&cd=2#v=onepage&q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&f=false
465 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 19:06:38 ] これ全ページ無料で読めるんだね、すごい。 売上が下がるかもしれないのにオライリージャパンは許容してるの?
466 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 19:11:40 ] 多分許容してない>オライリー・ジャパン アメリカでは既に訴えられて裁判になり和解まで行ってるようだけど日本は分からん。 訴えられるまでやりますって感じかもね。 本は実際に手にとって読みたい人がいるからこれは良い宣伝になり売上が伸びる。 ってのもあるだろうけど、これだけで済ます人も多そうだ。
467 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 19:15:03 ] よく見るとわかるけどたまに表示されないページがあるよ。
468 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 19:15:18 ] って左下に「O'Reilly Japanの許可を受けてページを表示しています. 」って書いてあるじゃねーかw
469 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 22:51:55 ] 少なくともおれの場合は中身が見られることで洋書を買う量が増えたよ。 見るのはgoogleより米amaの方が多いけど。
470 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:12:24 ] おおー こんなのが只で読めるとは
471 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:34:58 ] レイアウト解説本に載ってるのって、俺からすると読みづらいことばっか書いてるんだ コメントが行区切りの役果たしてるんだから空白行いらんだろ、かえって関数が盾に間延びする よく考えたらほとんどの環境でPerlの場合コメント着色されないんだっけ・・・区切りの機能果たさないなw
472 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:51:08 ] これ買うかどうか迷ってたけど欲しくなったわ
473 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 00:52:16 ] >>467 たまにどころか途中から全部仏陀義理じゃねーかw
474 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 23:02:04 ] そうなのか まだ頭の方だからたまに飛ぶくらいでかなり役立ってる
475 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 13:48:27 ] Perlに匹敵するモジュールがそろった言語って他にありますか? 具体的には ・ActiveDirectoryの操作(Net::LDAP) ・FTPs ・WWW::Mechanize ・DBI ・Net::DNS ・GD ・関数のpack このくらいはせめて欲しいのですが・・・
476 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 14:06:24 ] 定番的なものはrubyにもpythonにも(そして多分schemeやHaskellにも)たいてい 相当するようなものはあるので好きなの使えばいいとおもうけど、そんなのは それぞれのスレに行って聞けよ。でもわざわざ他の言語使わんでもperlでいい んじゃね?
477 名前:475 mailto:sage [2010/05/26(水) 14:27:29 ] >>476 ありがとう。 Perlしか分からないので、Perlで書いたものを他に移植することで 勉強はじめようかと思いまして。 とりあえずスクリプト言語はPerlを嫁にして、 C/C++、Javaあたり覗いてきます。
478 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 17:00:41 ] usamimi.info/~pochi/perl/pochitate01.html にあるような感じで縦書きテキストビューワーを作っています。 引き数として与えられるファイルが、 テキストファイルなのかバイナリファイルなのか判定したいのですが、 -T でのテキストファイル判定はその判定方法から UTF-8以外の日本語文字コードでは上手く機能しないらしくて困ってしまいました。 テキストファイルかバイナリファイルかを判定する良い方法は無いでしょうか?
479 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 19:28:28 ] Encode::guessで判定して、decodeするときにFB_CROAKを指定して エラーにならなきゃOKとか?
480 名前:デフォルトの名無しさん [2010/05/26(水) 19:29:25 ] guess_encoding()使ってるみたいだから、guessに失敗したら中断(現行コードのまま)でえーんでないの? そもそも -T の精度も疑わしいし、ましてやWindows環境だとマジックナンバー照合による判定は無理なんでは? 判定精度を上げたいなら use Encode::Guess qw/euc-jp shiftjis iso-2022-jp/; ↓ use Encode::Guess qw/euc-jp shiftjis iso-2022-jp cp932/;
481 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:21:46 ] 全走査して\0が無ければテキストファイル。でもutf16/32は勘弁な。