- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ]
- "The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 (WEBプログラミング板 pc8.2ch.net/php/ ) CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2006/12/21現在の最新版: 5.8.8 ● 2006/12/21現在の開発版: 5.9.3 前スレ Perlについての質問箱 29箱目 pc11.2ch.net/test/read.cgi/tech/1166708139/ リンク集は>>2-3 過去スレは>>4
- 71 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 21:42:27 ]
- >>63
お約束の「はまり」だ。自力で頑張ってくれ。 例のごとく「PODを読め」とかほざいているやつは、Jcode使えとか言ってるバカと同様 八割方テメエでもできないから心配することはない。 ちなみに、あんたが既に挙げている材料だけでうまくいくよ。
- 72 名前:63 mailto:sage [2007/03/21(水) 22:28:13 ]
- >>71
もうかなり悩んでるんです… 挙句の果てにはUnicode文字が含まれてたら _utf8_off で普通の文字列にし、それ以外はShiftJISとしてutf-8にエンコードしてます。 本当にお願いします…コードをいくつか書いて頂ければ…
- 73 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 00:07:55 ]
- utf8フラグだけ落としたらいいじゃない
- 74 名前:デフォルトの名無しさん [2007/03/22(木) 04:24:32 ]
- ご存じの方ありましたら教えてください。
掲示板に貼られる画像のサニタイジングをしたいのですが、CPANか どこかにコードがなかったでしょうか。とりあえずJPEGとPNGだけでも 処理できたらいいのですが。
- 75 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 05:05:44 ]
- しかし、文字コードになるとキレる奴がいるなw
- 76 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 08:35:23 ]
- >>74 適当なモジュールでデコードしてエンコードすればいいんじゃ
- 77 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 08:43:35 ]
- ImageMagick
- 78 名前:74 mailto:sage [2007/03/22(木) 15:14:14 ]
- >>76-77
ありがとうございます。試してみます。
- 79 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 16:11:56 ]
- The GUI LoftのようなGUIデザインツールがTkにもあれば教えていただけないでしょうか?
- 80 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:12:58 ]
- $q = new CGI;
これがエラーになるのですが考えられる原因はなんでしょうか?
- 81 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:22:22 ]
- ・perlのパスが違う
・useしてない ・モジュールが無い ・ブラウザで表示してるのにContentヘッダを出力してない ・脳内鯖にしかアップしてない とりあえずエラーログ見ればいいと思う
- 82 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:44:29 ]
- use strictをはずしたら動きました
- 83 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:55:05 ]
- それはまず、なぜstrictありで怒られてたのかを考えるべきところじゃないのか?
- 84 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:03:42 ]
- っ my
- 85 名前:デフォルトの名無しさん [2007/03/22(木) 18:03:46 ]
- ・$qをmyしてない
- 86 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:14:19 ]
- >>82
- 87 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:28:02 ]
- いろいろな点で酷過ぎる
- 88 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:39:44 ]
- strictはずのは自殺行為
- 89 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:43:35 ]
- エラー隠蔽者には、まずエラー内容を吟味することを教えようぜ。
- 90 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:24:23 ]
- 質問です。
正規表現で伸ばし棒を使うとエラーが出てしまうのですがこれを回避する方法はないでしょうか? よろしくお願いいたします
- 91 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:25:37 ]
- 伸ばし棒ってどれ。
- 92 名前:デフォルトの名無しさん [2007/03/22(木) 20:26:57 ]
- ー
これです
- 93 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:27:49 ]
- これも同じ人?向こうの方がいいんじゃないかな。
- 94 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:30:15 ]
- >>90
具体的にエラーがでる正規表現と、エラーの文も書いてくれ
- 95 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:33:42 ]
- >>94
my $str = "test"; $str =~ s/ニート//; Unmatched [ in regex; marked by <-- HERE in m/ニー <-- HERE ト and Settings\\デスクトップ\httpd142p\test.pl line 3. こんな感じです >>93 >>90=>>92です
- 96 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:34:12 ]
- >>92
2バイト目が [ になってるんでperlが混乱してるんだな。
- 97 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:37:10 ]
- >>95
\Q\Eで囲め
- 98 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 20:40:14 ]
- >>97
!!!!! できました!!ありがとうございます!!!
- 99 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:22:20 ]
- \Q\Eか。それ忘れてた。前それではまって、m/コピ\x{81}\x{5b}/なんてことやってた。
- 100 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:33:38 ]
- あほうは、新テンプレ通りやれよ。同じ事何度も言わせんな。
- 101 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:52:35 ]
- そうだな。
>>98は黙って>>10に書いてある通りのことをやれ。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 21:53:25 ]
- シフトJISって懐かしい。
- 103 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:08:34 ]
- #!/usr/local/bin/perl
use strict; use LWP::Simple; use XML::Simple; my $api = 'd.hatena.ne.jp/exist?mode=xml&url='; my $url = 'www.yahoo.co.jp/'; my $document = LWP::Simple::get($api.$url) or die "cannot get content from $url"; my $parser = XML::Simple->new; my $data = $parser->XMLin($document); print $data->{count}->{bookmark}->{content}, "\n"; www.itmedia.co.jp/enterprise/articles/0702/26/news011.html ここのサンプルなんですがエラーがでました 何が悪いのでしょうか?そんなに難しいことをやってるわけではないと思うのですが
- 104 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:40:11 ]
- なんていうエラーがどこで出たのよ?
- 105 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:45:19 ]
- HTTP 500 - 内部サーバー エラー です
- 106 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:48:42 ]
- なんでブラウザにエラーが出るわけ?
- 107 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:48:48 ]
- テンプレに
>エラーが出たらエラーをそのままコピペしろ と入れた方がいいね。 >>105 コマンドラインで実行した結果を出せよ。出せないなら、WebProg逝き。
- 108 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 22:56:48 ]
- 自己解決しました
コピペした括弧が全角でした なんで括弧だけ全角なのか意味不明です わざとなんでしょうかね ひどいサンプルです
- 109 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:02:58 ]
- ここって初心者向けのスレなの?
- 110 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:05:47 ]
- 行番号が付いてるところからも、コピペを前提とはしてない、実際に
手を動かして理解するためのコードだとは思うが、なんで括弧が半端 に全角になってるんだろうな。(9行目の2つと13行目の閉じ括弧)
- 111 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:35:37 ]
- 普通の記事をいつも上げるときに使ってるスクリプトがお節介でもしたんだろう。
- 112 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:37:14 ]
- ftpで相手サーバの接続先にあるファイルのリスト(ワイルドカードで指定した名前に
一致するファイルの一覧)を配列に取得したいのですが相手サーバの設定の関係で wgetとやらを使って接続しないといけません。 wgetの使い方は調べてみたのですが、それをPerlから実行してファイル一覧を取得 するにはどうやったらよいのでしょうか?
- 113 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:44:57 ]
- open("wget -O- $url |");
どんな内容が返ってくるかは実際に見てみれ。
- 114 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 00:07:22 ]
- >>74
サニタイジングなんて言ってたら高木大先生に張り倒されるぞ!
- 115 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 00:43:28 ]
- たいていの場合wget呼ぶよりはLWP使うほうがプログラムは楽だと
思うのだが、wget使わないと取れないってどういう仕掛けなのだろう??
- 116 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 02:01:06 ]
- FTPで接続だから、LWPよりもNet::FTPじゃね?
- 117 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 07:36:19 ]
- >>113
ありがとうございます。やってみます。 >>115-116 Net::FTPで作ってたのですがこれだと相手に繋がらなくて客先の担当の方が 「wget使ってください」とのことでした。
- 118 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 08:57:31 ]
- wgetでとれてNet::FTPだとだめというのもかなり不思議だな。
原因はわかってるのかな。それともwgetだと実績あるから 調べるの面倒だしそれにしとけとあしらわれたか?
- 119 名前:デフォルトの名無しさん [2007/03/23(金) 09:41:38 ]
- 突然ですが、xxxyyy.html というファイル名のファイルの、
全てのa要素のhref属性値をzzzwww.html というファイルに出力する方法を教えてください。
- 120 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:56:38 ]
- >>118
passiveコマンド叩けば通るとかいうオチだったりして……
- 121 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 10:23:13 ]
- >>119
突然だねぇ・・・
- 122 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 10:24:01 ]
- >>119
ググレカス module.jp/blog/monday_module_HTML-LinkExtor.html
- 123 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:56:12 ]
- 突然DOMで対抗してみたり
javascript:a=document.getElementsByTagName('a');b='';for(i=0;i<a.length;i++)b+=a[i].href+'<br>';document.write(b);
- 124 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:19:01 ]
- >>117
pasv() しても駄目か? ファイヤーウォールがある場合は passive mode にしないと駄目なことがあるぞ。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:20:00 ]
- 初心者質問で申し訳ないのですが、perlでコロン単体にはどのような意味があるのでしょう。
リファレンスを引いても載ってないし...。
- 126 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:49:02 ]
- 三項演算子?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:54:00 ]
- >>126
下記(*)の$_の手前にあるヤツなんですが・・ # CSV形式の $line から値を取り出して @values に入れる { my $tmp = $line; $tmp =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/; @values = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} …(*) ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); } Perlメモ www.din.or.jp/~ohzaki/perl.htm#CSV2Values
- 128 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:05:15 ]
- どう見ても三項じゃん
- 129 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:12:49 ]
- なるほど。ありがとうございました。
- 130 名前:デフォルトの名無しさん [2007/03/29(木) 01:14:28 ]
- substrで数値文字列から”001”のような文字列を切り出したいのですが、
デフォルトでは数値として扱われてしまい、1になってしまいます。 キャストの方法を調べたけど思うような情報が得られません。 もうしわけありませんが、教えていただけないでしょうか。
- 131 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 01:41:02 ]
- sprintfとかは?
- 132 名前:デフォルトの名無しさん [2007/03/29(木) 08:07:32 ]
- >>130
ウチの環境下だと、普通に文字列認識なんだが変数かなんかに突っ込んで、 計算かましたりしてない? % perl -le 'print substr qq{00001}, 3' 01 % perl -le 'print unpack qq{x3A2}, qq{00001}' 01
- 133 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 08:08:16 ]
- 上げてもた…
- 134 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 08:27:21 ]
- 文字列比較で $name == "admin" とかやってるのでは
- 135 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 14:13:36 ]
- +で連結してるとか。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 19:40:09 ]
- $val="2007年3月29日○○の温度は20度、○○の温度は10度、○○の温度は15度";
のような文字列があった場合 ○○の温度は10度の"10"を取得したいのですが、 どのように正規表現を書けばいいんでしょうか。 $value =~ /([0-9]+)/ のようにすると $1=2007 となりますが、 最大マッチしたうちのn番目を取得できたりする書き方があるんでしょうか 例がちょっとあれですが、○○には同じワードが入ることを想定してます。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 19:42:39 ]
- 本嫁
- 138 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 19:57:25 ]
- while ($val =~ /([0-9]+)/g){ push(@val, $1); }
print "$word[3]\n"; 汚くなったけど、上記のようにしてなんとかできました。失礼しました。
- 139 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:08:05 ]
- まー本人がいいっていうのならいいよね(´・ω・`)
- 140 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:10:40 ]
- なにか他にやりかたあれば教えてください(つД`)
- 141 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:28:37 ]
- 3年後に自分のコードみて「俺アホやん」 と思えたら、
君は著しく成長できたということだ。
- 142 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:45:58 ]
- 3年とはのんきな話だな。3ヶ月で一定のレベルに達しないなら、その人が向いてないかまたはその言語に悪意が混入されているかだな。
- 143 名前:壁|・ x ・)つ○ mailto:usage [2007/03/29(木) 22:09:20 ]
- $val =~ /(\d+)度/g
- 144 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 12:21:03 ]
- >>142
そんなこと言うなよ
- 145 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:55:55 ]
- コーディングテクは日々進化し続けると思うけどなぁ。
俺が還暦を迎えた頃にはスゲーことになってると思うんだ。
- 146 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 21:01:15 ]
- base.pmなんだけど、
sub get_fields { () = \%{$_[0].'::FIELDS'}; return \%{$_[0].'::FIELDS'}; } 「() =」これって何してるんでしょう? perl5.003で動作するように書き換えられないかな?
- 147 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 21:06:28 ]
- >>146
コメントで「『タイポじゃねーの警告』は黙れ」と書いてあるだろ。 つまりその部分は動作とは無関係。 しかし5.003とはまた随分古いバージョンだな。せめて5.005あたりにしとけよ…。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:23:03 ]
- >>147
すまん。 エラー書いてなかった。 Can't modify stub in list assignment at /path/to/base.pm line 43, near "};" こんなのが出る。 > しかし5.003とはまた随分古いバージョンだな。せめて5.005あたりにしとけよ…。 大人の事情というやつで・・・。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:58:15 ]
- >>148
search.cpan.org/~nwclark/perl-5.8.8/pod/perldiag.pod#Can't_modify_%25s_in_%25s - () = \%{$_[0].'::FIELDS'}; + # () = \%{$_[0].'::FIELDS'}; + local $^W = 0;
- 150 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 00:24:17 ]
- > 大人の事情というやつで・・・。
そんな仕事辞めてしまえよ
- 151 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 01:14:49 ]
- 5.003を理由に依願退職する>148であった。
- 152 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 02:08:39 ]
- linuxのperl向けのIDEでお薦めはなんでしょうか
- 153 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 02:12:15 ]
- emacs一択。
あとEPICとか? つーかPerlにはいいIDEないよ。
- 154 名前:152 mailto:sage [2007/03/31(土) 02:51:38 ]
- ども
そうですか、ではボチボチとやってみます
- 155 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 02:53:14 ]
- 春先は150みたいな
社会のしがらみスルー系のレスの ネタっぽさが薄まるんだよな
- 156 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 03:48:41 ]
- (1..10)
は1から10までの数を持つリストを生成する式だと思うんですが、 $hoge = (1..10); print $hoge; とやればリストの最後の値である10が変数$hogeに代入されると思ったのに なにも出力されません。 スカラー変数にリストを代入すると、リストの最後の値が代入されると思うんですが どこが間違っているんでしょうか?
- 157 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 03:59:22 ]
- Perl7っていつ出るんですか?
- 158 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 04:02:35 ]
- >>156
↓を実行するとわかるけど、範囲演算子(..)が範囲内の値リストを生成するのは、 リストコンテキストの時。スカラーコンテキストでは、違う意味になるよ。 d.hatena.ne.jp/palmo/20060724/rangeop while (<DATA>) { chomp; $hoge = (1..3); print "$_ = $hoge\n"; } __DATA__ AAA BBB CCC DDD EEE FFF
- 159 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 04:05:29 ]
- ..は範囲演算子。
$hoge = (1..10) のようにスカラコンテキストで用いた場合、..の左項が真になった 時点から右項が真になるところまで真を返す。(...だとちょっと変わる) いずれかの項が定数値であった場合、それは $. との比較であるとみなされる。 全く読み込んでいない状態なら $hoge の値は $. == 1 の結果に等しい。
- 160 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 04:17:29 ]
- 最後のとこ、全く読み込んでいないなら、$. == 1の結果は偽、で。
- 161 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:28:17 ]
- >>158,159
...演算子もコンテキストで意味が変わるんですね。 わかりました。ありがとうございます。
- 162 名前:デフォルトの名無しさん [2007/04/02(月) 04:58:36 ]
- perlのコミュは初心者に優しくて好きだ。
スクリプト言語経験者でも表記にとっつきにくいからかな。 マニュアル嫁で突っ返されることが少ない気がする。 (マニュアル読んでもわかんなかったりするし;ω;)
- 163 名前:デフォルトの名無しさん [2007/04/02(月) 06:06:27 ]
- XpSP2でActivePerl-5.8.8.820-MSWin32-x86-274739.msiを
インストールしたんだけど、Jcode.pmがインストールされない。 なぜ?教えてください。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 07:17:48 ]
- ActivePerlのことはよく知らんが、
Perl 5.8.0以降Jcodeが標準モジュールじゃなくなったからじゃないかな
- 165 名前:デフォルトの名無しさん [2007/04/02(月) 09:35:55 ]
- >>164
5.8.0以降はJcode.pmが標準と聞きましたので 当然、インストールされると思ってたのですが、 探しても見つからないんですよ。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 09:41:41 ]
- 5.8.0からEncodeモジュールが標準装備になってるからそれ使え。
- 167 名前:デフォルトの名無しさん [2007/04/02(月) 10:17:24 ]
- >>166
使っているアクセス解析プログラムがJcode.pm使っているんですよ。 perlのPG経験がないんで、改造も出来ないんです。 これです。 ttp://www.bflets.dyndns.org/Tools/AWStatsJpn.html
- 168 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 10:23:07 ]
- >>167
池沼か?標準じゃ入ってないと言ってるだろうが。
- 169 名前:デフォルトの名無しさん [2007/04/02(月) 10:29:59 ]
- それじゃ別の方法、考えています
- 170 名前:デフォルトの名無しさん [2007/04/02(月) 10:30:15 ]
- 考えます
- 171 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 10:34:35 ]
- 普通にJcode.pmインストールすりゃいいじゃないか。莫迦か
|

|