1read 100read
2012年5月プログラム45: Perlについての質問箱 52箱目 (205)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
XNA 質問・相談スレッド 2 (905)
C++11/C++1y 15 (284)
つまりRubyってPerlの後続じゃん? (105)
Java ネットワークプログラミング 【教えて!】 (605)
おまいら最強の麻雀プログラムしてみろよ Part5 (525)
Git 4 (559)
Perlについての質問箱 52箱目
1 :12/05/06 〜 最終レス :12/05/29 CGI についての質問は板違いです。WEB プログラミング板でどうぞ。 CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。 (WEB プログラミング板: http://hibari.2ch.net/php/ ) このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 "The duct tape of the Internet" こと、Perl についての質問箱です。 "There's more than one way to do it" ということで、 Perl の奥深さについて皆で語り合い、追求してまいりましょう。 http://www.perl.org/get.html Download Latest Stable Source (5.14.2) ▼ 前スレ Perlについての質問箱 51箱目 http://toro.2ch.net/test/read.cgi/tech/1330666216/ リンク集は >>2-3 Perl 日本語処理の基礎の基礎 >>4
2 : [プログラミング自体の経験が無い奴はまずココを読め] Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/ [本] リャマ: ttp://www.oreilly.co.jp/books/9784873114279/ 駱駝: ttp://www.oreilly.co.jp/books/4873110963/ Effective Perl: ttp://www.amazon.co.jp/Effective-ASCII-Addison-Wesley-Programming/dp/4756130577 クックブック: ttp://www.oreilly.co.jp/books/4873112028/ Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/ Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/ [オンラインマニュアル] 最新のドキュメント: ttp://search.cpan.org/dist/perl/ perldoc.jp: ttp://perldoc.jp/ perldoc.perl.org: ttp://perldoc.perl.org/
3 : [モジュール] CPAN.com: ttp://search.cpan.org/ 河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/ [テクニック] Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/ Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm [Perl 5.8 Unicodeメモ] ttp://www.rwds.net/kuroita/program/Perl_unicode.html ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
4 : # [Perl 日本語処理の基礎の基礎] # このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。 # このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。 # 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。 # まず、以下の行を先頭に入れて下さい。 use utf8; use open IO => ":encoding(cp932)"; binmode STDIN => ":encoding(cp932)"; binmode STDOUT => ":encoding(cp932)"; binmode STDERR => ":encoding(cp932)"; # ※1 use Encode; # 次に、あなたが実行したい処理の内容を入れて下さい。 $file = 'C:/なんたら/かんたら.txt'; open my $fh, '<', encode("cp932", $file) or die $! ; # ※2 print <$fh>; # 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう # おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。 # 【注】※1. の行を入れると、DOS 窓への日本語出力は簡便になりますが、 # ソースファイル名に非 ANSI 文字が含まれる場合に die 文の出力が失敗します。 # ※2. OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、 # この例のように cp932 でエンコードする必要があります。
5 : Encodeモジュール (現在のPerl文字コードの標準) http://search.cpan.org/dist/Encode/ UNICODEでわからなくなったらここを読め http://perldoc.jp/docs/perl/5.8.1/utf8.pod http://perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
6 : ゴミスレ立てるな
7 : このスレッドは天才pンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
8 : ∧∧ ( ゚Д゚ )∩ ⊂ ノ / 0 し´ えっ…と、 ここかな…、と ∧∧ ∧∧ ∩゚Д゚≡゚Д゚ ) `ヽ |) | __ |〜 ∪ ∪ ドスッ ∧∧.ミ. _ ( )┌┴┴┐ / つ.終了│ 〜 ./ └┬┬┘ ∪∪ ││_ε3 ゛゛゛゛
9 : 前スレ>>985 だけどありがとう。 >>986 >>993 >>998 次々に新商品が出てくる中で従業員に負担をかけず(追加入力作業なし) やりたいというのが絶対条件にあるんです。 私がいつ死んでも半永久的に大丈夫ですみたいな。 シャトー<->CHのような既知で予想されるワードなら初期の段階で入力しておける のですが・・ >>997 区切り文字で区切られない場合もあるのでワードを細切れで分割できない場合が あるのです >>989 ちょっと難しいです >>994 >>995 >>996 ヤフーのキーフレーズ抽出サービスみたいなのしか思いつかないのですが たしかにもうちょい文章量がないと難しいですね
10 : まじめにやろうとするなら、こっちのお題だね。 自然言語処理スレッド その3 http://toro.2ch.net/test/read.cgi/tech/1235129481/l50 でも、レスを見る限り、この手のことにかまけるより本業で稼いで誰かに作ってもらった方が良いと思う。
11 : for(1...100){ $n = rand; print "<INPUT TYPE=\"checkbox\" NAME=$n VALUE=\"on\">"; } このようにnameを乱数で作ったチェックボックスを100個作るとする このときチェックされたチェックボックスのnameだけを 配列@check_name_listに格納するやり方を教えてください モジュールは使わないやり方でお願いします。
12 : さすがゴミスレ
13 : for(1..100){ $n = rand; push @check_name_list, $n; print "<INPUT TYPE=\"checkbox\" NAME=$n VALUE=\"on\">"; } <!-- 100個全部 on みたいなので -->
14 : まちがえました valueの指定はなしです print "<INPUT TYPE=\"checkbox\" NAME=$n>"; です
15 : my @check_name_list = (); # 100個全部 on じゃないみたいなので
16 : CGIの質問だからって意地悪はいけないよ
17 : CGIの質問は、ただの釣りだから
18 : もっと言うと答えてるヤツは自演だから
19 : >>11 ・乱数じゃなくて決まっている名前の場合 ・100個ではなくて1個の場合 これらが個別にできるレベルでないと解決できないと思われ (おんなのこであることを期待しつつレス)
20 : >>15 チェックボックスのこと知らないんだろうな VALUEを指定しないチェックボックスをチェックするとonになるよ
21 : じゃあ、チェックしなければoffであってる? my @check_name_list = ();
22 : use strict; のstrictのパッケージはなんですか?
23 : いいえ、ケフィアです
24 : 自分のstrict.pmには先頭に package strict; と書いてありました。 >>23 さんも自分の環境のstrict.pmをお読みになることをおすすめ します。
25 : >>22 さんの間違いでした
26 : 正規表現のパターンの中に$a[$i]みたいなのを書きたい時はどうすれば
27 : ああ、普通にやればできてた 中身に [ とかが入ってたのが問題だった
28 : 変数の中に含まれてるメタ文字をパターンの中で展開した時に、 メタ文字をただの文字として認識させるみたいなオプションって無かったっけ
29 : aru
30 : オプションで指定できたらメタキャラクタ一切使用不能ということで、 そんなもんは正規表現じゃねえ 要らない部分だけ\Q \Eで括るんだよ
31 : $s = "name=val;"のようにセミコロンが付く時と $s = "name=val" のように終端になる時 同時に一回でvalの文字列部分を切り出す方法を教えて下さい
32 : =(.*?);?
33 : for("name=val;", "name=val"){ if(/=(.*?);?$/){ print "($_)($1)\n"; } else{ print "($_)(undef)\n"; } } __END__ 試さないと正しい回答は無理だね
34 : ダメなperlって何? (name=val;)(val) (name=val)(val) This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread Binary build 1204 [294330] provided by ActiveState http://www.ActiveState.com
35 : ヒント: >>32 の回答は $ が指定されていない (インタプリタのバージョンのせいではない)
36 : use feature 'say'; $str = "DEFxkdmeABCidkDEFledxaoDEFasdDEF"; say "gr\t: ", $str =~ s/((?<=ABC).*?)DEF/\1def/gr; $tmp = $str; 1 while ($tmp =~ s/((?<=ABC).*?)DEF/\1def/g); say "while\t: $tmp"; ABCより後ろのDEFをdefにする正規表現なのですが、上記を実行すると gr : DEFxkdmeABCidkdefledxaoDEFasdDEF while : DEFxkdmeABCidkdefledxaodefasddef となります。何故grの方はgオプションをつけているにも関わらず一度しか置換されないのでしょうか?
37 : grの方は1回しか実行されないからだお。
38 : UTF16文字コードの、「\u3066\u3059\u3068」このような文字列を UTF8変換で「てすと」と表示させるにはどうすれば良いのでしょうか
39 : >>36 r オプションて何?
40 : rオプションの付いている時はgオプションが無効になるのかと思いましたが違いました。以下は上手く動きます。 use feature 'say'; $str = "aaabbyzxoiuyaoaaaaoiuyerpza"; say $str =~ s/a/_/gr; say $str; # 出力 ___bbyzxoiuy_o____oiuyerpz_ aaabbyzxoiuyaoaaaaoiuyerpza 非破壊的な置換です。この例で言うと$str自体に変更がされません。>>39
41 : gは置換え後のポジションから継続するので後読み言明がマッチしないんだお。 先頭から s/// をもう一回するのとは違うんだお。
42 : 画像を扱いたいのですが、画像のフォーマットやサイズが簡単に取得できるモジュールを教えてください。
43 : >>36 use 5.14.0; use warnings; use re 'debug'; my $str = 'DEF ABC DEF DEF ABC DEF'; $str =~ s/(?<=ABC)(.*?)DEF/$1def/g; say $str; こんなんで分かるんじゃないのん。 >>39 http://perldoc.jp/docs/perl/5.14.0/perl5140delta.pod#Non-destructive32substitution 5.14以降らしい。 >>42 http://search.cpan.org/~rjray/Image-Size-3.230/lib/Image/Size.pm
44 : オレ様ならimagamegick入れて systemとか``を使う identify -format "%w %h" a.jpg
45 : print "ぁ"; sleep(5); print "ぁ"; sleep(5); これだけ書いた.plファイルをクリックしたら、 5秒経過してから「ああ」と出てきて消えるんですが、理由はなぜですか?
46 : local $|=1;
47 : バッファとかフラッシュ(flush)について勉強しといで
48 : >>46-47 すいません教えられた言葉でググれば解決しそうです。 なんか変わった仕様(?)なんですね 面白いです ありがとうございました。
49 : >>43-44 ありがとう
50 : mysqlから受け取ったutf8エンコードの文字列がsjisに出来ません ソースをUTF8で扱い,普通に変数代入したものをsjisにencordすると正しく画面に出力されますが mysqlから受け取ったものをencordすると「????」と文字化けが起こります $s = "文字列"; print "$s\n";#UTF8の状態で画面に出力 print encode('Shift_JIS', $s);#「文字列」と、正しく画面に出力される print "\n"; --- while(@row = $sth->fetchrow_array){ print "$row[0]\n"; # UTF8で出力される print encode('Shift_JIS', $row[0]); #「???〜」となってしまう print "\n"; } cgiにしてHTMLをUTF8に設定して出力するとブラウザ側では正しく表示されるので sqlからの文字列はUTF8として正しいものと思われます
51 : UTF8フラグが云々なので、そこはfrom_to()を使ってください
52 : ソースコードに日本語を書くのであれば、 use utf8が必要
53 : DBI接続するときにmysql_enable_utf8オプションつければ他はそのままでいんじゃね
54 : DBI->connect($db, $user, $pass, { mysql_enable_utf8 => 1, on_connect_do => [ 'SET NAMES utf8', 'SET CHARACTER SET utf8', ], });
55 : まだハローワールドのレベルの人間なのですがちょっと質問させていただきたいと思います。 環境はWindows7 32Bit StrawberryPerlです。 出力結果として日本語が出てくるプログラムを書いた時にえらく文字化けしてしまうのですが、何か読み込まなければいけないモジュールなどあるのでしょうか? ソースのエンコードはCp932(Shift-jis?)で書きました。 書きましたといってもAcme::Oppaiを使ってニヤニヤしてみたかったのでネット上のソースをそのまま引っ張ってきています。 !/perl use Acme::Oppai; print " "; print Acme::Oppai->Oppai->Oppai->Oppai->Oppai; このような内容です。 >>1 に書いてあるようなutf8~というのも試したのですがやっぱりうまく出力できません。 Windwosでは無理なのでしょうか・・・・
56 : sqlからの情報を文字数単位で正規表現を使いたいので 出力時のみsjisにしたいですがどうやらsqlからのデータがutf8の扱いになっていないようなんですが そのフラグというのはどう立てるんでしょうか
57 : 50のヤツはどうなったのか まずそれを書けよアホ
58 : >>55 コードはutf8で書いて、下のを使うのがオススメだお。 http://search.cpan.org/~xaicron/Win32-Unicode-0.34/lib/Win32/Unicode/Console.pm
59 : どうだろ
60 : こないだの竜巻はこいつか
61 : ふと思った。 Webサーバマシン上で動き、cronなり手動なりで呼び出される「HTML生成プログラム」は、このスレの範疇なのだろうか
62 : >>61 二度手間質問。 Perlの動きの質問なら、ここでいいんじゃねーの? 質問してみれば?違えば誘導されるだけ。
63 : それもそうだな。 特に現状で質問があるわけではないんだ。すまんかった。
64 : >>55 utf8フラグ付きの文字列を返させるためにAcme::Oppaiのオプションにuse_utf8を付ける。 後はワイドキャラクタ文字列として処理。 use 5.12.0; use warnings; use Acme::Oppai; use open qw(:encoding(cp932) :std); my $oppai = Acme::Oppai->new('use_utf8' => 1); say $oppai->oppai;
65 : >>58 >>64 お返事ありがとうございます! CentOSで試したら先のソースだけで動いたので安心しきってましたがWindowsだと色々手間が必要なんですね・・・ そもそもWindowsでやることが間違いなのかしらw 何はともあれこれでAcme::Oppai以外にも色々試せそうです。
66 : eucで動いてるknoppixとか試すのカンタンだから試してみりゃあいい
67 : 昔の Linux は euc 今の Linux、Mac は utf8 ういんどーず は CP932 (SJIS の方言) OS9 の頃は知らん
68 : >>65 cmd.exeだとcp932で出力しなきゃならない。 最近のcygwinのmintty.exeだと、utf8出力で大丈夫。 確かにwindowsだと、そのへん考慮しなくちゃならないね・・・でも逆にその辺だけかな。
69 : 簡単な質問なのかは分かりませんが、 @ スクリプトを実行すると、エクスプローラが起動し、ファイルを指定 A ファイル選択後スクリプトを実行 B 読み込みファイル名.re.txt で書き出し スクリプト処理 読み込みファイル内から [android半角スペース] を検索 [android半角スペース100半角スペース] に置き換え [iphone半角スペース] を検索 [iphone半角スペース200半角スペース] に置き換え のように、検索と書き換え処理を多段処理したいのですが、テキスト置き換え以外やったこと無いので、書き方等おしえていただけませんか?
70 : perl/tkとかいう愉快なモンを使う必要がある その「エクスプローラ」てのが ファイル選択ダイアログのことなら ね そうでないならSIRAN
71 : >>69 explorer.exeの起動じゃなくて、ファイルダイアログかドラッグ用のウィンドウを出して処理がオススメ! WxPerlでカコヨクできるよ。
72 : PerlってどれくらいできればPerlできますって言っていいんですか><
73 : printf が出来れば
74 : 書いてみたいスクリプトがあってPerlとRubyとPythonを試していて、どれでも書けるんですが、 この中で一番汎用性が高いのはどれなんでしょうか? PHPはWeb限定っぽいし、PerlはそもそもWebではなくてテキスト処理に使われたらしいのでPerlかな?と思ったんですが Perlだと、ローカルのファイル名を全て変更したり、ファイルの更新日付を見てバックアップを取ったりとかもできますか?
75 : どれでも書けるなら自分の好きなものでどうぞ
76 : とりあえずgithubでどうぞ
77 : 自前アプリにスクリプトを実装したいなら Python かな そうでなきゃ Perl、Ruby かな PHP は WEB 意外ではクソ
78 : 以前回答を待つ前に大丈夫でしたと書いてしまったのですが 全然大丈夫でなかったので質問しなおさせてください。 以下のようなWeb処理をPerlで書いたのですが、処理時間が長すぎるのか 画面の出力が行われません @ファイルをまとめてアップロード Aアップされたファイルの中から画像を選別しImageMagickで繰り返し処理 B処理が終わった旨メッセージ出力 ファイル数が少ないときはメッセージ出力がきちっと行われるのですが、 ファイル数が多いとメッセージの出力がなされず真っ白な画面が 返ってきたりします。その場合も処理の受付はなされているのか 白い画面(ブラウザ)を閉じてしまっても時間が経てばAはちゃんと完了します。 @の処理が終わった段階でもうメッセージを出してしまうか Aの処理が終わるまできちんと待って確実にメッセージを出力したいのですが なにか方法がございますでしょうか
79 : Ajaxでプログレスバーを表示する
80 : fork でググれば幸せになれるかも
81 : ありがとうございます! >>79 今の状態だといつまでもプログレスバー出してるだけになるっぽいので ちょっと難しいかもしれないと思いました。 >>80 こんなものが!ありがとうございます!試してみます
82 : >>75-77 ありがとうございました。
83 : 【祭り】安価でアフィブログ炎上させる【会場】 http://hayabusa.2ch.net/test/read.cgi/news4vip/1336983773/
84 : cpanでモジュールインストール こころみてるけど怒られるお。 なんでだお。 admin:~ admin$ sudo cpan Password: Terminal does not support AddHistory. cpan shell -- CPAN exploration and modules installation (v1.9456) Enter 'h' for help. cpan[1]> install Math::Vector::Real Going to read '/Users/admin/.cpan/Metadata' Database was generated on Tue, 15 May 2012 03:31:03 GMT Running install for module 'Math::Vector::Real' Running make for S/SA/SALVA/Math-Vector-Real-0.08.tar.gz Checksum for /Users/admin/.cpan/sources/authors/id/S/SA/SALVA/Math-Vector-Real-0.08.tar.gz ok Scanning cache /Users/admin/.cpan/build for sizes ............................................................................DONE
85 : CPAN.pm: Going to build S/SA/SALVA/Math-Vector-Real-0.08.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Math::Vector::Real cp lib/Math/Vector/Real.pm blib/lib/Math/Vector/Real.pm Manifying blib/man3/Math::Vector::Real.3pm SALVA/Math-Vector-Real-0.08.tar.gz /usr/bin/make -- OK 'YAML' not installed, will not store persistent state Running make test PERL_DL_NONLAZY=1 /opt/local/bin/perl5.12 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/Math-Vector-Real.t .. ok t/pods.t .............. skipped: Only the author needs to check that POD docs are right All tests successful. Files=2, Tests=13, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.10 CPU) Result: PASS SALVA/Math-Vector-Real-0.08.tar.gz /usr/bin/make test -- OK Running make install Manifying blib/man3/Math::Vector::Real.3pm Appending installation info to /var/root/perl/lib/darwin-multi-2level/perllocal.pod SALVA/Math-Vector-Real-0.08.tar.gz /usr/bin/make install -- OK cpan[2]> quit Terminal does not support GetHistory. Lockfile removed. admin:~ admin$ perldoc -l Math::Vector::Real No documentation found for "Math::Vector::Real".
86 : パ・パ・パパッパ・Perlライス
87 : >>84 複数のPerlをインストールしていて、 ユーザとrootで使うPerlが別物になってるとか。
88 : >87 cpanplus でインストールしてみたらできました。 それは多いにありえますねー原因はまだ不明ですが
89 : >>86 おっさんwwwww
90 : おっさんを笑う者もまた、おっさんなのだ・・・
91 : ある perl のプログラムを実行すると .out ファイルが生成される。 これは何を意味しているのか? 抽象的ですまん。
92 : .outファイルは 大抵はcコンパイラが吐き出した実行ファイル それかただの出力されたテキストファイル バイナリエディタかテキストエディタに送るのが常套
93 : >>92 .safeファイルが出来るまで繰り返し実行しろ、とか そういう返しを期待していたんだが
94 : .auto
95 : 文字列を渡すと他になにも指定しなくても 日付文字列を探していい感じにparseしてくれるモジュールない? RubyのTime.parseみたいなやつ。
96 : どこの部分で時間が掛かってるか調べるモジュールあったよね? そのモジュールが吐き出すファイルの拡張子が .out だった気がする
97 : プロファイラか。確かに。
98 : use strict; use warnings; use Time::Piece; use Date::Parse; my $str = 'Thu May 17 22:21:00 JST 2012'; my $time = localtime str2time($str); print $time->year. '年' . $time->mon . '月' . $time->mday . '日'; __END__ >>95 Ruby知らんけどこういうの?
99 : >>98 $strに日付以外の文字列が混ざってても日付文字列を探して いい感じにparseして欲しいです。
100read 1read 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
画像処理 その13 (601)
【マック】Macintoshプログラミング質問箱 (482)
iPhone iPad iOSプログラミング Part1 (377)
【ActiveScript】RubyをWindowsで使うスレ【GUI】 (821)
おまいらのプログラムの勉強の仕方を教えろください (120)
Rubyについて(アンチ専用) Part004 (723)
--log9.info------------------
RPG戦闘曲で一番カッコいいのは? (497)
●ミュージシャンがアニメの主題歌ってどうよ?● (141)
【明るく】聴いていて元気が出る曲【楽しく】 (124)
【赤字】avexの今後について考えるスレ【転落】 (513)
【PV】★エロいプロモ★【PV】 (717)
アーティスト名でだじゃれ (141)
▼▼【気がつけばギター不労者】▼▼ (113)
【CD】みなさんCDの収納どうしてます【収納】 (630)
♪ライブだと(・∀・)<サイコー!!なアーティスト♪ (547)
今年はミリオン作品が0だったりして。 (628)
◆女にモテる音楽のジャンルとは何か◆一回戦 (350)
「ミラシド」で始まる曲・サビ (117)
JASRACに天罰を!!!! (331)
最近のJ-POPはヤバイと思う人数〜二小節目〜 (917)
【アー】 昔と比べて邦楽レベルは上がったか 【格】 (933)
###関西版・ライブハウスの裏!2### (286)
--log55.com------------------
登山鉄道・山岳鉄道総合
☆国境越え☆
それなりに役立ちそうなうんちくを言うスレ
海外鉄道研究会
何でオーストラリアは2階建て電車が普及してんの?
【初乗り】ロンドンの地下鉄高すぎ【920円】
海外の鉄道の運賃制度について深く考察するスレ
この区間にアムトラックの旅客列車を走らせたい