- 1 名前:nobodyさん mailto:sage [2007/09/16(日) 19:49:43 ID:???]
- Perlのコーディングで困ってる人のスレです。
【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >2 以降 前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/ 過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
- 130 名前:127 [2007/09/27(木) 20:54:10 ID:fs1IYXrA]
- >>128
そうですよね。まあでも括弧を外すなら結局rand(1)としないとしつこく引数にとられてしまいますね。 >>129 英語のページですか・・・ 僕の学力の低さを見透かしたような皮肉orz バカにでもわかる一覧表的なページはないということでFA?
- 131 名前:nobodyさん mailto:sage [2007/09/27(木) 21:18:44 ID:???]
- unless (0 and 1){
print 1; } 1と表示されます。unlessは条件式が偽を出してくる時にブロックを実行するのですよね? 0 and 1なら片方が真を出すのでブロック実行されないと思ったのですが。 複数の条件式が全て偽を出した時にだけブロック実行をさせたいのです。 回答宜しくお願いいたします。
- 132 名前:131 mailto:sage [2007/09/27(木) 21:22:38 ID:???]
- ちなみにこれをifでやるとさらにおかしなことになります。
if (1 and 0){ print 1; } これです。何も表示されません。先ほどのunlessとの整合性がつきません。 ifによる条件式部分ではちゃんと二つ共が真の時だけ実行されるのに、 unlessの場合は片方が偽を出せば実行されます。 もしかして 真 and 偽 は最終的に偽扱いされるのですか?
- 133 名前:nobodyさん mailto:sage [2007/09/27(木) 21:28:31 ID:???]
- >>132
>もしかして >真 and 偽 >は最終的に偽扱いされるのですか? そう。当たり前。
- 134 名前:nobodyさん mailto:sage [2007/09/27(木) 21:28:52 ID:???]
- (0 and 1) は(「偽」かつ「真」)だからそんなの成り立たない
(「真」かつ「真」)なら結果「真」と評価できる つまり、(0 and 1)は常に「偽」と評価される だから unless (偽) は常にそのブロック内が実行される
- 135 名前:131 mailto:sage [2007/09/27(木) 21:46:53 ID:???]
- なるほどです。
やはりちょっと違いますねunlessは。 ifのfalse版みたいに思うと微妙にやられますね。 全然関係ない話ですが、Perlには資格ってあるのですか? 書道3段とか簿記3級みたいに客観的にPerlにおけるプログラミング力を第3者に示すもの。 頑張って勉強してそのうちバイトでプログラムの仕事取ってみたいですが、 その時にそういう資格的なものがあるなら売り込みやすいなと思いまして。 本当に関係ない話ですいません。
- 136 名前:nobodyさん mailto:sage [2007/09/27(木) 21:59:00 ID:???]
- >>130
perldoc.jp/docs/perl/5.8.8/perlop.pod
- 137 名前:127 [2007/09/27(木) 22:08:14 ID:fs1IYXrA]
- >>136
日本語のページありがとうございます。 見てきますm(__)m
- 138 名前:nobodyさん mailto:sage [2007/09/27(木) 22:39:59 ID:???]
- perlの仕事なんか無いよ
- 139 名前:nobodyさん mailto:sage [2007/09/27(木) 22:51:34 ID:???]
- >>135
記号論理をやれば当然のことで、それを理解していればifの否定版と考えて問題は起きない
- 140 名前:nobodyさん mailto:非公開 [2007/09/28(金) 00:24:10 ID:???]
- スカラー変数と配列変数をいっぺんに作りたいです。
my ($s1,$s2............$s20); my (@r1,@r2............$r20); 全部書くのが面倒な時は簡単な方法はありますか?
- 141 名前:nobodyさん mailto:sage [2007/09/28(金) 00:37:13 ID:???]
- コードの先頭でまとめて宣言するってこと?
そんなことすんならuse strict使わない、宣言しないほうがよっぽどいい
- 142 名前:140 mailto:非公開 [2007/09/28(金) 00:42:26 ID:???]
- >>141
# 初期化 というところでいっぺんに使う変数を宣言しています。 何故というより癖みたいなものですかね。 それで分析プログラムを作ってたら、やたらと記録や集計用の変数が必要になったんです。 一つ一つまともに名前を考えるのが非効率なのでそこだけ適当な名前にしています。 strcit使いながら賢く宣言できませんか? 無理ならあきらめます。
- 143 名前:nobodyさん mailto:sage [2007/09/28(金) 01:00:34 ID:???]
- 変数をたくさん使いたいなら代わりにハッシュ使えば一つで済むじゃん
- 144 名前:nobodyさん mailto:sage [2007/09/28(金) 01:01:15 ID:???]
- なんだか意味が良くわからないけどハッシュにいれればいいじゃない
キー名を考えるのは同じだけど
- 145 名前:nobodyさん mailto:sage [2007/09/28(金) 03:02:00 ID:???]
- >>140
なんか、その変数名だと単に配列と二次元配列の初期化だけですむ気がすんだけど? my ( @s, @r ) ; # @s は、オマエさんの ( $s1, $s2, ..... ) を入れる配列 # @r は、オマエさんの ( [@r1], [@r2], .... ) を入れる配列 本当に別々の変数名が必要なのか? 本当に必要ならば上の人たちが言ってる通りハッシュorハッシュリファレンス 使え。
- 146 名前:nobodyさん mailto:sage [2007/09/28(金) 03:04:18 ID:???]
- for (1..20) { eval "my(\$s$_ , \@r$_)" }
- 147 名前:140 mailto:非公開 [2007/09/28(金) 06:42:10 ID:???]
- >>143-145
ごもっともなんですけど、リファレンスにするとコードが汚くなるんですよね。 いちいちデリファレンスしながらのコードは読みにくいし。 ハッシュも同じです。単なるスカラーと配列変数以上に読みやすいものはないかと。 >>146 それってforブロックの中でローカル化されてませんか? evalするとローカル化されないとか?
- 148 名前:nobodyさん mailto:sage [2007/09/28(金) 06:53:34 ID:???]
- >>147
そのevalに突っ込み入れられる実力があれば、 キミの望んだことは実現出来るよな? まあ、自分の考えに固執しないで、他の人が普通に「hash使え」って 言ってる意味を考えた方が良いと思うけど。 => perlでは143-145が普通の感覚だし、たかだか変数の 宣誓にevalなんぞ使ってたら「変態さんがいるわ&hearts」 と言われること受けあいだ。 そもそもそんなに個別の変数が必要か否かを考え直したほうがいい んじゃね?
- 149 名前:nobodyさん mailto:sage [2007/09/28(金) 08:03:45 ID:???]
- > 書道3段とか簿記3級みたいに客観的にPerlにおけるプログラミング力を第3者に示すもの。
書道の段位なんて流派ごとに異なるので、客観性があることにできないんと思うよ。 日商簿記2級くらいまでなら試験対策する時間さえあれば能力関係なしにとれるから 持ってたからといってだから何?レベルだよね。
- 150 名前:nobodyさん mailto:sage [2007/09/28(金) 08:31:35 ID:???]
- ttp://d.hatena.ne.jp/naoya/20050809/1123563794
脳内では、コレが参考になるかもしらんが、 ○自己判断のレベルが客観的判断のレベルと一致しない。 ○レベル7と8との間にとても深くて暗い河がある。 プログラミングの技量の判断として有名なのはFizzBuzz問題 だが、有名になりすぎて知ってて当たり前。
- 151 名前:nobodyさん mailto:sage [2007/09/28(金) 12:19:13 ID:???]
- Lv8かなぁ?Lv9にはなってない気がする。
- 152 名前:nobodyさん mailto:sage [2007/09/28(金) 14:28:43 ID:???]
- >>150
ほんと、7と8の間の河が深すぎる。7.5がほしい。 俺はたぶん6か7だけど。
- 153 名前:nobodyさん mailto:sage [2007/09/28(金) 15:13:33 ID:???]
- use strictってどういう効果有るの?ググってもよく分からないや
とか思ってる他人のソース弄って何とかしている人がここに一人。
- 154 名前:nobodyさん mailto:sage [2007/09/28(金) 15:43:49 ID:???]
- strictやwarningsは融通が利かなくなるので嫌いでちゅわ
- 155 名前:nobodyさん mailto:sage [2007/09/28(金) 15:58:21 ID:???]
- いいね、初心者スレらしい。
- 156 名前:nobodyさん mailto:sage [2007/09/28(金) 16:22:17 ID:???]
- strictや-wを使って粋がってる自称玄人は笑えるww
- 157 名前:nobodyさん mailto:sage [2007/09/28(金) 16:32:49 ID:???]
- 無理にstrictやwarings使って本末転倒になってる馬鹿はよく見る
- 158 名前:nobodyさん mailto:sage [2007/09/28(金) 17:27:09 ID:???]
- 普段から常に使ってるがどういう場面で本末転倒になるんだろう
- 159 名前:nobodyさん mailto:sage [2007/09/28(金) 17:36:03 ID:???]
- その昔はグローバル変数をサブルーチンでいじり倒すようなコードがあったけど
スコープ区切って引数と戻り値のやりとりするほうが100万倍読みやすいよ
- 160 名前:140 mailto:非公開 [2007/09/28(金) 18:12:42 ID:???]
- >>148
>そのevalに突っ込み入れられる実力があれば、 >キミの望んだことは実現出来るよな? すいません。もう少し普通の会話がしたいです。 >そもそもそんなに個別の変数が必要か否かを考え直したほうがいい んじゃね? このよくある「答は一つ、綺麗でスマート」っていうのはどうにも好かない。
- 161 名前:nobodyさん mailto:sage [2007/09/28(金) 20:40:06 ID:???]
- >>160
じゃおまえの好きなようにすれば?
- 162 名前:nobodyさん mailto:sage [2007/09/28(金) 21:25:32 ID:???]
- >>140
「Perlはあなたが自分の首を締めるのに十分なロープを 提供しているのだ」てな忠告がラクダ本に載ってたな。 #--- Filter/Range.pm --- package Filter::Range; use strict; use Filter::Simple sub { s{ my \s* \( \s* ([\$\@%][A-Z_a-z][0-9A-Z_a-z]*?) ([0-9]+) \.\. ([0-9]+) \s* \) } { 'my(' . join(',', map "$1$_", $2 .. $3) . ')' }egx; }; 1; __END__ #!/usr/local/bin/perl -w use strict; use Filter::Range; my($s1..20) = (1..20); print $s10; __END__
- 163 名前:nobodyさん mailto:sage [2007/09/28(金) 21:41:10 ID:???]
- Damian Conway ぷろだくとか。
- 164 名前:nobodyさん [2007/09/28(金) 22:27:42 ID:3wKaaJqT]
- サブルーチンを10個くらい作ってあります。
同じディレクトリに5個くらい違うCGIファイルがあります。 5個のCGIファイル全てに、冒頭の10個のサブルーチンをコピペしてあります。 print routin(1,2); 5個のCGIふぁいるではこういう記述でサブルーチンが使えます。 どうもこれを外部ライブラリ化とかいうのすると print パッケージ名::routin(1,2); で使えるようになるとか。 でもパッケージ名を入れるとなると5個のCGIファイル全てを書き直すのが嫌です。 またパッケージ名が入って見た目がウザくなるのも嫌です。 外部ライブラリにしながらも、メインパッケージにあるのと同じごとくサブルーチンを使うにはどうすればいいでしょうか? メインパッケージに初めに全部もらえばいけるんじゃないかとか妄想していますが。
- 165 名前:nobodyさん mailto:sage [2007/09/28(金) 22:30:18 ID:???]
- >>164
>>19読んで応用しろ。キーワードはexporter
- 166 名前:nobodyさん [2007/09/28(金) 22:45:38 ID:3wKaaJqT]
- orz
- 167 名前:nobodyさん mailto:sage [2007/09/28(金) 23:42:41 ID:???]
- べつにExporterなんかいらないだろ
全部plファイルにしてrequireでつなげろ
- 168 名前:nobodyさん mailto:sage [2007/09/28(金) 23:57:57 ID:???]
- おれだったらOOPが楽かな
- 169 名前:nobodyさん mailto:sage [2007/09/29(土) 00:02:00 ID:???]
- >>167
すげえまじで感動したw つか、require '....pl' ってperl4時代のモンだと思って使ってもなかったよ。 これからも使わんけどw もちろんstorableとか使用するときには必須>require
- 170 名前:nobodyさん mailto:sage [2007/09/29(土) 00:04:52 ID:???]
- があ、Data::Dumper の読み込み時だ。require 使うのorz...
- 171 名前:nobodyさん [2007/09/29(土) 00:51:07 ID:2KPMiuug]
- >>167
え? 明日試してみます。
- 172 名前:nobodyさん mailto:sage [2007/09/29(土) 02:58:11 ID:???]
- みんなrequire つかわないのかw
おらぁ使いまくりだ メインCGI一個に 汎用サブルーチンplに処理ブロックごとにpl分割 これが楽でいい。
- 173 名前:164 [2007/09/29(土) 06:51:46 ID:2KPMiuug]
- >>167
できないんですけど・・・・ s.plのpackage s;にサブルーチンを移しました。 で、 print check(1,2,3,4,5); でエラーでました。メインパッケージにそんな関数ないと。 もちろん print s::check(1,2,3,4,5); なら動作します。 どういうことですか? ウソ付きましたか?
- 174 名前:nobodyさん mailto:sage [2007/09/29(土) 07:14:33 ID:???]
- 3時間の出来事をシミュレーションするプログラムを書いています。
一応完成したのですが、時間の捉え方が「残り時間」というものになっています。 これを例えば、9時〜12時の間とかで捉えたいのです。 今は内部の処理が進むにつれて「残り時間」の変数を減算して、「残り時間」変数が0になったら処理おしまいというものです。 これを開始時刻と終了時刻を初めに決めて、+10秒とか命令出しながら実際に時間が進んでるかのような感じに 「今何時?」と聞けるくらいの感じに変えてみたいのです。 使えそうなモジュールがあったら教えてください。
- 175 名前:nobodyさん mailto:sage [2007/09/29(土) 07:57:19 ID:???]
- >>173
>package s; に移しました。 何故移す?
- 176 名前:nobodyさん mailto:sage [2007/09/29(土) 12:27:00 ID:???]
- 変数名を参照することって出来ますか?
$test = 'abc'; という変数があるとして、$testの'test'の部分を知りたいのです。 例えば、@a = ($test, $boo, $hoge); という配列があるとして、 これを それぞれ変数名 => 値 というハッシュに変換したいのです。 $h{'test'} => 'abc' のように。
- 177 名前:nobodyさん mailto:sage [2007/09/29(土) 13:07:39 ID:???]
- >>176
> @a = ($test, $boo, $hoge); この時点で $a[0] には $test が持つ値 'abc' そのものがコピーされて入る。 よって代入後に @a 内の各値からコピー元の変数名を辿る事はできない。
- 178 名前:nobodyさん [2007/09/29(土) 21:46:18 ID:m5gmrcyE]
- 文字コードをUTF-8に変換したいのですが
use Jcode; $str = "あああ"; print Jcode->new($str)->utf8; とすると Undefined subroutine &Jcode::_Classic::euc_utf8 called at パス/Jcode/_Classic.pm line 255. というエラーが発生してしまいます。 ちょっと調べたらJcodeのバージョンを下げれとありましたがそれは無理なので何か他に方法はないでしょうか。
- 179 名前:nobodyさん mailto:sage [2007/09/30(日) 02:32:26 ID:???]
- 未だにJcodeが使われるのは子飼弾がちゃんとEncodeの使い方を解説しないからなのか・・・
- 180 名前:nobodyさん mailto:sage [2007/09/30(日) 04:35:03 ID:???]
- >>178
使っているPerlのバージョンは? Jcodeはどのようにインストールしたもの? >>179 Web関連のムックで書いてなかったか? >Enocdeの使い方
- 181 名前:164 [2007/09/30(日) 08:09:20 ID:9pVP3h63]
- >>175
そりゃ中身なにもないものをrequireしてもしょうがないからですよ。 一体何が間違ってるというんですか? メインパッケージにないものをrequireを使えば routin(1,2,3); で呼べるというのは本当なんですか?ウソなんですか?
- 182 名前:nobodyさん mailto:sage [2007/09/30(日) 08:18:04 ID:???]
- ほらね、strictとwarningsを無理に使うと本末転倒になるでしょ。
- 183 名前:nobodyさん mailto:sage [2007/09/30(日) 08:34:17 ID:???]
- >>181
誰もウソなんかついちゃいない。 お前が全然理解できてないだけ。
- 184 名前:164 [2007/09/30(日) 08:40:27 ID:9pVP3h63]
- >>183
だから何をどうしろというんですか? 最小コードを教えてください。
- 185 名前:nobodyさん mailto:sage [2007/09/30(日) 08:49:27 ID:???]
- >>182
181の事を示して言ってるならwarningsもstrictも無関係にエラー出るぞ。 176はそう言う次元のお話しではないし、 178は、my宣言してないからwarningsとか宣言してないと見るが? 別にstrict,warningsを嫌うのは勝手だけど、事象は切り分けてくれ。 ここは初心者スレで勝手に脳内変換して>>182を信じてしまう人が いる可能性もあるんだから。
- 186 名前:nobodyさん mailto:sage [2007/09/30(日) 08:59:25 ID:???]
- >>184
うざいなあ、ここで文句垂れてる間にググればとっくに exporter の使い方も 習得出来てるだろうに % cat foo.pl sub foo{ 1 ; } 1; % perl -le 'require q{foo.pl} ; print foo()' 1
- 187 名前:nobodyさん mailto:sage [2007/09/30(日) 09:40:39 ID:???]
- >>185
ああごめん。mod_perlと混同して勘違いしてた。 Perlが初めての方なら尚更strict/warningsは ややこしくなるから不必要だと思うけど。
- 188 名前:164 [2007/09/30(日) 10:10:19 ID:9pVP3h63]
- >>186
突っ込みが下手すぎ。 package使うなって言って欲しかった。
- 189 名前:nobodyさん mailto:sage [2007/09/30(日) 10:12:50 ID:???]
- >>188
くだらない質問でもど偉そうに聞いていいスレ pc11.2ch.net/test/read.cgi/php/1158647441/
- 190 名前:164 [2007/09/30(日) 11:09:19 ID:9pVP3h63]
- もしもお前に部下がいるなら可哀想だ。
まだ使う側でないというなら、今のうちに間違いを指摘してきた相手が目下だと反省のできない上司にならないよう気をつけておけ。
- 191 名前:nobodyさん mailto:sage [2007/09/30(日) 12:11:48 ID:???]
- >>188
「最小コードを書け」 って言われたから書いたまでだが? >>175で package に関する点は指摘されてるだろ >>187 mod_perl の mod の字も出てないのに…
- 192 名前:nobodyさん mailto:sage [2007/09/30(日) 12:51:11 ID:???]
- 自分の読解力、理解力の無さを棚に
上げて回答者を批判する男の人って…
- 193 名前:164 [2007/09/30(日) 14:35:18 ID:9pVP3h63]
- >>191
>>175のどこがpackageに関する点の指摘なのよ。 あれじゃサブルーチンを別ファイルに移した事の指摘だろ。 >>192 女ならいいのか?クソフェミニストめ。
- 194 名前:nobodyさん mailto:sage [2007/09/30(日) 15:37:17 ID:???]
- 質問してもよろしいでしょうか?
すみませんが宜しくお願いいたします。 特定の契機を迎えたとき? @_や$_には値が自動でセットされるようになっていますよね? その契機の一覧みたいなものが知りたいのですが、膨大ですか? うまくまとめてるサイトあれば教えてください。
- 195 名前:nobodyさん mailto:sage [2007/09/30(日) 15:38:11 ID:???]
- やはり読解力の欠片も無いな
- 196 名前:nobodyさん mailto:sage [2007/09/30(日) 15:44:41 ID:???]
- >>194
search.cpan.org/~nwclark/perl-5.8.8/pod/perlvar.pod perldoc.jp/docs/perl/5.6.1/perlvar.pod ラクダ本
- 197 名前:nobodyさん mailto:sage [2007/09/30(日) 16:14:26 ID:???]
- >>179
5.005とか5.6と互換を取るのに便利だったりする。 (5.005は古いバージョン使ってたり、変換規則が違ったりするけど。) それはともかく、チュートリアルをpodで欲しいとか思うよね。 unicodeのチュートリアルとか、あっちこっちにドキュメントが散らばってて、 しかも、翻訳も無かったりして、初心者にはきついと思う。
- 198 名前:nobodyさん mailto:sage [2007/09/30(日) 23:01:50 ID:???]
- コーディングではないけれどPerl関連(Windows関連?)ということでお願いします。
PerlのパスをUNIX風に設定しておくことってできますか?(usr/bin/perl) 今は5.8なんですが、前に5.6の頃、実際のパスがc:\perlだとしても この書き方(パス)で動いてた気がするんだけど・・・
- 199 名前:nobodyさん mailto:sage [2007/10/01(月) 00:24:00 ID:???]
- 5.8でも動く件
- 200 名前:198 mailto:sage [2007/10/01(月) 01:04:55 ID:???]
- >>199
すんません、ブラウザでCGIとして起動した場合はどうですか? 関連に気づかなくて書かなかったんですが、 こちらでもプロンプトでは動くんだけど、ブラウザではアウトです。
- 201 名前:nobodyさん mailto:sage [2007/10/01(月) 01:27:53 ID:???]
- 普通にpath通せばいいんじゃね?
- 202 名前:nobodyさん mailto:sage [2007/10/01(月) 02:12:06 ID:???]
- それはPerlじゃなく各々のhttpdの管轄
なので他の適切なスレを当たって下さい
- 203 名前:198 mailto:sage [2007/10/01(月) 02:14:31 ID:???]
- >>201
ありトゥース!・・・が、しかし。。 恥をしのんでお尋ねしますが、パス通すって・・? Windowsの環境変数にusr/bin/perlを追記するってことではないですよね。 い、いかように・・・
- 204 名前:nobodyさん mailto:sage [2007/10/01(月) 07:19:52 ID:???]
- 関連付けでおk。
- 205 名前:nobodyさん [2007/10/01(月) 09:49:39 ID:4GodVsb7]
- >>180
レス遅くなってすみません。 JcodeやめてEnocdeで対応させました。 perlのバージョンは5.8、Jcodeは最初サーバーには入っていなかったので 自前で自分のディレクトリにインストールして使ってました。 それで問題なかったのですが最近サーバの方が用意してくれたらしく そっちを読み込むようになってました。 そのサーバにインストールされた新しいJcodeで問題が発生していたと言う次第でした。 しかし新しいJcodeはなんであんなとんでもないバグを持ってるんだろうか。 UTF-8変換できなきゃJCodeの存在意義が無くなるのに。
- 206 名前:nobodyさん mailto:sage [2007/10/01(月) 10:32:27 ID:???]
- >>203
環境変数にperl.exeのパスを通せばいい。 もしくは出来るならhttpdの方で指定するとか。
- 207 名前:nobodyさん mailto:sage [2007/10/02(火) 00:21:38 ID:???]
- >>203
かなり無理やりな解決方法。 C:\直下にusrを作って、そこへC:\Perl\bin\(Enter連打でinstした場合)をフォルダごとコピー。 でC:\Perl\lib\とC:\Perl\site\もフォルダごとコピー。 これでC:\usr\直下に、binとlibとsiteができる。 それでcgiファイルの頭に #!/usr/bin/perlでOK。 でも、ppmや、自前でモジュールインストールする度に、本来のC:\Perl\以下よりlibやsiteをコピー しなければならないし、UpgradeやUninstallの時も当然ながら消してはくれません。 普通の人にはお勧めできない。 実を言うと、C:\直下にusrやtmpやvarなんかを作ってると、perlスクリプトの中からフルパスで /var/tmp/〜とかやってファイル操作したりするのに、Unix環境といちいち書き換えなくて済むっちゅう 横着ができたりします。
- 208 名前:nobodyさん mailto:sage [2007/10/02(火) 00:40:37 ID:???]
- activeperlで>207の方法をやるなら、perldoc reloc_perlを見ると幸せになれるかもしれない。
- 209 名前:nobodyさん mailto:sage [2007/10/02(火) 01:54:23 ID:???]
- 質問です。
LWP::UserAgentとCrypt::SSLeayを利用して、SSLでサーバと通信を行っています。 相手先の証明書が、期限切れなど信頼できない場合は、以降の処理を打ち切りたいのですが、 それを判別するにはどうすればよいですか?
- 210 名前:nobodyさん mailto:sage [2007/10/02(火) 02:05:01 ID:???]
- LWP::Protocol::httpsにヒントがあるかもね
- 211 名前:180 mailto:sage [2007/10/02(火) 02:34:16 ID:???]
- >>205
ん、別に少し間が開いたくらいは気にせんからいいよ。 ただ、サーバー管理者が入れたのがおかしいってのは変だね。 症状からすると、(わざわざ)pure perl のコードを選択したときのバグっぽいけど これって fix されたんじゃなかったっけか? それにPerl本体が 5.8なら Encodeを利用する形でJcodeは入るはずだしなあ。
- 212 名前:nobodyさん [2007/10/02(火) 06:25:36 ID:SbhRpQr+]
- レン鯖に特定のモジュールがインスコされてるかどうか
テストするのに良い方法はないでしょうか?
- 213 名前:nobodyさん mailto:sage [2007/10/02(火) 07:23:13 ID:???]
- @INCを総当たり
- 214 名前:nobodyさん mailto:sage [2007/10/02(火) 08:34:43 ID:???]
- >>211
原因を特定できないのなら黙っておけ。
- 215 名前:nobodyさん mailto:sage [2007/10/02(火) 09:25:29 ID:???]
- >>212
実際に use して調べるのが一番確実。 #!/usr/bin/perl -w use strict qw(subs vars); my $token = qr/[A-Z_a-z][0-9A-Z_a-z]*/; my $module = ($ARGV[0] || '') =~ /^($token(?:::$token)*)\z/ ? $1 : ''; my $result = $module ? eval "use $module" : 'usage: .../this.cgi?Module::Name'; $result ||= $@ || qq/$module ${"${module}::VERSION"}/; print "Content-Type: text/plain\n\n$result"; __END__
- 216 名前:nobodyさん mailto:sage [2007/10/02(火) 09:39:01 ID:???]
- もう少し可読性を高める努力をしろよ。
- 217 名前:nobodyさん mailto:sage [2007/10/02(火) 10:20:20 ID:???]
- >>207
インストールしなおしでその構成になるようにしたほうがいいんじゃ・・・
- 218 名前:nobodyさん mailto:sage [2007/10/02(火) 17:33:08 ID:???]
- $^Oが取り得る値のリストってどこかにない?
- 219 名前:nobodyさん mailto:sage [2007/10/02(火) 19:19:35 ID:???]
- >>218
search.cpan.org/~nwclark/perl-5.8.8/pod/perlport.pod#PLATFORMS
- 220 名前:nobodyさん mailto:sage [2007/10/02(火) 20:12:26 ID:???]
- >>215
コードまで書いていただいてありがとうございました。 use <モジュール名> をevalして戻り値を確かめるわけですね。 どうもevalは使うのに躊躇してしまうんですが、こういうときは便利ですね。 >>213 @INCの中を覗くという発想も考えたことがなかったので やってみたいと思います。
- 221 名前:nobodyさん [2007/10/02(火) 21:03:46 ID:2QBdgnfp]
- 日本語変換の問題について質問です。
コードをEUCで書いて、出力をShift_JISで行うのが目的です。 今はjcode.pl使っています。 activeperlのwinxp用でローカルチェックをしています。 JCODEというモジュールもあるそうですが、activeperlには初期状態でなかったりしますよね。 確か自分は入れた覚えもあるのですが。 オススメは何ですか? 確か他にも変換用のモジュール?はあったと思いますが。 euc,shift_jis,jisの3つだけでのオススメが知りたいです。
- 222 名前:nobodyさん mailto:sage [2007/10/02(火) 21:47:16 ID:???]
- >>221
万能解は無いので、Encode / Jcode / jcode.pl / Unicode::Japanese を 一通り使い込んでから、好みと用途に合ったものをお選びなさいな。
- 223 名前:nobodyさん mailto:sage [2007/10/02(火) 23:24:50 ID:???]
- いまさらjcode.pl薦めるなよ。
- 224 名前:221 [2007/10/02(火) 23:41:50 ID:2QBdgnfp]
- jcode.plを除いて一番汎用的に使えるのはどれですか?
汎用的って言っても、サーバーやローカル環境で一番広く使えるものです。 一番広まってるモジュールといえばいいのですかね。
- 225 名前:nobodyさん mailto:ge [2007/10/03(水) 00:23:34 ID:???]
- リストをリストのままリストの個数を得るにはどうすればいいですか?
(1,2,3,4,5) これを配列にいれずにってことです。 grepとかでもリストが作られますよね。 そういうときにわざわざ配列に入れてから要素数を知るのが面倒です。 scalar(@{[grep{$_>0}]}) っていうのも同じくなんかなぁと思います。 普通にないなら関数作ろうと思うのですが。
- 226 名前:nobodyさん mailto:sage [2007/10/03(水) 00:41:53 ID:???]
- scalar(@{[1,2,3,4,5]})
- 227 名前:nobodyさん mailto:sage [2007/10/03(水) 00:41:53 ID:???]
- はあ
- 228 名前:nobodyさん mailto:sage [2007/10/03(水) 01:16:44 ID:???]
- システムに依存する組み込み関数が使用できるかどうか
手っ取り早く調べる方法ってなにかな?
- 229 名前:nobodyさん mailto:sage [2007/10/03(水) 01:49:55 ID:???]
- >>224
インスコしてなかったら自分で読み込むようにすればいいよ。 use libつかうなり同階層に置いてuseするなり。
- 230 名前:nobodyさん mailto:sage [2007/10/03(水) 01:58:30 ID:???]
- >>224
Perl 5.8.x なら標準モジュールの Encode が一番広まっていると言えば 広まっている。 >>225 リストコンストラクタが幾つの要素を吐くかは、吐かせてみないと 分からない。吐かせた結果を保存しないのなら、目の前を流れていく 個数を数えるしかない。 sub count { scalar @_ } $num = count((1) x rand 10); $num = scalar @{[ (1) x rand 10 ]}; $num = 0; ++$num for (1) x rand 10; >>228 search.cpan.org/~nwclark/perl-5.8.8/pod/perlport.pod#FUNCTION_IMPLEMENTATIONS に目を通した上で eval 内で実際に使用して確認。
|

|