Perlについての質問箱 32箱目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Perlについての質問箱 32箱目
2デフォルトの名無しさん:2007/08/13(月) 18:12:17
3
3デフォルトの名無しさん:2007/08/13(月) 18:17:12
難しい質問は「荒らし」とみなしてスルーします。
4デフォルトの名無しさん:2007/08/13(月) 18:23:48
>>1
5デフォルトの名無しさん:2007/08/13(月) 18:28:50
テンプレ省略?
6デフォルトの名無しさん:2007/08/13(月) 18:35:05

テンプレ

1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
7デフォルトの名無しさん:2007/08/13(月) 18:39:15
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc11.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

http://www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 30箱目
http://pc11.2ch.net/test/read.cgi/tech/1181500187/

リンク集は>>8-10あたり
過去スレは>>11あたり
8デフォルトの名無しさん:2007/08/13(月) 18:40:02
[プログラミング自体の経験が無い奴はまずココを読め]
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/
9デフォルトの名無しさん:2007/08/13(月) 18:40:42
10デフォルトの名無しさん:2007/08/13(月) 18:41:36
[過去スレ]
1 ttp://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 ttp://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 ttp://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 ttp://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 ttp://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 ttp://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 ttp://pc2.2ch.net/test/read.cgi/tech/1068051036/
8 ttp://pc2.2ch.net/test/read.cgi/tech/1074151549/
9 ttp://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 ttp://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 ttp://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 ttp://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 ttp://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 ttp://pc8.2ch.net/test/read.cgi/tech/1131286411/
21 ttp://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 ttp://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 ttp://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 ttp://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 ttp://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 ttp://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 ttp://pc11.2ch.net/test/read.cgi/tech/1173880452/
31 ttp://pc11.2ch.net/test/read.cgi/tech/1181500187/
11デフォルトの名無しさん:2007/08/13(月) 18:43:09
>>7
-Perlについての質問箱 30箱目
+Perlについての質問箱 31箱目
-リンク集は>>8-10あたり
+リンク集は>>8-9
-過去スレは>>11あたり
+過去スレは>>10あたり

ここまで
12デフォルトの名無しさん:2007/08/13(月) 19:31:13

+

1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
13デフォルトの名無しさん:2007/08/13(月) 19:40:53
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

ここまでテンプレ
14デフォルトの名無しさん:2007/08/13(月) 19:42:34
あまりしつこいと荒らしにしか見えんな
15デフォルトの名無しさん:2007/08/13(月) 19:51:45
そのうち自演を始めますよ
16デフォルトの名無しさん:2007/08/13(月) 20:17:38
は     自
じ      演



17デフォルトの名無しさん:2007/08/14(火) 01:59:17
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
6. こぼれるほどの笑顔
18デフォルトの名無しさん:2007/08/14(火) 02:39:53
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

それが初心者さ。質問スレに質問して、いったい何が悪いわけ?

自分で読む、自分で調べる、自分で試す、自分で理解する、自分でヤル!
それができれば、たいてい自分で解決してるよ。
そんなヤツが、質問スレに質問すると思うか?

質問されて、答えそのものをズバリ教えちゃうのも問題ありだな。
google の使い方を教えてあげるとか、そういう方法が、質問者にとってもスレにとっても健全な方向に
行き着くと思うな。

あと、質問に答えたくないのにわざわざしゃしゃり出てきて「自分で調べろ」だの何だの言うヤツって
いったい何?結局、そういうヤツって、難しい質問をして欲しくってウズウズしてるだけなんだろ?
ソレって、単なる「構ってクン」じゃないか。質問に答えたくないならスルーしろよ。なぜそれが出来ない?

次にスレを建てるときは、初心者用・中級者用・上級者用にわけるといいね。
そうすれば、初心者の質問を見たくないヤツは見ずに済むからね。

でも多分、わざわざ初心者スレにやってきて、相変わらず「自分で調べろ」って罵倒するバカが必ず現れるよ。
ぜったいに現れる。100ペソ賭けてもいい。
19デフォルトの名無しさん:2007/08/14(火) 02:42:52
そのくせ、難しくて誰も答えられ無いような質問が来ると、「荒らしはスルー」と言って逃げるw
20デフォルトの名無しさん:2007/08/14(火) 05:46:01
荒らし=自分では答えられないような、
      考えたこともないような難しい質問
21デフォルトの名無しさん:2007/08/14(火) 05:56:10
変数名に日本語使うのって
perlの文法的に正しいのか?
教科書みたら英数字しか使えないって書いてあるぞ?
22デフォルトの名無しさん:2007/08/14(火) 06:14:28
http://www.tufs.ac.jp/ts/personal/motizuki/lecture/resource/perl01.html

文字列の比較演算子
演算子 使用例 式の意味 $a="山", $b="川"の場合の演算結果
eq $a eq $b $aと$bは等しい true
ne $a ne $b $aと$bは等しくない false

これ間違ってるよな?
23デフォルトの名無しさん:2007/08/14(火) 06:43:31
日本語文字体系の→(右矢印)があって、
これをUS-aschiiiで見たら
''
こんな風に文字化けしていたので
右矢印を1バイト文字に翻訳したいんだけど、
どうすればいいのかな?
24デフォルトの名無しさん:2007/08/14(火) 06:56:33
->
25デフォルトの名無しさん:2007/08/14(火) 11:42:15
>>21
どこの教科書だ?いつの時代の教科書だ?
出版社、書名、発行年月日を晒してミロやw
26デフォルトの名無しさん:2007/08/14(火) 12:03:17
>>21
use utf8などをすれば、文法的には正しい。
ttp://www.rwds.net/kuroita/program/Perl_unicode.html#encoding
>>22
間違いだな。それ以前に、$aと$bを使うのは避けるべき。
>>23
US-ASCIIに右矢印はない。utf-8などを使えば表示できるが、1バイトにはならない。
27デフォルトの名無しさん:2007/08/14(火) 14:04:50
>>18
低レベルな質問はWebProg板で。
現在も住み分けは出来ているかと思われます。

>>19
質問に答えて貰えなくて悔しかったですか?
難しいのではなく、 >>6 の通りで皆呆れてるのです。
まず、自分の言動に問題は無かったか見直してみましょう。

>>20
過去の例から言って、誰かしらか答えてくれる人間は必ず現れます。
その人間にも相手にされなかったのなら、やはり御自身の行動を見直すべきでしょう。
人のせいばかりにせず、大人として責任を持って発言をしましょう。
28デフォルトの名無しさん:2007/08/14(火) 14:36:44
>>24
ゲームのCGIなんで、プレイヤーごとのランキングがあるんですよ。

山田さんは前回は5位でしたが、
今回は順位が上昇して3位になりました↑

とか、
田中さんは前回は2位でしたが、
今回は順位が下降して8位になりました↓

とか

鈴木さんは前回は4位で今回も4位でした→

とか、
順位の移動を表\すのに右矢印、上矢印、下矢印の
記号を2バイト文字の日本語としてつかっちゃってて、
これをアメ公の環境、すなわちUS-asciiとかでみると
当然文字化けしてしまうので、これをなんらかの1バイト文字に
変更しなければならないのですが、どうしましょうかね?
29デフォルトの名無しさん:2007/08/14(火) 14:48:33
WebProg向きの質問だと思うけどね。

'UP' 'DOWN' にするか、画像にすれば?
30デフォルトの名無しさん:2007/08/14(火) 14:52:38
HTMLで出してんなら↑とか↓でいんじゃねーの。
3130:2007/08/14(火) 14:54:13
うを、実体参照効くのか。
んじゃ ↑ と &darr でいいのかな。
32デフォルトの名無しさん:2007/08/14(火) 14:55:34
日本語が扱えない言語には、
日本語が理解できない人間が集まる。


このスレの事ですよ〜〜〜〜w
33デフォルトの名無しさん:2007/08/14(火) 15:53:46
くやしいのうwwwwwwくやしいのうwwwwww
34デフォルトの名無しさん:2007/08/14(火) 15:54:42
>>15
そのとおりになった
35デフォルトの名無しさん:2007/08/14(火) 16:07:43
典型的な構ってクン
36デフォルトの名無しさん:2007/08/14(火) 17:10:52
Perlを勉強中ですが、
正規表現は飛ばして勉強していいでしょうか?

めんどくさくて、、、

それとも、こういう使い方があるから、ここだけは押さえておけ、というポイントのようなものはありますか?
37デフォルトの名無しさん:2007/08/14(火) 17:19:52
>>36
> Perlを勉強中ですが、
> 正規表現は飛ばして勉強していいでしょうか?

いいよ
38デフォルトの名無しさん:2007/08/14(火) 17:21:47
>>36
> Perlを勉強中ですが、
> 正規表現は飛ばして勉強していいでしょうか?

よくないよ
39デフォルトの名無しさん:2007/08/14(火) 17:34:14
らき☆すたを見たいんですが、
柊かがみが気に入らないのでかがみんの出るシーンは
飛ばして見ていいでしょうか?
みたいなもんだな。
40デフォルトの名無しさん:2007/08/14(火) 18:26:33
正規表現使ってこその Perl だと思うんだがね。
41デフォルトの名無しさん:2007/08/14(火) 18:33:49
>>40

確かに、Perlは強力な正規表現が特徴、とか言われてるけど、どういう場面で使うことになるのか、見当がつかなくてね
42デフォルトの名無しさん:2007/08/14(火) 18:47:13
>>41
壁に当たるまでその道を行きなさい
43デフォルトの名無しさん:2007/08/14(火) 19:25:38
ちょっと正規表現触ってみた

でも、うまくいかない。初心者レスになるがすまん。
これ↓なんだが、使い方がが間違ってるか?

#! /usr/bin/perl
#match.pl

$string =<<EOT
>>042
俺は正規表現が分からない。
EOT
;

print "引用番号: $&" if ($string =~ />>[0-9][0-9][0-9]/);
44デフォルトの名無しさん:2007/08/14(火) 20:34:28
オレの環境ではそれをコピペして普通に動いたが?
何がどう動かないのか書いてくれ。

あと、動かないことと直接は関係ないけど
$& , $' , $` はなるだけ使わない習慣を付けておいた方が良いと思うよ。
45デフォルトの名無しさん:2007/08/14(火) 20:42:28
\d+
46デフォルトの名無しさん:2007/08/15(水) 00:30:38
>>44

そうか、今使ってるiBookのターミナルはUNIX始めたばっかの頃に弄りまくってたから変なのかもしれない

さっきのプログラムも、何も出力されずに終わってしまうから

あとで、別ので試してみる。
47デフォルトの名無しさん:2007/08/15(水) 01:09:18
>>29
「解決策その1」
up downにする、ってのは
自分でも思いつきました。
でも日本語版では視覚的に
一目見てわかるように設計されていたものが
多言語に移動したら説明的になってしまった、
というのはちょっとくやしくて。

「解決策その2」
画像も自分で思いつきました。でも
画像を作って、サイズを合わせて加工して
画像を表示するようにコードを書き換えて、
というのがめんどいなと。

>>30-31
実体参照、すごいですね
まったく思いつきませんでした、
アメ公の環境でもちゃんと表示されるのかな?
&と;セミコロンの表示の問題は
¥エスケープすればノープロブレム?
あなたはすごいので、次からも教えてもらえませんか?
48デフォルトの名無しさん:2007/08/15(水) 02:19:23
今日、教科書を読んでいたら
「perlはスクリプト言語なので
他人の書いたスクリプトが読める」
という記述があったのですが、
他人が運営している、
CGIのソースは通常、
見れないですよね?
49デフォルトの名無しさん:2007/08/15(水) 02:27:40
>>48
定型の設定がされてれば見えない。
しかしあなたの質問は、教科書の”読める”と全く別の外した質問をしている。
50デフォルトの名無しさん:2007/08/15(水) 02:51:03
http://kazato.run.buttobi.net/cgi-bin/upload/src/viprpg_tktk0321.png
$rankupdown=$rankupdown==0 ? "→": $rankupdown<0 ? "↓".(-$rankupdown) : "↑".$rankupdown;
今、ソースがこのような状態なのですが、この中の、
"ダブルクオーテーションで囲まれた、→2バイト文字の右矢印を、
実体参照を用いた、&rarr;に変更しようとおもいます。

ぱっとみでやばそうなところは、
&アンパサンドと、;、セミコロンの2つですが、
これらはダブルクオーテーションの中で使うなら、
おそらく¥バックスラッシュを使ってエスケープすれば
いいんだとおもいます。

でも本当にそれでいいのかよくわからんし、
確認するにも本を45冊ほど読まねばならないしで、
もう一つの選択肢である、’シングルクオーテーションではさむ、
という方法を使いたいと思います。

なぜなら、’シングルクオーテーションならば、
はさまれた間にかかれたものは解釈されない?
でそのまんま出力されると教科書に書いてあるので
そっちのほうが実体参照を使うときには適していると
思ったからです。

なので変更後のソースは
$rankupdown=$rankupdown==0 ? '&rarr;' $rankupdown<0 ? "↓".(-$rankupdown) : "↑".$rankupdown;
等となりますが、この考え方であってますでしょうか?

ちなみに実体参照をちゃんと表示させるために
この書き込みは&と;を全角で打ってます
51デフォルトの名無しさん:2007/08/15(水) 07:21:10
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

>>50は荒らしなので以後スルーします。
52デフォルトの名無しさん:2007/08/15(水) 08:12:43
なんだまたこいつか…無視しろ。
何で自分で試さないのか。
53デフォルトの名無しさん:2007/08/15(水) 10:39:57
>>46
perl -e 'print qq/$&/ if q/>>043/ =~ m/>>[0-9][0-9][0-9]/;'

perl -e 'print qq/$&\n/ if q/>>043/ =~ m/>>[0-9][0-9][0-9]/;'
を比較してみるのも一興かと。
54デフォルトの名無しさん:2007/08/15(水) 13:43:39
やっぱり、iBookのターミナルがいかれてたみたい

iMacじゃ、普通に動いたわ

あと、$&は使わない方が良いんだね。教えてくれてありがとう。そんなこと本には書いてないからな〜
55デフォルトの名無しさん:2007/08/15(水) 16:42:35
聞き忘れていたことがあった。
正規表現で、マッチ文字列、その前、後の文字列は、$&とかじゃなかったら、何で取り出せばいいの?

ググったが見つからなかった。
56デフォルトの名無しさん:2007/08/15(水) 18:18:36
>>55
つ perldoc perlre

そういったものが本当に必要なら、迷わず $` $& $' を使うのも正しい選択。
あるいは、正規表現で m/^(.*?)(パターン)(.*)$/ 等を使う選択もある。
あまり良い方法とは思えないが、split /パターン/,$str,2; でも可能。
# ($pre,$post) = split /パターン/,$str,2;
# $match = substr($var,length($pre),-length($post));
一応、 ($pre,$match,$post) = split /(パターン)/,$str,2; でも動くが、
split のパターン中でキャプチャーさせるのが仕様的に正しいかどうかは未確認。
57デフォルトの名無しさん:2007/08/15(水) 18:31:58
perlreやgoogleで調べてはみたのですが
$& , $' , $` はなるだけ使わない習慣を付けておいた方が良い理由が
わかりませんでした。
58デフォルトの名無しさん:2007/08/15(水) 18:33:37
>>56
>一応、 ($pre,$match,$post) = split /(パターン)/,$str,2; でも動くが、
仕様的に正しいよ。perldoc -f split にきちんと解説がある。
59デフォルトの名無しさん:2007/08/15(水) 18:43:13
>>56,58

ありがとう。正規表現始めたばっかりの俺には、何をやってるのかまだよく分からないが、メモっとくよ。
分かるようになった頃に見直してみる。
60デフォルトの名無しさん:2007/08/15(水) 18:47:14
>>57
俺も全然わからん
$1とか使うぐらいならリストにキャプチャしろってんならまだ分かるが
m//gでiterativeに検索するような場合には
リストコンテキストにするわけにはいかんし
61デフォルトの名無しさん:2007/08/15(水) 18:53:20
>>57
> perlreやgoogleで調べてはみたのですが
> $& , $' , $` はなるだけ使わない習慣を付けておいた方が良い理由が
> わかりませんでした。

see perlvar
62デフォルトの名無しさん:2007/08/15(水) 18:55:22
なんだもしかしてuse Englishしろってだけの話か?
どうでもいいな
63デフォルトの名無しさん:2007/08/15(水) 19:37:42
perldoc perlvarしたんですが$& , $' , $`が非推奨な理由がよくわかりませんでした。
むしろ使わないほうがいいようにもみえるのですが気のせいでしょうか?
> Due to an unfortunate accident of Perl's implementation, "use English"
> imposes a considerable performance penalty on all regular expression
> matches in a program, regardless of whether they occur in the scope of
> "use English".
64デフォルトの名無しさん:2007/08/15(水) 20:04:14
正規表現面白い!!

URLをマッチさせるにはこんな感じだね
/http(¥w|¥.|¥/|:|?|&|%)+/
65デフォルトの名無しさん:2007/08/15(水) 20:06:07
>>64
あっ、エスケープしてなかった。
/http(¥w|¥.|¥/|:|¥?|¥&|¥%)+/
66デフォルトの名無しさん:2007/08/15(水) 20:13:23
>>57
もうちょっとよく読みなよ。
perlre も perlvar も $&検索したらすぐ理由書いてあるところみつかる。
http://www.google.com/search?q=perlre+%22Once+Perl+sees+that%22
http://www.google.com/search?q=perlvar+%22The+use+of+this+variable%22
67デフォルトの名無しさん:2007/08/15(水) 20:52:55
perlreみると
--
プログラム中にひとつでも$&, $`, $'があると
全てのパターンマッチでそれらを提供しないといけなくなるから
大幅に遅くなるかもしれません。
--
って感じですかね?

どの正規表現での$&, $`, $'を取りたいのか実行してみるまでわからないから
全正規表現で提供する必要がでてきちゃうんですね。
localとかmyで範囲の指定できて最適化されればいいのにね。
68デフォルトの名無しさん:2007/08/15(水) 21:10:39
>>43,55
なんか、誰かさんと違って、感じが良くて教え甲斐のありそうなヤツだな。

オレだったらこう書く
print "引用番号: $1" if ($string =~ /(>>[0-9][0-9][0-9])/);

それ以外にも、
$string =~ /^(.*)(>>[0-9][0-9][0-9])(.*)$/);
と()で囲めば $` $& $' のかわりに $1,$2,$3 を使える。
オレは必要だと思ったらとにかく()で囲む。
他の人がどうだかは知らないけど。
69デフォルトの名無しさん:2007/08/15(水) 21:40:41
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
my $string = q(
>>068
親切な人だと思うけど$1と$3に値が入りません。
ちなみにCentOS 4.5標準のperl 5.8.5です。
);
printf "%s='%s'\n",'string',$string;
if( $string =~ /^(.*)(>>[0-9][0-9][0-9])(.*)$/m ){
printf "%d='%s'\n-----\n",1,$1;#空
printf "%d='%s'\n-----\n",2,$2;#>>068
printf "%d='%s'\n-----\n",3,$3;#空
printf "%s='%s'\n-----\n",'$`',$`;#改行
printf "%s='%s'\n-----\n",'$&',$&;#>>068
printf "%s='%s'\n-----\n",'$\'',$';#残りの部分
}
7068:2007/08/15(水) 22:10:32
>69
ドット「.」は改行文字にはマッチしないので、文字列中に改行があって、ドット「.」
でマッチさせたかったら $string=~//s  を使う。

ちょっと甘やかし気味かもしれんが、すぐに自分で実践する態度がよいので
答えてあげたくなってしまう。
71デフォルトの名無しさん:2007/08/15(水) 22:17:42
use strict;
use warnings;
use utf8;
ときちんと書いてて、q() でクォートしてる。
初心者とは思えないぐらい立派な心がけだ。

でも次からはuse strict とかは省略して、必要な部分だけでいいよ。
72デフォルトの名無しさん:2007/08/15(水) 22:29:04
ニヤニヤ
73デフォルトの名無しさん:2007/08/16(木) 03:38:36
ウチには生まれたばかりの赤ん坊がいるんだが
自分で歩こうとしないのでゴミ箱に捨ててやった
74デフォルトの名無しさん:2007/08/16(木) 03:52:31
>>73
本気で言ってるなら出頭しろ。
75デフォルトの名無しさん:2007/08/16(木) 03:53:16
>>67
5.6あたりで増えた特殊変数 @+ と @- を使えば、$&amp;, $`, $' に対応した
部分文字列を取れるよ。
んでペナルティもなし。
ただし substr使わんと部分文字列としては取得できんが。

76デフォルトの名無しさん:2007/08/16(木) 05:09:12
$ドルマークを
”ダブルクオーテーションまたは
’シングルクオーテーションで
はさまれた中でつかってもだいじょうぶ?

"$"
'$'
こんなかんじで。
77デフォルトの名無しさん:2007/08/16(木) 05:09:57
危険。つこたら死ぬで
78デフォルトの名無しさん:2007/08/16(木) 08:15:46
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

>>76は荒らしなので以後スルーします。
79デフォルトの名無しさん:2007/08/16(木) 09:54:18
以後、じゃなくて自然にスルー出来る様精進しよう。
80デフォルトの名無しさん:2007/08/16(木) 10:24:59
'$' -> OK
"$" -> Compile error
81デフォルトの名無しさん:2007/08/16(木) 11:06:45
昔、某コミュニティで、3箇月の間に同じ人物に
「あなたの書き込みは、以降無視します」と
20回以上言っていた人物が抽出され気味悪がられていたこと
がある。
82デフォルトの名無しさん:2007/08/16(木) 11:17:31
一度、推奨入門書を通読するのが、プログラミング言語を使えるようにするための
一番の近道だと思うよ。
83デフォルトの名無しさん:2007/08/16(木) 12:33:29
>>78

ヒントだけ示して、

1. 嫁
2. ググれ
3. 確認汁
4. 分かれよ
5. 自分でやれ

って答えてればいいんじゃない。
84デフォルトの名無しさん:2007/08/16(木) 12:39:38
自分の言葉で言えないような人は答えなくていいです^^


とか言い出すから触らないのが一番。
85デフォルトの名無しさん:2007/08/16(木) 12:41:48

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが…
3: こんなエラーが出て上手く行かなかった。

基本的にこの3つが揃ってないと"質問"でさえ無い。
8676:2007/08/16(木) 13:16:04
解決しました。 他の役立たずさんたちもありがとね。
87デフォルトの名無しさん:2007/08/16(木) 13:24:56
my $string = q(
大変勉強になりました。ありがとうございました。

>>70 もっときれいで効率の良い書き方がありそうな気もしますが無事処理できるようになりました。
>>71 ありがとうございます。でもbinmodeを忘れていてwarningがでてました(汗
>>75
今回の前と後ろをキャプチャーする方法のように正規表現が複雑になったり
オフセットが入っているだけなので取り出す処理が必要だったりと
正規表現全体の効率を落とすよりはよさそうですが
もっと自然に取れる方法があるといいなぁと思いました。
);
while( $string =~ /^(.*?)(>>(\d+))(.*)$/s ){
$string = $4;
printf "引用番号:%d\n",$3;
my($value,$next) = ( $string =~ /^(.*?)(?=>>\d+)(.*)$/s ) ? ($1,$2) : ($string,'');
$value =~ s/^(\r?\n|\s)//go; $value =~ s/(\r?\n|\s)$//go; $value =~ s/\r?\n/<br>/go;
printf "返信内容:'%s'\n",$value;
print "-----\n";
$string = $next;
}
88デフォルトの名無しさん:2007/08/16(木) 14:39:13
誰か>>87にグローバルマッチについて教えてやれよ、俺いやだけど
89デフォルトの名無しさん:2007/08/16(木) 15:16:15
#!perl -w
$string = '>>42
俺は正規表現が分からない。

>>1 本屋に逝けば腐るほど解説書が売ってるし、
ググればタダで勉強できるぞタコヤロウ!
';

while ((undef, $anchor, $string) = ($string =~ m/^(.*?)>>(\d+)(.*)$/s)) {
print "引用番号:",$anchor,"\n";
($value, $string) = ($string =~ m/^(.*?)(>>\d+.*)$/s) ? ($1,$2) : ($string, '');
$value =~ s/^\s+//;
$value =~ s/\s+$//;
$value =~ s/\r?\n/<br>/g;
printf "返信内容:'%s'\n",$value;
print "-----\n";
}

2ちゃんねるでカキコミすると、ソースコードの字下げが全部無効になるから見づらいよな。
2ちゃんねるはプログラミングの話題には向かないよね。
90デフォルトの名無しさん:2007/08/16(木) 15:21:37
&#32;
91デフォルトの名無しさん:2007/08/16(木) 15:21:44
while ((undef, $anchor, $string) = ($string =~ m/^(.*?)>>(\d+)(.*)$/s)) {
($value, $string) = ($string =~ m/^(.*?)(>>\d+.*)$/s) ? ($1,$2) : ($string, '');
$value =~ s/^\s+//;
$value =~ s/\s+$//;
$value =~ s/\r?\n/<br>/g;
print "引用番号:",$anchor,"\n";
print "返信内容:'",$value,"'\n";
print "-----\n";
}

おっと、print 文を1箇所にまとめたほうが美しいかな。
92デフォルトの名無しさん:2007/08/16(木) 17:23:38
プギャー
93デフォルトの名無しさん:2007/08/16(木) 17:37:25
今、勉強中なのですがわからないので教えてください。
7桁の数字(日付)20070816を2007/08/16のようにスラッシュで区切って
表示する方法がわかりません。どうかご教授下さい。
94デフォルトの名無しさん:2007/08/16(木) 17:52:09
明らかな宿題には超トリッキーなコードで答えてあげるのが優しさだと思うんだ
95デフォルトの名無しさん:2007/08/16(木) 18:16:42
> 7桁の数字(日付)20070816を
それはおかしい
96デフォルトの名無しさん:2007/08/16(木) 18:19:28
> 7桁の数字(日付)20070816を
8桁でした…
97デフォルトの名無しさん:2007/08/16(木) 19:33:40
>>93

#!/usr/bin/perl

use Time::Local;

$date = "20070816";

$ut = timelocal(0x0, 0x0, 0x0,
int(substr($date, 6e0, 0_2)),
int(substr($date, 4e0, 0_2) - 0001),
int(substr($date, 0e0, 0_4)) - 0x76c);
@lt = localtime $ut;
for (0..2) { pop @lt }
syswrite(STDOUT, sprintf("%04d/%02d/%02d",
pop(@lt) + 03554, pop(@lt) + 1, pop @lt));
98デフォルトの名無しさん:2007/08/16(木) 19:43:55

#!/usr/bin/perl

$date = "20070816";

use Time::Local;
$ut = timelocal(0x0, 0x0, 0x0,
abs int(substr($date, 6e0, 0_2)),
abs int(substr($date, 4e0, 0_2) - 0001),
abs int(substr($date, 0e0, 0_4)) - 0x76c);
@lt = localtime $ut; for (0..2) { pop @lt }
syswrite(STDOUT, sprintf(qq$%04d\x2f%02d\x2f%02d$,
pop(@lt) + 03554, pop(@lt) + 1, pop @lt));
__END__
99デフォルトの名無しさん:2007/08/16(木) 20:18:32
$date = "20070816";
printf "%s/%s/%s", $date =~ /(\d{4})(\d{2})(\d{2})/;
100デフォルトの名無しさん:2007/08/16(木) 20:27:37
イマイチ。

#!/usr/bin/perl
tie my @array,"Fuga::Fuga";
tie my %hash,"Fuga::Fuga";
print "$array[20070816]\n";
print "$hash{20070830}\n";

{
package Fuga::Fuga;
sub TIEARRAY { my $dummy; bless \$dummy,$_[0]; }
sub TIEHASH { my $dummy; bless \$dummy,$_[0]; }
sub FETCH { local($",undef,$a)=('/',@_);"@{[unpack 'A4A2A2',substr('0'x8 .$a,-8)]}" }
sub STORE { undef }
sub DELETE { undef }
sub CLEAR { undef }
sub EXISTS { 1 }
sub FIRSTKEY { $$_[0] = 0 }
sub NEXTKEY { $$_[0]<99999999 ? ++$$_[0] : undef }
sub STORESIZE { $$_[0]=$_[1];}
sub FETCHSIZE { $$_[0]; }
}
101デフォルトの名無しさん:2007/08/16(木) 20:28:13
print join('/', unpack('A4A2A2', '20070816')), "\n";
102デフォルトの名無しさん:2007/08/16(木) 20:30:51
皆大人気ないな・・・

#!/usr/bin/perl
use strict;
use warnings;
use Tie::Scalar;
use Carp;
use base qw(Tie::StdScalar);
use Attribute::Handlers autotie => { 'UNIVERSAL::date' => __PACKAGE__ };
sub STORE {defined $_[1] && $_[1] =~ /(\d{4})(\d{2})(\d{2})/ && $_[0]->SUPER::STORE("$1/$2/$3") || croak("format error:'$_[1]'");}
print (my $date :date = '20070811');
1;
103デフォルトの名無しさん:2007/08/16(木) 20:47:43
おかげさまで解決しました。
ありがとうございました。
いろいろやり方があるんですね。
104デフォルトの名無しさん:2007/08/16(木) 21:07:37
function Akiba(Maid){Akiba(Maid);}
105デフォルトの名無しさん:2007/08/17(金) 01:08:57
正規表現勉強して、URLにmatchさせる方法が分かった

そこで、正規表現のURLマッチとsystem関数でcurlコマンドの実行を組み合わせて、URLリストの画像URLを片っ端からダウンロードして行くプログラムが作れた。

初めての実用的なPerlプログラムだったけど、さくさくダウンロードしてくれて、かなり感動した。

この感動が、良いプログラムを作ろう!っていう原動力になるんだろうなぁ。
106デフォルトの名無しさん:2007/08/17(金) 01:53:39
次は LWP::Simple 辺りでサクっと作ろう
107デフォルトの名無しさん:2007/08/17(金) 02:13:52
>>106

そういう、モジュールの使い方って、みんなはどこで勉強してるの?

やっぱりCPAN?
108デフォルトの名無しさん:2007/08/17(金) 06:27:51
>>80
まじで?
じゃあ、'シングルクオーテーション
でくくれば、¥エスケープしなくていいんだ?
109デフォルトの名無しさん:2007/08/17(金) 09:55:59
template-toolkitでテンプレートコンパイル済みの値をファイル以外から扱えないでしょうか。
イメージとしては下記のような感じです。

my $template = Template->new();
my $compiled_tt2 = $template->compile('sample.tt2'); # ファイル:sample.tt2をコンパイルした内容を変数$compiled_tt2へ格納
print $template->process($compiled_tt2); # $compiled_tt2から出力を生成
110デフォルトの名無しさん:2007/08/17(金) 14:15:03
フォルダにあるファイルを一つずつ名前をチェックして移動するって言うようなプログラムを作りたいんですけど、どのような関数orモジュールを使えばいいのでしょうか?

具体的には、名前が
20070817122431.jpg
のファイルを、フォルダ
元フォルダ
|_____2007
|____08

に移動させたいと言う感じです。
111デフォルトの名無しさん:2007/08/17(金) 14:16:10
ちょっと分かりにくかったので、
移動させたいフォルダは元フォルダのの中の2007フォルダの中の08フォルダです。
112デフォルトの名無しさん:2007/08/17(金) 14:32:54
>>110-111
まず日本語から勉強しましょう。
113デフォルトの名無しさん:2007/08/17(金) 14:50:42
>>110
そうやって、トイレのドアの開け方、しゃがみ方、ズボンの降ろし方、
発射の仕方、塵紙の取り方、拭き方、流し方、立ち上がり方を
いちいち訊く前に、関数のリストにざっと目を通して
それらの工具で何が作れるか考えてみろ。
114デフォルトの名無しさん:2007/08/17(金) 15:24:53
>>110

backtick演算子を使って解決しました。
115デフォルトの名無しさん:2007/08/17(金) 19:35:31
数値文字参照を使って記号を出力するとき、
10進と16進と、二つの選択肢があるが
どっちをえらべばいいんだ?
116デフォルトの名無しさん:2007/08/17(金) 20:48:52
>>.115
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
117デフォルトの名無しさん:2007/08/17(金) 23:33:54
デパートのトイレでンコするとき、
洋式と和式と、二つの選択肢があるが
どっちをえらべばいいんだ?
118デフォルトの名無しさん:2007/08/18(土) 00:08:35
日本人なら和式に決まってるだろ。
119デフォルトの名無しさん:2007/08/18(土) 00:18:07
エラートラップに無頓着すぎる。
耐え抜くとか便器使わないとか店員と会話しながらとか、ユーザが取り得る選択肢は山ほどある。
120デフォルトの名無しさん:2007/08/18(土) 02:22:35
Perlで、関数の引数にデフォルト値を設定できますか。
function f1($x=0, $y='foo') {
 ...
}
のような感じです。
121デフォルトの名無しさん:2007/08/18(土) 02:47:06
できます。
122デフォルトの名無しさん:2007/08/19(日) 02:05:25
>>109
なにをやりたいの?
そもそも、コンパイルしないときは、どうやって使ってたの?
123デフォルトの名無しさん:2007/08/19(日) 09:50:48
さくっとハッシュを連結する方法ってありませんか?
foreachで1つずつ代入してもいいんですが。


 %foo 中身は $foo{'hoge1'}、$foo{'hoge2'}
        +
 %bar 中身は $foo{'hoge3'}、$foo{'hoge4'}

        ↓

 %sum 中身は $sum{'hoge1'}〜$sum{'hoge4'}


こんな感じ。
キーが被った場合などは、どういう扱いでも構わないので。
124デフォルトの名無しさん:2007/08/19(日) 10:48:08
foreach がそんなに嫌いなら、こういう方法もあるぞ。

$foo{'hoge1'} = "うんこ";
$foo{'hoge2'} = "まんこ";
$bar{'hoge3'} = "おそそ";
$bar{'hoge4'} = "ぼぼ";

%sum = %foo;
$sum{$key} = $val while ($key,$val) = each %bar;

print "$key=[$val]\n" while ($key,$val) = each %sum;
125デフォルトの名無しさん:2007/08/19(日) 11:09:31
>>123
use strict;
my %foo = ('hoge1'=>1, 'hoge2'=>2);
my %bar = ('hoge3'=>3, 'hoge4'=>4);

my %sum = (%foo, %bar);
print join qq/\n/, map qq/$_ => $sum{$_}/ => keys %sum;

ハッシュはリストコンテキストで評価すると、
(Key=>Value)の順にならんだリストになるから、
単純にカンマで区切って連結できる。
126デフォルトの名無しさん:2007/08/19(日) 11:37:36
Perlで、関数の引数にデフォルト値を設定できますか。
function f1($x=0, $y='foo') {
 ...
}
のような感じです。
もしできるなら、そのやり方を教えてください。
今は
sub f1 {
 my ($x, $y) = @_;
 $y = 'foo' if $y == undef;
}
というかっこわるい書き方をしています。
127123:2007/08/19(日) 11:41:03
ありがとう。愛してる。
案外、算術演算子だけで実装できたとしたら何て謝ろうかとヒヤヒヤしてました。
128デフォルトの名無しさん:2007/08/19(日) 14:28:52
興味本位の質問ですが、100m って出力するのに

use strict;
my $i = 100;
print "$im";

だと$imがないと怒られるので

print "$i\m";
にするとOK
それじゃ、100n を文字列連結させないで、ダブルクォートで出力するのにはどうすればいいですか?
129デフォルトの名無しさん:2007/08/19(日) 14:45:41
>>128
${i}
130デフォルトの名無しさん:2007/08/19(日) 14:52:36
>>129
おぉーすごい。ありがとうございます。
perlってそういう裏技的な文法がいっぱいあるような気がするんですが
そういうのはどうやって調べたらいいんでしょうか?
131デフォルトの名無しさん:2007/08/19(日) 14:58:15
どこが裏技だよperldocに全部書いてあるわ
132デフォルトの名無しさん:2007/08/19(日) 15:07:28
perldocってのを見ればいいんですね。
133デフォルトの名無しさん:2007/08/19(日) 15:15:35
ちょっと質問からはズレるけど、sprintfでもいいかもね。
134デフォルトの名無しさん:2007/08/19(日) 18:05:45
素朴な疑問なんだが、perldocを読まずにどうやってPerlを学習したんだろう?
135デフォルトの名無しさん:2007/08/19(日) 18:18:01
そりゃいくらでもあるでしょ。 善し悪しは別として、とほほでもいいし。
136デフォルトの名無しさん:2007/08/19(日) 18:36:26
my %foo = ( hoge1 => 1, hoge2 => 2 );
my %bar = ( hoge3 => 3, hoge4 => 4 );

my %sum;
@sum{keys %foo} = values(%foo);
@sum{keys %bar} = values(%bar);

printf "%s=>%s\n", $_, $sum{$_} for keys %sum;

%foo に直接 %bar を追加したりもできる。

@foo{keys %bar} = values(%bar);
137デフォルトの名無しさん:2007/08/19(日) 19:45:23
>>134

138デフォルトの名無しさん:2007/08/19(日) 19:51:01
DBIについて質問です。

膨大な数のレコードを呼び出してwhile等のループで処理をしたいのですが

$sth = $dbh->prepare("select文");
$sth->execute();

とすると、スワップまで食いつぶされてしまいます。

ファイルでいうところの↓のような感じでメモリを消費せずに処理できる方法はないでしょうか?

foreach(<IN>){
 print;
}
139デフォルトの名無しさん:2007/08/19(日) 20:07:17
perldoc は英語なんだから、わかるわけないだろ! ヴォケが。
140デフォルトの名無しさん:2007/08/19(日) 20:17:45
ヘボ
141デフォルトの名無しさん:2007/08/19(日) 20:25:35
>>138
fetchしていないから、foreachに相当する部分の処理の前にいるわけだが。
142デフォルトの名無しさん:2007/08/19(日) 20:33:19
perldoc にしか書いてないようなことは裏技だろ普通
143デフォルトの名無しさん:2007/08/19(日) 20:39:12
いいえ
144デフォルトの名無しさん:2007/08/19(日) 21:26:19
>>138
LIMIT使って、少しずつループします。
SQLのLIMITを調べましょう。
145デフォルトの名無しさん:2007/08/19(日) 21:45:51
>>141>>144

レスありがとうございます。
limitの値を調整しながらループさせてみたところ
非常に効率が良くなりました。
とても助かりました!
146デフォルトの名無しさん:2007/08/20(月) 07:52:40
>>142
programming perl vol.1 62p. に記載されてる。
147デフォルトの名無しさん:2007/08/20(月) 08:27:05
質問

ランキングカウントが出なくなりました。
以前は
「山田さん、6回目の優勝、おめでとうございます!」
とかって出ていたのに、
「山田さん、回目の優勝、おめでとうございます!」
になりました。
原因がよくわかりません。
ソースを以下に貼り付けるので、よく読んで
回答してください。

http://kazato.run.buttobi.net/cgi-bin/upload/src/viprpg_tktk0338.png (png画像)

if(defined($DT[0]))
{
  #その時点でのトップの店のTOPカウンタを+1
  $DT[0]->{rankingcount}++;

  #優勝者発表
  my $DT=$DT[0];
  my $count=$DT->{rankingcount}==1 ? "first championship " : $DT->{rankingcount}." times championship ";
  my $msg="This term champion store is ".$DT->{shopname}.$count."congratulations.";
  WriteLog(1,0,0,$msg,1);

  $msg="point is ".$DT->{point};
  $msg.="and the gap from the second is ".($DT->{point}-$DT[1]->{point})."point" if defined($DT[1]);
  $msg.="";
  WriteLog(1,0,0,$msg,1);
}
148デフォルトの名無しさん:2007/08/20(月) 08:56:40
>>126
Perlにはデフォルト値を記述するような特別な書き方はない。
その方法でもいいと思うが。

スマートなのは、
sub f1 {
 my %opt = (x=>0, y=>"foo", @_);
}
などとやることかな。引数をhashで与えるという制約になるけど、キーを上書きしてしまわない限りは、最初に設定した値がそのまま生きる。
149109:2007/08/20(月) 09:09:07
>>122
伝え方が上手くないのですがtt2で引数に「COMPILE_DIR」を渡すと
テンプレートファイルをPerlコードに変換したファイルが生成され次回から高速になります。
恐らく通常は
1,テンプレートファイルをparseしてPerlコードに変換
2,Perlコードに変換したものをevalして実行
というプロセスで実行されていると思われ、TT2のキャッシュ機能は
Perlコードへ変換した結果をファイルにキャッシュすることにより
1を省き高速化が図れるというものです。
これらはファイルベースなら実現できるのですが
例えばPerlコードに変換した値をDBに保存し次回以降、
DBから取り出し高速に実行できないかと考えた次第です。
150デフォルトの名無しさん:2007/08/20(月) 09:27:42
>>126 って 0 や '' (空文字列) もデフォルト引数になるよね
undef かどうかを判定したいときは defined($y) にしないと
151デフォルトの名無しさん:2007/08/20(月) 09:34:46
デフォルト引数って &hoge(); とかやると $_ が入って来た様な記憶が…?
&hoge; で回避できるのかな? よく覚えてないや。
152デフォルトの名無しさん:2007/08/20(月) 09:50:44
質問です。
WriteLogというサブルーチンの使い方や意味が
わからないので、日本語で説明してもらえますか?
定義部分のソースは以下の通りです。
特に、main::WriteLogの部分がわかりません。
コロンコロンってなんですか?よくはてなのサービスに
ついてるような気がしますが。
あと、なんで引数が5つもあるのかが、わからん。
以下、ソース。
http://kazato.run.buttobi.net/cgi-bin/upload/src/viprpg_tktk0339.png (png画像)

######################################################################
# ★アイテム用下請関数:ログ書きこみ
# usage: WriteLog(重要度,対象店舗ID,メッセージ)
# 重要度 0==一般 1==重要
# 対象店舗ID 0==全店舗宛 店舗ID==プライベート
# メッセージ ログメッセージ
# return: 0 固定
######################################################################
sub WriteLog
{
  my($mode,$from,$msg)=@_;
  main::WriteLog($mode,$from,0,$msg,1);
  return 0;
}
153デフォルトの名無しさん:2007/08/20(月) 11:36:43
a=1;a=2;a=3
のような文字列があったとして、
1 2 3の部分を配列として取り出すにはどうすればいいですか
154デフォルトの名無しさん:2007/08/20(月) 11:46:10
gオプションでできました
155デフォルトの名無しさん:2007/08/20(月) 13:18:27
>147=152
・続きなら続きと書いてくれ。
・WebProg板っていうのがあるのは知ってる?
・画像を貼り付けている意味が微妙に分からない。
・コロンだかはてなだかの話って今ここに関係あるの?

で、>147に関しては、ログの読み込みに失敗してるんじゃねーの?
156デフォルトの名無しさん:2007/08/20(月) 13:40:48
> ソースを以下に貼り付けるので、よく読んで
> 回答してください。

これに回答する人間がいるのにびっくりした。
ネットにはやさしい人間があふれているものだ。
157デフォルトの名無しさん:2007/08/20(月) 13:49:57
>>156
>よく読んで

この部分で読むのやめたわ。

お前は読むのが当然、そして俺様のために答えてあげろ と言う風に感じられる

社長がPerl勉強し始めるとこんな感じになるんだろうな
158155:2007/08/20(月) 14:08:47
>156
割とボロクソ言ってるつもりなんだが。
159デフォルトの名無しさん:2007/08/20(月) 14:20:15
>>157
えーなにおまえ。
社長からメールくるとき
いっつもそんな文面なの?
160デフォルトの名無しさん:2007/08/20(月) 14:32:03
試験の問題文ぐらいでしか、日本語文に接して来なかったんじゃないだろうか。
>よく読んで
161デフォルトの名無しさん:2007/08/20(月) 15:52:23
>>158
やさしい事だねぇ。
質問(>>147=152)で別の質問(>>23,28,50,前スレ最後)を思い出しさなかった?
ボロクソ言うにしろ、Webprog板のスレ 741-747程度言って通じるかどうかって相手だろ、これ。
162デフォルトの名無しさん:2007/08/20(月) 16:18:27
いや、単にあの配色コードを貼り付けたかったネタだろ?
163デフォルトの名無しさん:2007/08/20(月) 17:07:45
PerlMagick ttp://www.ss.iij4u.or.jp/~somali/web/_perlmagick_ref.html を使っています。

(1)
1つの画像ファイルから、形式やサイズ、フィルタのかけ方が異なる複数のファイルを出力したいと考えています。
この場合、Read() 〜 編集 〜 Write() のセットを、出力したい回数だけ繰り返すしか方法は無いでしょうか?
他はともかく、Read()あたりを省略する方法があってもおかしくなさそうなので。

(2)
JPEG画像を生成しようとしてます。
特定のファイルサイズ以内に収まるように生成したいのですが、PerlMagick単体で可能なのかどうか怪しいところです。
これを解決する方法、サイズ予測モジュールなどがあればお願いします。
164126:2007/08/20(月) 17:10:06
>>148,150
真面目な回答ありがとうございます。助かります。
>>121のようなふざけた返答しかないから、困ってました。
しかしPerlはむずかしいですね。なかなかおぼえられません。
165デフォルトの名無しさん:2007/08/20(月) 17:16:57
ふざけてるのは君の方だ
166デフォルトの名無しさん:2007/08/20(月) 17:57:48
>>163
(1) 任意のタイミングで Clone 使うのが楽だと思う。
(2) 実際にファイルに書き出して、サイズが大きければ品質落としてやりなおしでよくね?
167デフォルトの名無しさん:2007/08/20(月) 20:02:47
>>164
> しかしPerlはむずかしいですね。なかなかおぼえられません。

いや、簡単だよ。
168163:2007/08/20(月) 21:50:54
>166
(1)
ありがとう。試してみる。

(2)
やっぱそれしか無いのかなー。
上限ギリギリまで画質を上げたいとか考えると、結構な時間的コストがかかりそう。
169デフォルトの名無しさん:2007/08/20(月) 22:25:15
http://mutoys.com/
の英語移植をやってるみたいだが、すでに何年も前に移植されてる。

http://manuke.com/static/view00000296.html
>ちなみに、私は本家 SOLD OUT の英語バージョンを仲間と作って公開したのだが、
>向こうの人たちはそんなに集まらなかった

だから、もうヤメロ。
ココに書き込むな。


開発者向けBBSを見ても、
http://mutoys.com/cgi-bin/bbs-so/ebbs.html
自己中のイタイ書き込みが多い。
170デフォルトの名無しさん:2007/08/21(火) 01:41:52
>>169
よくやった!
あなたをわが社の情報収集担当最高責任者に
任命する!
ストックオプションはどれだけ欲しいですか?
171デフォルトの名無しさん:2007/08/21(火) 06:08:17
>>147
については自己解決した。
カウントの数字は出ていたんだが、
前の文字列にくっついていたんで
見えなかっただけだった。
172デフォルトの名無しさん:2007/08/21(火) 06:57:15
あなたがたが
「忘れることのできない病気」
な人たちであることはわかっております
「おれ達の頭の中から出て行って欲しい」
と思っているでしょうが、出て行ってあげません。
一生あなたがたの頭の中に住み着くつもりですので
あきらめてください。
私を出て行かせる方法はありません。
173デフォルトの名無しさん:2007/08/21(火) 08:43:05
>>172 さん
偽者が出るかもしれないのでコテを付けた方が良いと思いますよ
174デフォルトの名無しさん:2007/08/21(火) 12:44:55
やあ低能社長さん
今日も粘着させて頂きますので
宜しくお願いしますね
175デフォルトの名無しさん:2007/08/21(火) 22:59:59
現在ローカルで動かしていたプログラムを実環境にて動作確認しています。
ローカルではエラーが出なかったのですが、
実環境ですと特定の条件下でエラーが出てしまいます。

以下のコードはエラーが出ないのですが、
my $output = spacesLineDelt($tmpl->output);
textOut($path, $output)
以下のコードだとエラーが出てしまいます。
textOut($path, spacesLineDelt($tmpl->output));

全く原因がわからないのですが、
どなたかお心当たりがある方教えていただけると幸いです。
なお、実環境のPerlのVerは5.00503で、
色々制限が掛かっているのですが詳細が分かりません。
176デフォルトの名無しさん:2007/08/21(火) 23:01:46
エラーメッセージくらい書いてくれよん
177デフォルトの名無しさん:2007/08/21(火) 23:14:58
「500 Internal Server Error と表示されます」は禁止で。
WebProg向きのような気がする。
178175:2007/08/21(火) 23:16:02
デバッグ方法に難があり、どうやら上のコードは関係ないようでした。すみません;
エラーなんですが、telnetが繋げずfatalstobrowserを使っても
なぜかこのエラーだけサーバが500エラーを返してきて分かりませんでした;
179175:2007/08/22(水) 03:23:37
2MBのメモリ制限に引っかかってエラーが出ているようでした。
お騒がせしました。
180デフォルトの名無しさん:2007/08/22(水) 13:49:38
Perlのオブジェクトプログラミングをぼちぼち勉強しているところなのですが、
継承されたクラスをどうやって扱ったらよいか迷っています。

今悩んでいるのは、複数のクラスを継承するクラスで生成したオブジェクトにおいて
呼び出したいメソッド名がクラス間で重複するとき、
クラスメソッドを呼び分けるにはどうすればよいかということです。

単純には呼び出したいクラスでメソッド名を完全修飾すればと考えたのですが、
重複メソッドが多いとこの方法で呼び分けるのはとてもわかりにくくなります。
それにメソッドの中にメソッド呼び出しがあるとまずいことになります。

そもそもメソッド名が重複するような継承はだめなのでしょうか。
ひとつご教授ください。
181デフォルトの名無しさん:2007/08/22(水) 14:12:58
> そもそもメソッド名が重複するような継承はだめなのでしょうか。

ダメとは言わんけど
「自分が何をやっているか」をきちんと把握できてないと破綻する
そういうことには上級者になるまで手を出さない方がいいんじゃないかと
182デフォルトの名無しさん:2007/08/22(水) 14:22:12
多重継承なんかつかわなければいいだろ。
183デフォルトの名無しさん:2007/08/22(水) 14:28:54
使わないと身に付きませんよ。
184デフォルトの名無しさん:2007/08/22(水) 14:58:59
perlでそんなめんどいことするなんてアホとしか
185180:2007/08/22(水) 15:17:30
ひとつ思いつきました。
オブジェクトを目的メソッドの所属クラスにブレスし直して、
メソッド呼出し後、元のクラスに再々ブレスし直すというものです。
コードに書くとこんな感じなります。

$curr_class = ref $object;
bless $object, 'FarInheritClass';
$object->dup_method;
bless $object, $curr_class;

対症療法としてはこれでいいですが、普通は多重継承でメソッドが重なる場合
どういう対策をしているんでしょうか。
クラス別にハンドルを生成するメソッドを用意するとかですか?
一般的な手法が知りたいです。

多重継承そのものを否定している方もいらっしゃるようですが・・・
186180:2007/08/22(水) 15:20:57
一応、>>180の単純化した例を用意しました。、
以下の例では、Aで生成したオブジェクトを使ってfというメソッドを呼び出していますが、
素の状態ではB、D、Cの順に探索するのでDのメソッドが呼び出されます。
C::で修飾してもfの中に内部メソッドの呼び出しがあるので、意図とは反して
Dの_pメソッドが呼び出されてしまいます。
これを正しく呼び分けられるようにしたいというのが質問の意図です。

package A; @ISA = qw(B C);

sub new { bless {} }

package B; @ISA = 'D';

package C; @ISA = 'D';

sub f { $_[0]->_p }
sub _p { print "I like C.n" }

package D;

sub f { $_[0]->_p }
sub _p { print "I like D.\n" }

###

package main;

$o = A->new();
$o->f; # I like D
$o->C::f; # I like D (not C)
187デフォルトの名無しさん:2007/08/22(水) 16:27:43
abc_abcdという文字列から
0文字目から3文字分(abc) 4文字目から4文字分(abcd)といった情報を先に作っていて
@position = (0,4);
@substr_len = (3,4);
以下のようにsubstrを使って取り出してsortしていたのですが遅いです。(substrの部分が)
なので
@text=(a,b,c,_,a,b,c,d)と@position と @substr_len を使って基数ソートのような方法でソートし、
(0,3,4,4)のように数値情報だけ得たいと思うのですがコードの書き方がわかりません。
どうすれば良いでしょうか、よろしくお願いします。

while($j < @position)
{
$p = $position[$j];
$len = $substr_len[$p]
$word = substr($text, $p, $len);
push @a_word, $word;
$j++;
}
@a_word = sort @a_word;
188デフォルトの名無しさん:2007/08/22(水) 17:19:14
>>187
で、結局何がしたいんだ?
アンダースコアで単語を切り分けてアルファベット順に並べ替えたいならアプローチが間違ってる。
189デフォルトの名無しさん:2007/08/22(水) 17:58:41
>>186
A を使うに際し A の内部で C が使われている事を
意識しなければいけない状態はカプセル化に失敗しているわけだけど、
それはいいの?

駱駝本や黒豹本だと無闇に継承(is-a)を使わず
合成(has-a、use-a)も考えるよう勧められてるよ。
190デフォルトの名無しさん:2007/08/22(水) 18:04:43
ダイアモンド継承で名前の重複なんて、思いっきり典型的な罠にはまりまくりな
パターンだな
別名つけるのがありがちだけど完璧で美しい対処法なんて無いだろ
だから多重継承は強力でありながら忌み嫌われるんだよ
191デフォルトの名無しさん:2007/08/22(水) 23:54:51
192デフォルトの名無しさん:2007/08/23(木) 10:24:04
shiftjisのinput.txtの全角スペースにマッチングさせるため、

open FP,'<:encoding(shiftjis)', 'input.txt' or die;
$Zspace = "/xE3/x80/x80"; # Zenkaku space on EUC-JP
if($line=~/$Zspace/){
print "detected";
}

というスクリプトを書いてみましたが
これを実行してもマッチングに失敗します。
何が悪いのか分かるかたいらっしゃいませんか?
193デフォルトの名無しさん:2007/08/23(木) 12:20:11
はじめまして。よろしくお願いします。

フォームからCGIにアドレスを送り、次のような感じでリンクの表示したいのですが、
print "<a href=\"$a\" target=\"_parent\">詳細はこちら>></a>";

フォームから送ったアドレスの$_からがうまく渡せません。下のアドレス、
http://xxx.com/app/search.cgi?_mode=mode_detail&_type=rl&_object_id=0001
を、ファームから送っても、
http://xxx.com/app/search.cgi?_mode=mode_detail
でリンクされてしまいます。

&_が原因だろうというのは分かるのですが、どう対処すればいいのか分かりません。
ものすごく初心者な質問だと思いますが、よろしくお願いします。
194デフォルトの名無しさん:2007/08/23(木) 12:25:50
夏休みだからって何だこの質問群は…
195デフォルトの名無しさん:2007/08/23(木) 12:31:11
>>193
Javaスクリプトを無効にしてみたら?
196デフォルトの名無しさん:2007/08/23(木) 12:39:33
>>192
突っ込みどころ満載ですね

\xE3\x80\x80にマッチしないのはutf8フラグ付いてるから
逆に言えばutf8フラグ付いてたら\sで全角スペースにマッチするにょ
197デフォルトの名無しさん:2007/08/23(木) 12:47:30
>>193
俺はここに飛ばされるんだが。。。
http://xxx.com/

そのアドレス先に行ってソース嫁、読めばなぜ飛べないのかわかる
198デフォルトの名無しさん:2007/08/23(木) 12:58:10
>>195
インターネットオプションから試しましたがダメでした。Javaスクリプトを無効に
する方法って他にありますか?
>>197
ttp://xxx.com/ のxxxは仮のURLとして書いたものです。申し訳ありません。
199デフォルトの名無しさん:2007/08/23(木) 13:54:13
193です。もしかすると、フォームからデータを受け取る際のsplit関数の、
@form=split (/&/,$input);
の&部分が、送られたアドレスの&部分とごっちゃになって(表現が変ですが)、
ttp://××.com/app/search.cgi?_mode=mode_detail&_type=rl&_object_id=0001
を、&で分解して
ttp://××.com/app/search.cgi?_mode=mode_detail
_type=rl
_object_id=0001
に分けてしまうのが原因のように思えてきました。
対処方法が分かればお願いいたします。また、説明不足な感じになって、
アドバイスしていただいた方、申し訳ありませんでした。

@form=split (/&/,$input);

$a=$form[0];



$a=$form[5];
$a=~s/詳細=/ /;
print "<a href=\"$a\" target=\"_parent\">詳細はこちら>></a>";
200180:2007/08/23(木) 14:10:04
いろいろ回答ありがとうございました。

>>189
B,Cが既存モジュール、DがB,Cが共通して使っている親クラス、
Aがmainを書いた人が書いたカスタムモジュールということにしておいてください。

>合成(has-a、use-a)も考えるよう勧められてるよ。
合成というのは継承機構に頼らず必要なメソッドを手動でA上にディスパッチして
使うということでしょうか?
駱駝本も黒豹本も持ってない・・・

>>190
重複メソッドについてはA上に別名で定義し直すっていうのが現実的な対応でしょうね
あと、内部のメソッド呼び出しが重複する場合は、サブルーチン呼び出しに書き換えるか、
それが出来ない場合は、やはりA上に同名のメソッドを定義して、適切なクラスへ
誘導する必要があると思いました。ばかばかしい事ですが・・・

sub A::_p { $meth = caller().'::_p'; $_[0]->$meth }

>>191
なるほど、next::methodでメソッドが重複するクラスへ誘導するわけですか。
ひとつ勉強になりました。
問題点があるとすれば重複すると分かってからnext::methodを書き込まなければ
いけない点ですね。
201デフォルトの名無しさん:2007/08/23(木) 15:09:51
次のメソッドが無い時でもエラーにならない maybe::next もあるにょ
202デフォルトの名無しさん:2007/08/23(木) 15:30:12
203デフォルトの名無しさん:2007/08/23(木) 16:45:26
お前はもうここに書くな
204デフォルトの名無しさん:2007/08/23(木) 20:10:19
>>193,>>199
で、結局、自分は何をしたいのか、どういう結果を期待しているのか。それを書け。
205デフォルトの名無しさん:2007/08/23(木) 20:34:00
>>187
そのコードで(sortではなく)substrが遅いというのは、
 ・$text に utf8フラグが付いている
 ・配列(@position)の要素数がとても多い
 ・その部分が何回も(数百回,数千回といった回数)実行される
という事?
206デフォルトの名無しさん:2007/08/23(木) 21:30:08
>>204
&を含む以下のようなアドレスをフォームから送ったとき、
ttp://××.com/app/search.cgi?_mode=mode_detail&_type=rl&_object_id=0001

@form=split (/&/,$input); によって
ttp://××.com/app/search.cgi?_mode=mode_detail
_type=rl
_object_id=0001
の3つに分解されて@formに格納されてしまいます。

&を含むアドレスを分解されずにひとつの添え字の中に格納することはできますか?
207デフォルトの名無しさん:2007/08/23(木) 21:38:58
208デフォルトの名無しさん:2007/08/23(木) 23:02:11
わからん。わけわからん!

&で分解してるのに、&で分解されずに格納したいだと??

わからん。言ってる意味がまったくワカラン!!!
209デフォルトの名無しさん:2007/08/23(木) 23:21:33
CGIの環境変数を勉強してこい
210デフォルトの名無しさん:2007/08/23(木) 23:36:11
>>208
>>209
勉強し直してきます。
211187:2007/08/23(木) 23:44:38
>>188
「_」で切り分けたいわけではないです。bc_abのような組み合わせもあります。
かなり長い文字列から、部分文字列を大量に切り取って、ソートしたいです。

>>205
まったくその通りで・・・頭が下がります。
utf8ですし、
ループ回数は10万ちょっとあります。
substrでは1秒近くかかります。

なので以下のように配列で処理しようとしたのですがソートがわからなくなりました。
abc_abcdからabc,abcdと取り出そうとした場合、
配列に0文字目から2文字目まで、4文字目から7文字目までという意味で(0,2,4,7)と格納する。
これだと0.05秒くらいで終わります。
212デフォルトの名無しさん:2007/08/24(金) 00:55:42
>>187>>211
substrが遅くて困る、というなら、
substrを使わないか、回数を減らすアルゴリズムに切り替えること。
そのためのヒントとなるべき「何をしたいのか」が>>187にはない。
substrを使う>>187のアルゴリズムが絶対なら、それはsubstrから逃れられないのでは?
213デフォルトの名無しさん:2007/08/24(金) 02:16:53
180がだいぶわかってないのだけはわかった。
オブジェクト指向プログラミングを学ぶならPerlじゃないほうがいいと思う。
個人的にはJavaがおすすめ
(静的型付のほうが最初はいい気がする)
オブジェクト指向の原則やデザパタを学ぶには「アジャイルソフトウェア開発の奥義」もおすすめ。
214デフォルトの名無しさん:2007/08/24(金) 02:25:59
>>187
オフセット情報があるんだったらunpackで一発じゃない?
215デフォルトの名無しさん:2007/08/24(金) 19:08:39
>>201
あ、そうですね。とりあえず、重複するかどうかわからないけどそう書いとくのも手ですね。
あと、同じことなのですがサブルーチンに属性をつけるのもありだと思いました。

例えば>>186で重複メソッドをロード順に実行するなら
package UNIVERSAL;
use Attribute::Handlers;

sub DUP :ATTR(CODE) {
 my ($pack, $symbol) = @_;
 my $sub = *{$symbol}{NAME};
 my $fa = *{'A::'.$sub}{CODE};
 my $fx = *{$pack.'::'.$sub}{CODE};
 *{'A::'.$sub} = $fa ? sub{ $fa->(@_); $fx->(@_) } : $fx;
}

sub C::f :DUP {・・・}
sub D::f :DUP {・・・}

あと内部呼び出しで重複するメソッドはINSIDE属性をつけるとか

sub INSIDE :ATTR(CODE) {
 my ($pack, $symbol) = @_;
 my $sub = *{$symbol}{NAME};
 return if *{'A::'.$sub}{CODE};
 *{'A::'.$sub} = sub{ my $meth = caller()."::$sub"; $_[0]->$meth };
}

sub C:_p :INSIDE {・・・}
216デフォルトの名無しさん:2007/08/24(金) 19:08:52
LWP-UserAgentでHTTPSのアクセスにSocksプロキシを使いたくて調べたら
LWP-Protocol-https-SocksChainというの見つけたのですが
サンプルコピペして実行しても
Deep recursion on subroutine "LWP::Protocol::http::SocketMethods::sysread" at C:/Perl/site/lib/IO/Socket/SSL.pm line 767.
Deep recursion on subroutine "IO::Socket::SSL::SSL_HANDLE::READ" at C:/Perl/lib/LWP/Protocol/http.pm line 392.
ってエラーでてしまいます。どうすればいいんでしょうか?
環境はActivePerl v5.8.8 WindowsXPです。
LWP-Protocol-https-SocksChain自体Googleで検索してもほとんど出てこないのでどなたか助けてください。
217デフォルトの名無しさん:2007/08/24(金) 19:23:08
>>202
ざっと見ましたが、出来るなら継承より委譲した方がいいようですね。
委譲パターンって単純にはこんな感じでしょうか

sub A::new { bless {delegate_B=>bless({},'B'), delegate_C=>bless({},'C')} }

sub A::delegate_B { $_[0]->{delegate_B} }
sub A::delegate_C { $_[0]->{delegate_C} }

package main;

$o->delegate_B->f;
$o->delegate_C->f;
218デフォルトの名無しさん:2007/08/24(金) 19:54:30
>>213
あー180ですが、これ私に対するレスですよね。
Javaのデザインパターンの考え方は参考になるので、今度図書館で探してみます。
その前に駱駝本とかを読むのが先なのかな?
(借りようと思ったけど、ずっと貸し出し中だった)
前に指摘されていた黒豹本は書店で確認しましたが、あまりオブジェクトに関する記述はなかったです。
今、perlbootとperltoocとperltootを読んでいるところです。
これとperlbotがPerlのオブジェクト〜の教典ってことになるのでしょうか
219デフォルトの名無しさん:2007/08/24(金) 20:48:29
皆さんこんにちは.
$::request
という変数が書かれたスクリプトがあるのですが,
これ何の変数なのか教えていただけないでしょうか.
プログラミングPerlで見つけることができなくて・・・
220デフォルトの名無しさん:2007/08/24(金) 20:53:30
現在のパッケージに属するスカラ変数。
221デフォルトの名無しさん:2007/08/24(金) 22:09:22
プログラミングPerlでは、パッケージに関する項で説明されている。
ただし初版(背表紙が赤い奴)では(当時まだ無かった) $::name という表現は使われていない。
(かわりに $'name という表現が使われている)
222デフォルトの名無しさん:2007/08/25(土) 07:56:42
お前はもうここに書くな
223素人:2007/08/25(土) 15:54:10
perl初心者です。よろしくお願いします。
HTMLのフォームからCGIにデータを送った場合には、内容がきちんと表示される
のですが、CGIに直接アクセスした時には表示されません。どこに問題があるのか
ご教授下さい。お願いします。
#!/usr/local/bin/perl

#データファイル
$datafile='./data.dat';
#ライブラリの読み込み
require './jcode.pl';
#フォームデータの読み込み
if ($ENV{REQUEST_METHOD} eq "POST"){
read (STDIN,$input,$ENV{CONTENT_LENGTH});
}else{
$input=$ENV{QUERY_STRING};
}
#フォームデータのデコード
$input =~ tr/+/ /;
$input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
#SJISコード変換
&jcode::convert(\$input, 'sjis');
#フォームデータの分解
@form=split (/&/,$input);
#データのオープン
open(DAT,"+< $datafile");
flock(DAT, 2);
#データの書き込みとクローズ
seek(DAT,0,0);
print DAT @form;
close(DAT);
224素人、続き:2007/08/25(土) 15:56:48
&header;
print "<div class=\"iframe_body\">";
#データを表示する(左)
print "<div class=\"iframe_left\">";
$a=$form[0];
$a=~s/名前=/ /;
print "<b><font color=\"#ff0000\">$a</font></b>";
print "<br>";
$a=$form[1];
$a=~s/画像=/ /;
print "<img src=\"$a\" width=\"120\" height=\"100\" border=\"0\">";
print "<br>";
$a=$form[2];
$a=~s/住所=/ /;
print $a;
print "<br></div>";

#データを表示する(中央)と(右)があります。

print <<EOM;
</body>
</html>
EOM
exit;

#-----------------------------------------------------------------------------------
# HTMLヘッダー
#-----------------------------------------------------------------------------------
割愛
225デフォルトの名無しさん:2007/08/25(土) 16:21:09
板違い。テンプレヨメ。
226素人:2007/08/25(土) 16:42:14
>>225
板違いでしたか。失礼しました。
227デフォルトの名無しさん:2007/08/25(土) 16:42:36
入力がないのに、どうやってデータを出すんだよ
228素人:2007/08/25(土) 16:55:13
入力ってなんですか?教えてください。お願いします。
229デフォルトの名無しさん:2007/08/25(土) 17:05:37
Perl、CGIの本買ってくればのってる

手間、金、時間を惜しむ奴は勉強しなくてよろしい
230素人:2007/08/25(土) 17:21:25
>>229
open(IN,"ファイル名");
@form=<IN>;
close(IN);
は試してみたんですが、ぜんぜん別のことでしょうか?
とりあえず、もう一度本を読み直してみます。
231デフォルトの名無しさん:2007/08/25(土) 20:48:47
> 手間、金、時間を惜しむ奴は勉強しなくてよろしい

君んちの近くに心療内科ないの?
あったら一度行ってみた方が良いよ。
232デフォルトの名無しさん:2007/08/25(土) 20:54:30
>>231
君んちの近くにはないの?
233デフォルトの名無しさん:2007/08/25(土) 21:00:45
>>232
自分が行ってみて良かったから人にも勧めてるんだろ。
234デフォルトの名無しさん:2007/08/25(土) 21:21:27
回答者を煽っても質問者が得する事は
何一つ無いと言うのに 全く愚かな奴だ
235デフォルトの名無しさん:2007/08/25(土) 21:31:50
心療内科を探す手間、金、時間を惜しむ奴は治療しなくてよろしい
236205:2007/08/25(土) 21:32:13
>>211
それは大変そうだね。
普通は位置情報で処理すると、187の@a_wordへ分割するコードより遅くなるよ?
sortの準備が1秒から0.05秒に減る代わりに、sort自体が0.5秒から10秒に増える感じになる。
ソート済みの位置情報を保存して使いまわす場合には、速度は気にならないだろうけどね。

n番目という情報をソートするだけなら、例えば @a_word = sort @a_word; ならば比較関数を
@order = (0..$#a_word);
@order = sort { $a_word[$a] cmp $a_word[$b]} @order;
のように書けばいい。(@a_word = sort @a_word; より数倍遅い)
同様に
@order = sort { substr($text,$position[$a],...
と、より複雑な比較関数を使って @a_word 自体を作らない手もある。(更に数倍以上遅い)
237デフォルトの名無しさん:2007/08/26(日) 13:55:19
perlのモジュールをインストールするのにすごい手間どっています。

http://digit.que.ne.jp/work/index.cgi?Perl%e3%83%a1%e3%83%a2%2f%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%28CPAN%29
http://blog.ko-c.jp/?eid=661566">Windows

↑これらのページを参考にしてがんばっているのですがどうもうまくいきません。

NMAKE : fatal error U1077: 'C:\PROGRA~1\MID05A~1\VC\bin\cl.EXE' : リターン コー
ド '0xc0000135

このようなエラーがでてnmakeが途中で終わってしまうのですが何が原因なのでしょうか?
cl.exeのあるフォルダにはPATHを通してあります。
238デフォルトの名無しさん:2007/08/26(日) 14:17:41
諦めてppmにしておいたほうが幸せになれる
239デフォルトの名無しさん:2007/08/26(日) 15:53:34
あきらめて VMware の中に Linux 入れたほうが幸せになれる
240デフォルトの名無しさん:2007/08/27(月) 01:10:00
テキストファイルの文字コードを調べて、もしUTF-8じゃなかったら、UTF-8として読み出すみたいなことは出来るんですか?

ナニナニを使え、みたいなお返事でも結構ですので
241デフォルトの名無しさん:2007/08/27(月) 08:17:58
>>126
今さらだけど、属性使うとそれっぽく書ける

sub f1 :Default(0,'foo') {
  my ($x, $y) = @_;
  print "$x $y\n";
}

実装例

use Attribute::Handlers;
sub UNIVERSAL::Default :ATTR(CODE) {
  my ($pack, $symbol, $referent, $attr, $data) = @_;
  no warnings 'redefine';
  no strict 'refs';
  my $sub = *{$symbol}{NAME};
  my $orig_func = *{$pack."::$sub"}{CODE};
  *{$pack."::$sub"} = sub{
    for my $i (0..$#$data) {
      unless (defined($_[$i])) {splice(@_, $i, 1, $data->[$i]) }
    }
    $orig_func->(@_)
  };
}

242デフォルトの名無しさん:2007/08/27(月) 17:24:59
お前はもうここに書くな
243デフォルトの名無しさん:2007/08/27(月) 17:27:28
質問です。
たまに、戻り値を受け取る変数の型によって、値が変わる関数がありますよね?


(1)
これを自前でサブルーチンとして実装するには、どう記述すればよいのでしょうか。

(2)
この値を呼び出し側で制御することは出来ませんか。
  @tmp = function();
  $result = \@tmp;
のように。

よろしくお願いします。
244デフォルトの名無しさん:2007/08/27(月) 17:53:51
wantarrayとかの話?
245243:2007/08/27(月) 18:03:05
>>244
(1)はそれ。ありがとう。
246デフォルトの名無しさん:2007/08/27(月) 18:10:12
>>243
(2)の意味するところがわからん
247デフォルトの名無しさん:2007/08/27(月) 18:16:57
関数の返り値が配列なのかスカラーなのかブーリアンなのか実行前に知りたい時がたまにある。
どうすりゃいいんだろう
248デフォルトの名無しさん:2007/08/27(月) 18:17:44
>>247
ソースを見る
249デフォルトの名無しさん:2007/08/27(月) 18:19:21
>>243
$result = [function()];
250243:2007/08/27(月) 18:24:26
>246
戻り値をスカラーで受け取りつつ、関数には、リストコンテキストとして評価できないかなと。
配列のリファレンスが欲しい。

>247
ドキュメントをしっかり作るとか。
あとは、統合環境で何とかならないかな?
251243:2007/08/27(月) 18:27:20
リロードしてなかった orz

>249
ありがとうです。そんな使い方があったのですね。
252デフォルトの名無しさん:2007/08/27(月) 18:43:23
>>247
無理だよ。コンテクストや引数、そのほか計り知れない要因によって変わる可能性があるんだから。
253デフォルトの名無しさん:2007/08/27(月) 18:50:31
>>247
なんで分からんねん って話しだが
254デフォルトの名無しさん:2007/08/27(月) 19:01:24
>>248
サブルーチンとか所在のわかっている関数はB::Deparseとかで確認できるけど、
どこから継承されているかわからない階層の深いメソッドとかはどうすりゃいいですか?
255デフォルトの名無しさん:2007/08/27(月) 20:28:52
そんなに深い谷底からメモもなく浮上してくるの?
256デフォルトの名無しさん:2007/08/27(月) 20:35:43
頭の足りない人向けのライブラリでも作ってるのか。大変だな。
257デフォルトの名無しさん:2007/08/27(月) 21:47:15
ソース読むとかドキュメント読むとか取り合えずダンプしてみるとか
callerで深い階層まで拾ってみるとかそんな関数使わないとか
258254:2007/08/27(月) 21:51:26
あ、canメソッドを使えばいいのか。canはコードリファレンスを返すんだった。
それをcoderef2textに渡せばソースが出力される。
自己解決しました。お騒がせしました。
259デフォルトの名無しさん:2007/08/27(月) 21:56:30
Perlはまだ書いたことが無いのですが

ファイルサーバーの
¥¥fileserver¥dateの下にあるファイル全てを
ローカルの
C:¥date¥ の下にコピーする

ということは可能でしょうか
260デフォルトの名無しさん:2007/08/27(月) 22:12:48
>>259
perlで可能だが、お前には無理
261デフォルトの名無しさん:2007/08/27(月) 22:16:10
UNIX系なら簡単なにのにな〜
Macとか、Linuxとかにすればいいのに〜

パソコンくんには無理かな〜
262デフォルトの名無しさん:2007/08/27(月) 22:23:06
>>261
馬鹿だ
263デフォルトの名無しさん:2007/08/27(月) 22:46:42
>>261
MacとLinnuxの間はRsyncで同期してるから問題ないのだが

WinとLinuxの間をPerlにしようと思ってるんだ
でもフリーソフトで結構いいのがありそう
264259:2007/08/28(火) 00:15:54
>>260
お前にはできるのに、私には無理でしょうか
265パソコンくん:2007/08/28(火) 00:19:32
>>261
うるせーバカ
266デフォルトの名無しさん:2007/08/28(火) 00:21:54
なんか 馬鹿ばっかだな

さすがおこちゃま用Perlだw
267261:2007/08/28(火) 00:22:06
パソコンくんと言うと面白いほど釣れるね
ありがとうApple。これからも釣りに使わせてもらうよ
268デフォルトの名無しさん:2007/08/28(火) 01:03:35
はいはい、自己防衛本能だけは旺盛なようでw
269デフォルトの名無しさん:2007/08/28(火) 01:17:10
↓にあるようにnowloadingを表示するのってperlでできるんですか?
http://www.omosiro-flash.com/

javascriptとかajaxとか使ってるんでしょうか?
270261:2007/08/28(火) 02:23:07
>>269

Flash
271デフォルトの名無しさん:2007/08/28(火) 05:34:49
すみません、文字列置換がどうしてもうまくいかないので教えてください。

●test1.pl
#!C:/Perl/bin/perl.exe -w
$pattern=<STDIN>; chomp $pattern;
$replace=<STDIN>; chomp $replace;
while (! eof STDIN) {
$string =<STDIN>; chomp $string;
$string =~ s/$pattern/$replace/g;
print $string,"\n";
}

●sample.txt
<a href='(.*)/index.php.*>(vi.*)</a>
$1/img/$2
<a href='http://vista.crap.jp/index.php?num=8824236930' target='_new'>vi8824236930.jpg</a>
<a href='http://vista.crap.jp/index.php?num=8824557866' target='_new'>vi8824557866.jpg</a>
<a href='http://vista.crap.jp/index.php?num=8824543592' target='_new'>vi8824543592.jpg</a>
<a href='http://vista.crap.jp/index.php?num=8824536390' target='_new'>vi8824536390.jpg</a>
<a href='http://vista.crap.jp/index.php?num=8802124487' target='_new'>vi8802124487.jpg</a>
<a href='http://vista.crap.jp/index.php?num=8796159298' target='_new'>vi8796159298.jpg</a>

これで、 perl test1.pl < sample.txt と動かすと、
「$1/img/$2」 と出力されるんです。

ほんとは、「http://vista.crap.jp/img/vi8824236930.jpg」 みたいになって欲しいんです。
説明書を読んで、$1 のところを \1 とか \\1 とか \\\1 とか \\\\1 とか \\\\\1 とかやってみたんですが
やっぱダメでした。
$1 とか \1 って perl では使えないんですか?
272デフォルトの名無しさん:2007/08/28(火) 06:31:21
> $string =~ s/$pattern/$replace/g;

$string =~ s/$pattern/$replace/gx;
273デフォルトの名無しさん:2007/08/28(火) 06:51:38
>>272
おまえのできてないだろwww

#!/usr/bin/perl
use strict;

my $pattern=<STDIN>; chomp $pattern;
my $replace=<STDIN>; chomp $replace;

while (! eof STDIN) {
 my $string =<STDIN>; chomp $string;

 if (my (@matches) = ($string =~ /$pattern/)) {
  my $rep = $replace;
  $rep =~ s/\$(\d+)/$matches[($1 -1)];/eg;
  $string =~ s/$pattern/$rep/eg;
 }
 print $string,"\n";
}
274デフォルトの名無しさん:2007/08/28(火) 11:05:30
LWP::UserAgentでHTTPSアクセスしてるんですが
たまに接続先に繋ぎっぱなしになって戻ってこない時があります。
UserAgent->timeoutも機能してないし、SIGALRMも効きません。
対処法お願いします。
ActivePerl5.8.8です。
275デフォルトの名無しさん:2007/08/28(火) 11:36:34
ある文字列が 2 文字かどうか正規表現を使わずにおこなう方法はありますか?
$string =~ /^..$/;
と同じことがやりたいです。

よろしくお願いします。
276デフォルトの名無しさん:2007/08/28(火) 11:49:56
>>275
length($string) == 2
277デフォルトの名無しさん:2007/08/28(火) 13:10:25
>>276
ありがとう!
278デフォルトの名無しさん:2007/08/28(火) 15:34:09
zipファイルの展開について。

zipファイル(テキストファイルを圧縮したもの)をメモリ上に展開し、
そのテキストを読み込みたいと考えています。
これは可能でしょうか?
可能な場合、参考になるサイト等あればお教えください。

ActivePerl5.8.1で、モジュールの追加なしで考えています。
(Archive::Zipを使い、ファイルに出力すれば読み込めることはわかりました。)
perlでファイルマッピングできればと思いましたが、見つけられず。
279デフォルトの名無しさん:2007/08/28(火) 15:42:51
>>278
zipコマンド群を呼べばいいじゃん。
280デフォルトの名無しさん:2007/08/28(火) 17:10:19
ttp://search.cpan.org/~adamk/Archive-Zip-1.20/lib/Archive/Zip/FAQ.pod

Zip contents in a scalar

Q: I want to read a Zip file from (or write one to) a scalar variable instead of a file. How can I do this?
A: Use IO::String and the readFromFileHandle() and writeToFileHandle() methods. See examples/readScalar.pl and examples/writeScalar.pl.
Reading from streams

Q: How do I read from a stream (like for the Info-Zip funzip program)?
A: This isn't currently supported, though writing to a stream is.
281デフォルトの名無しさん:2007/08/28(火) 20:08:02
>>278
POD読め。もしくは、ソース読め。

ZIP.pod (ZIP.pm に埋まっている場合あり) より.
>=item contents( $memberOrMemberName [, $newContents ] )
>Returns the uncompressed data for a particular member, or undef.
> print "xyz.txt contains " . $zip->contents( 'xyz.txt' );
>Also can change the contents of a member:
> $zip->contents( 'xyz.txt', 'This is the new contents' );
282デフォルトの名無しさん:2007/08/28(火) 22:23:47
>>273
できました!ありがとうゴザイマス。
283デフォルトの名無しさん:2007/08/28(火) 22:38:31
>>282
たぶん単純すぎて誰も答えてくれかったんだろうけど、
明らかにこうでしょ。
>>273が珍回答だってのは初心者の俺でもわかるよ

$string =~ s/$pattern/'"'.$replace.'"'/ee;
284デフォルトの名無しさん:2007/08/29(水) 00:57:00
285デフォルトの名無しさん:2007/08/30(木) 00:13:25
Perl+SQLite関連のサイトのブクマがある程度ある人は、良かったら公開して
286デフォルトの名無しさん:2007/08/30(木) 02:34:45
perlをコンパイルしてexeファイルにして配布しているシェアウェアってありますか?
というかperlで作ったプログラムをperl2exe.exeのようなものでコンパイルして、中身のコードを
見れないようにして人に売ったりしてる人っています?

なんか、perlつかってるひとって商売っ気ないというか、なんでもフリー精神がありそうで、そういうことは
禁止されてるのかなと思いまして。
287デフォルトの名無しさん:2007/08/30(木) 03:08:21
関係ないけど、perl製のexeで思い出したw
http://news4u.blog51.fc2.com/blog-entry-1497.html
288デフォルトの名無しさん:2007/08/30(木) 03:14:29
$perl -e 'use LWP::Simple; 〜
というのをコマンドラインからよくやるんだけど、
この「use LWP::Simple」の部分を省略する方法ってありますか?
289デフォルトの名無しさん:2007/08/30(木) 03:16:26
-Mとか-mとか
290デフォルトの名無しさん:2007/08/30(木) 03:23:32
>>289
-Mを忘れてました。もうひとつ、-Mを省略する方法ってないですかね。
perlのaliasを設定するしかないのかな?
291デフォルトの名無しさん:2007/08/30(木) 04:17:09
>>287
爆笑した。この変な会社もやはり、コードの中身をあんまり見られたくないから
PARつかったんだろうね。でも簡単に見られるみたいだけど。

だけど、perlだからこそこの面白話がなりたってるね。
292デフォルトの名無しさん:2007/08/30(木) 04:30:55
>287
やっぱり思い出すよな、それ(笑)
293デフォルトの名無しさん:2007/08/30(木) 10:44:29
昨日EPICをインスコしたんですが、良いですね〜。
もう秀丸には戻れない体になってしまいました。
294デフォルトの名無しさん:2007/08/30(木) 12:54:02
>>283
スゴス・・・

perl の正規表現の解説をググりまくって調べてたんですが、
/e についてはどこも”アッサリ”な説明しかなく
ましてや /ee なんてどこにも書いてませんでした。
みんな避けて通ってるみたい。
295デフォルトの名無しさん:2007/08/30(木) 13:10:01
>>283
それって、$replaceに"が入ってたらしなね?
296デフォルトの名無しさん:2007/08/30(木) 13:10:59
>>294
こういう人ってときどき出現するけど、なにかの精神病なのか?
297デフォルトの名無しさん:2007/08/30(木) 13:31:37
釣りだと思いたいな。。
298デフォルトの名無しさん:2007/08/30(木) 13:38:16
>>294
「e修飾子はevalするもので複数回指定可能」という説明だけで、evalを理解している
人にとって十分だからなぁ。

perlopのサンプルコードのコメントにさらっと書いてあるだけなので見落としやすい
というのはあるが。

# /e's can even nest; this will expand
# any embedded scalar variable (including lexicals) in $_
s/(\$\w+)/$1/eeg;
299デフォルトの名無しさん:2007/08/30(木) 14:05:04
>>296
いつもの子でしょ。
300デフォルトの名無しさん:2007/08/30(木) 15:26:31
>>291,292
なんなんだろうね、この流れも。
PAR使う理由はそこじゃないだろうに
301デフォルトの名無しさん:2007/08/31(金) 00:18:32
>>290
〜のみを引数として渡す、バッチファイル作れば?
302デフォルトの名無しさん:2007/08/31(金) 00:19:33
ここもか・・・orz
どうして perl スレはどこも皆キチガイばっかりなんだ?
303デフォルトの名無しさん:2007/08/31(金) 00:33:02
やあこんにちは
今日も粘着させて貰うので
宜しくお願いしますね
304デフォルトの名無しさん:2007/08/31(金) 00:36:42
305デフォルトの名無しさん:2007/08/31(金) 01:22:49
ファイルパスの入った配列をディレクトリ順にソートしてくれるモジュールや
配列は無いでしょうか? …sort関数で可能だったりしますか?
306デフォルトの名無しさん:2007/08/31(金) 01:23:39
ディレクトリ順ってのがよくわからん。
307デフォルトの名無しさん:2007/08/31(金) 01:32:36
abcってことじゃね?
alpha/boo/imac.jpg
beta/aipod/steve.numbers
cats/mycats.cwk
308デフォルトの名無しさん:2007/08/31(金) 01:37:10
use File::Sort
309デフォルトの名無しさん:2007/08/31(金) 01:39:30
alpha/boo/imac.jpg
alpha/fasdg/share.exe
alpha/fasdg/tesadf.txt
beta/aipod/steve.numbers
beta/aipod/winny.exe
cats/mycats.cwk
みたいなのを期待しているんじゃ(ry
310デフォルトの名無しさん:2007/08/31(金) 01:46:20
説明不足で失礼しました。親ディレクトリからの
並びになるようにソートしたかったんです。

my @path = ('/c/bar/hoge', '/a/foo', '/b');

これを

/b
/a/foo
/c/bar/hoge

のように並べ替えたいのですが単純にsort関数使うと

/a/foo
/b
/c/bar/hoge

こうなってしまうので… 超初歩的なこと訊いてそうで恐縮ですorz
311デフォルトの名無しさん:2007/08/31(金) 01:48:00
/b より /a/foo が後ろになるのかよ
312デフォルトの名無しさん:2007/08/31(金) 01:48:07
/のマッチ回数でハッシュとかに入れたら?
313デフォルトの名無しさん:2007/08/31(金) 01:50:51
説明伝わりにくそうなので書き直し。310は忘れてください…

単純に言うなら欠くディレクトリの持ってるファイルを先に、
子になるディレクトリを後にして並べたいという感じです
314デフォルトの名無しさん:2007/08/31(金) 01:52:08
書き込んでる間にレスが

> use File::Sort
ありがとう 調べてみます

> 312
ありがとうございます。もうちょっと工夫してみます
315デフォルトの名無しさん:2007/08/31(金) 02:20:28
>>288
環境変数 PERL5OPT に設定しておく。
いらないときが面倒だけど。
316デフォルトの名無しさん:2007/08/31(金) 02:52:08
sort { ( $T{$a} ||= scalar @{[split m!/!,$a]} ) <=> ( $T{$b} ||= scalar @{[split m!/!,$b]} ) || $a cmp $b } @path
317デフォルトの名無しさん:2007/08/31(金) 04:11:47
>>316
なにそのスパゲッテイコード。
318デフォルトの名無しさん:2007/08/31(金) 07:42:20
シャチ泳ぎがスパゲティかあ、、、
319デフォルトの名無しさん:2007/08/31(金) 08:08:45
加えて、スパゲッテイコードの意味を正しく理解しているかも微妙な線(誤用とまでは言わない)。
320デフォルトの名無しさん:2007/08/31(金) 08:22:16
316が要件を満すか否かは別にして317は酷い
321305:2007/08/31(金) 09:13:26
>>316
こ、これは! まさに望んでいたソートになりました。ありがとうございました
ワンライナーで書けちゃうんですねぇ… 勉強になりました
322デフォルトの名無しさん:2007/08/31(金) 12:22:13
高卒にはこの美しさが分からないんだろうな
323デフォルトの名無しさん:2007/08/31(金) 12:34:04
>>322
きれいなシャチ泳ぎは美しいかもしらんが、>>316のコードは
お世辞にもきれいとは言えん。釣りで仕込んだのかもしれんが、無意味な無名配列作成とか。

同じ事を普通に書くと以下になる。
sort { ( $T{$a} ||= split m{/},$a ) <=> ( $T{$b} ||= split m{/},$b ) || $a cmp $b } @path


ただ「スパゲティ」とは別ものだ。
324デフォルトの名無しさん:2007/08/31(金) 13:07:39
私もscalarとかが不必要だとは思ったけど
なんていうかコードよりこのスタンスに美を感じるんだよね
やはり専門卒レベルには理解出来ない芸術なんだよ
325316:2007/08/31(金) 13:12:43
>>323
最初それで書いたんだけど
Use of implicit split to @_ is deprecated at - line 5.
Use of implicit split to @_ is deprecated at - line 5.
ってワーニングでるし思考停止しかけてたから無名配列作ったんだけど
326デフォルトの名無しさん:2007/08/31(金) 14:02:31
tr|/|/| ってのもいいかもね。
@pathの中に "/" が含まれていたらただのsortと同じになるので、
そんなのも考慮するなら、再帰的に作るしかない気がします。
327デフォルトの名無しさん:2007/08/31(金) 17:08:25
>>325
$cache{$a} ||= @_ = split m{/},$a
328デフォルトの名無しさん:2007/08/31(金) 17:34:23
トラブって原因探るときに美が邪魔をするんだよねwww
329デフォルトの名無しさん:2007/08/31(金) 17:36:17
ひさしぶりにperlでプログラム書いたら、== と eq があるの忘れててはまった。
330デフォルトの名無しさん:2007/08/31(金) 17:46:41
== と === がある言語ではまったとか書けばいい?
331デフォルトの名無しさん:2007/08/31(金) 18:06:46
あぁ、ナポリタン喰いてぇ
332316:2007/08/31(金) 18:19:19
Acme::Morseがスパゲティぽくていいと思うんだ
333デフォルトの名無しさん:2007/08/31(金) 19:08:13
ちょw
Damian Conway www
334デフォルトの名無しさん:2007/08/31(金) 22:38:16
 perlで「No such file or directory」のエラーが出る。このエラーは、Windowsでは
不可避なのだろうか?例えばc:/倉庫別棚卸し表のディレクトリーでPrint "hello!";の
1行からなるperlのプログラムを仮にa.plで保存する。そしてperl a.plを実行させる
と、No such file or directoryのエラーが出る。これをディレクトリーの名前を倉庫
別棚卸し表から倉庫別棚卸しに変更して上記のa.plを実行させると正常に動作する。

 理由は、ディレクトリーの表のシフトJISの内部コードは955Cで最後の5Cは
アスキーの¥となっている。その為にエラーとなっているが、これを回避する方法は無
いのだろうか?
335デフォルトの名無しさん:2007/08/31(金) 22:54:57
perl "c:\倉庫別棚卸し表\perl a.pl"
336デフォルトの名無しさん:2007/09/01(土) 05:44:46
 素早い対応、有り難う御座いました。 確かに、perl C:/倉庫別棚卸し表/a.plで動
きました。やはり、ディレクトリーの名前に\の5cが有るので、ディレクトリーをくっ
つけるしか他に方法は無いのでしょうか?

 質問の趣旨としては、それ以外で解決方法は無いのだろうかと思っていましたので。
例えばPerlの起動オプション...etcです。調べた結果は、見つからなかった物でしたか
ら。本当に、そうなのかなあと思って質問しました。

 本当に、perl a.plで動かす方法は無いのですね。どうも、有り難う御座いました。
337デフォルトの名無しさん:2007/09/01(土) 06:39:07
かなりの初心者なんですがperlでは”複数の宛先に同時にpingを送る”といったようなことはできるのでしょうか?
338デフォルトの名無しさん:2007/09/01(土) 08:16:37
どの程度の同時?
339デフォルトの名無しさん:2007/09/01(土) 10:15:13
そういう関数が最初からあるのか、って意味でしょ?
340デフォルトの名無しさん:2007/09/01(土) 10:16:23
Same_Send_Ping (X, Y, Z, ,,,,);

使い方、X,Y,Zに、pingを送りたいあて先の
IPアドレスを書く。
341デフォルトの名無しさん:2007/09/01(土) 12:13:32
なにその関数名ふざけてるの?変態じゃないの?
342デフォルトの名無しさん:2007/09/01(土) 12:25:23
シャムシェイドピン
343デフォルトの名無しさん:2007/09/01(土) 13:03:15
Ethernetに同時なんて概念は存在しない
344デフォルトの名無しさん:2007/09/01(土) 13:10:16
ping 255.255.255.255
345デフォルトの名無しさん:2007/09/01(土) 15:23:25
>>344
それは複数じゃなくて全部じゃなかったっけ?
346デフォルトの名無しさん:2007/09/01(土) 16:10:12
たまにはMOSAIC.WAVの新曲の話とかしようよ
347デフォルトの名無しさん:2007/09/01(土) 20:11:25
がちゃがちゃぎゅ〜っと
ふぃぎゅあっと
348デフォルトの名無しさん:2007/09/01(土) 22:53:34
>337
catalystのサンプルにそんなのがあったかも
349337:2007/09/02(日) 01:37:14
>>337です。
外出してて遅くなりましたが返信くださった方々、ありがとうございました。
ちょっと言葉足らずですみません。

”同時”というイメージとしては並行処理です。
Aが送り終わったらB、ではなく、(もちろん多少のタイムラグはあるでしょうが)プロセスを複数動かしつづける、って感じです。
350デフォルトの名無しさん:2007/09/02(日) 01:57:29
>>349
threadsとNet::Pingを組み合わせれば簡単に出来る
のではないでしょうか。両者共標準モジュールです。
351デフォルトの名無しさん:2007/09/02(日) 02:11:28
オレ様が作ったSame_Send_Ping を使わないというのか!
352デフォルトの名無しさん:2007/09/02(日) 02:22:39
>>351 みたいなキマイラみたいな命名規則の言語ってあるの?
353337:2007/09/02(日) 02:30:33
>>350
ありがとうございます。
頑張ってみます。

354348:2007/09/03(月) 22:59:09
catalystでなくてPOEだったorz
355デフォルトの名無しさん:2007/09/03(月) 23:11:29
おい、五輪実況(男)で看板とか名無しとかLRとか決めるからおちょくりに来いよ
ヒント:なんかVIPの同盟国とかほざいてるから

http://live24.2ch.net/test/read.cgi/ootoko/1188634806/
356デフォルトの名無しさん:2007/09/04(火) 12:47:41
俺かなりのPerlエキスパートだけど
use strict, warningsは使わないよ
こんなの使って喜んでるうちは素人だね
357デフォルトの名無しさん:2007/09/04(火) 14:32:03
>>356
よろしければ理由をお聞かせ願えないでしょうか
358デフォルトの名無しさん:2007/09/04(火) 14:39:26
まぁ、俺くらいエクスパートになるとPerlは使わないよ
こんなの使
359デフォルトの名無しさん:2007/09/04(火) 15:03:38
それはよかったですね
360デフォルトの名無しさん:2007/09/04(火) 18:24:28
>>357
Perlらしさが損なわれる。
かえってコードが汚くなる。
361デフォルトの名無しさん:2007/09/04(火) 20:34:35
          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
362デフォルトの名無しさん:2007/09/04(火) 21:29:15
俺なんてActivePerlから perl.exe と perl58.dll だけ
取り出して使ってるぜ普段
strict なんて使おうにもそもそも無えwww
363デフォルトの名無しさん:2007/09/04(火) 22:46:40
オレなんか音声認識でコーディングしてるぜ
364デフォルトの名無しさん:2007/09/04(火) 22:55:37
365デフォルトの名無しさん:2007/09/05(水) 02:05:56
今年はPerl生誕20周年なのになんのイベントもなし?
Pythonは3が@バージョンだけど出たネ
366デフォルトの名無しさん:2007/09/05(水) 02:59:37
>>360
同意。
仕事で共同作業とか大規模プログラミングなら使う価値があると思う。

でも個人向けその場限りプログラムには正直要らない。
Perlらしいあの腐った文化を殺している。
いかにソースコードをPerlっぽく腐らせるかワクワクする楽しみがない。
367デフォルトの名無しさん:2007/09/05(水) 03:22:46
変な人がいる
368デフォルトの名無しさん:2007/09/05(水) 03:28:51
書くことは目的ではないのでね。 自分だけでやってて下さい
369デフォルトの名無しさん:2007/09/05(水) 05:33:02
>>360 のコピペにマジレスしてるのか乗っかってボケてるのかわからねえ
370デフォルトの名無しさん:2007/09/05(水) 06:21:24
それが少しでもマジレスと思えてしまうのがPerlなんだよな
371デフォルトの名無しさん:2007/09/05(水) 15:38:03
質問!

WindowsXP + ActivePerl5.8.8の環境でTerm::ReadLineを使ったスクリプトを書いてるのですが
readlineでプロンプト中にファイルをコンソールにドラッグしてファイルのパスを入力したいのですが
ドラッグされたファイルのパスが半角文字のみで半角スペースがなければうまくいくのですが、
パスの中に半角スペースや全角文字が入ってるとBEEPが鳴って正常にコンソールに入力できてなくて困ってます。
回避方法 or 代わりの方法を教えてください m( _ _ )m
372デフォルトの名無しさん:2007/09/05(水) 16:11:39
却下!
373デフォルトの名無しさん:2007/09/05(水) 16:18:20
6ってどうなるんだろうね
374デフォルトの名無しさん:2007/09/05(水) 16:51:03
%
375371:2007/09/05(水) 17:04:46
>>372
却下ですか!? orz
376デフォルトの名無しさん:2007/09/05(水) 17:55:08
もちろんそうよ
377デフォルトの名無しさん:2007/09/05(水) 18:13:54
PERLで画像のアップロードのCGIのことでわからないんですが
教えてくれる暇な方いらっしゃいますか?
378デフォルトの名無しさん:2007/09/05(水) 18:16:16
>>377

いない
379デフォルトの名無しさん:2007/09/05(水) 18:17:19
こまった・・
380デフォルトの名無しさん:2007/09/05(水) 18:26:51
なぜ、いないのか教えてやろう。
そんなことは、Perl/CGIの入門ホームページを見れば、必ず書いてあるからだ。
381デフォルトの名無しさん:2007/09/05(水) 18:29:15
じゃあPerl/CGIの入門ホームページのURL教えてくれ
382デフォルトの名無しさん:2007/09/05(水) 18:32:45
評価コメント付きでたのむ
383デフォルトの名無しさん:2007/09/05(水) 18:43:27
ちんこちんこちんこ
384デフォルトの名無しさん:2007/09/05(水) 19:17:24
385デフォルトの名無しさん:2007/09/05(水) 19:59:28
ワンセンテンスに「ですが」を3つも入れられると切れそうになる
386デフォルトの名無しさん:2007/09/05(水) 21:48:06
P
387デフォルトの名無しさん:2007/09/05(水) 21:53:20
すみません。
rootのWEBディレクトリに設置しているPerlを実行して一般ユーザーのディレクトリ(/home/user/public_html/)のパーミッションを変更するにはどうしたら良いのでしょうか?
また、サーバーをシャットダウンさせる方法も教えて頂けると幸いです。
388デフォルトの名無しさん:2007/09/05(水) 21:57:28
バッククォート
389デフォルトの名無しさん:2007/09/06(木) 00:21:00
>>387

コマンドラインならsudo付けてやればよくね?

CGIなら、Apacheの実行ユーザーをrootにするとか。危険だけど。
390デフォルトの名無しさん:2007/09/06(木) 00:53:48
>>388,389
サンクス!
でもバッククォートじゃ動作しなかったし、Apacheの実行ユーザーをrootにするのはやっぱ危険だし、sudoつかってapacheに
shutdown -h nowを許可してみたけど、いざ動かしてみてもシャットダウンされない…
ちなみにソースはこんな感じ。
#!/usr/bin/perl
print `shutdown -h now`;
print "Content-type:text/html\n\n";
print "OK";

OKは表示されるんだけどねぇ…
391デフォルトの名無しさん:2007/09/06(木) 01:09:52
>>390
>#!/usr/bin/perl

#! sudo /usr/bin/perl
にしてみたら?
392デフォルトの名無しさん:2007/09/06(木) 01:25:11
>>391
500エラーとなってしまいました…。
393デフォルトの名無しさん:2007/09/06(木) 03:10:04
>>392
・apacheのプロセスでsudoやshutdownのPATHは通ってるか?
・sudoはapacheのプロセスから利用できる設定になってるか?
・sudoはapacheのプロセスからパスワードレスで利用できる設定になっているか?
を確認してみ。
あと重要な手がかりなので、実行したときのapacheのエラーログも確認し、報告しようね。

394デフォルトの名無しさん:2007/09/06(木) 03:14:48
print `shutdown -h now`; って…
shutdownのパスは通ってるの?
それから、こんなことしてもしSTDOUTに何か出力されたらServerErrorですぜ。
そもそもCGIでシャットダウンするのってどうよ。
395393:2007/09/06(木) 03:23:30
一部訂正 + 補足

>・apacheのプロセスでsudoやshutdownのPATHは通ってるか?
CGIで$ENV{PATH}を出力すれば確認できる。
PATHが通ってなかったらsudoやshutdownをフルパスで書く or PATHを通した状態でapacheを起動

>・sudoはapacheのプロセスから利用できる設定になってるか?
>・sudoはapacheのプロセスからパスワードレスで利用できる設定になっているか?
×apacheのプロセス
○apacheのプロセスのユーザー権限
396デフォルトの名無しさん:2007/09/06(木) 12:33:24
エラーログにはこんなのが残っていました。
やはりまだapache権限でshutdownを実行できないようです。
[Thu Sep 06 11:06:56 2007] [error] [client 192.168.11.9] shutdown: you must be root to do that!
shutdownは/sbin/shutdownで
sudoは/usr/bin/sudoです。
PATHは/sbin/と/usr/bin/、他、に通っています。

visudoに以下を追加して実行
apache ALL= NOPASSWD: /sbin/shutdown -h now

errorログ
[Thu Sep 06 11:29:56 2007] [notice] caught SIGTERM, shutting down
[Thu Sep 06 11:29:56 2007] [notice] SELinux policy enabled; httpd running as context root:system_r:httpd_t
[Thu Sep 06 11:29:57 2007] [notice] Digest: generating secret for digest authentication ...
[Thu Sep 06 11:29:57 2007] [notice] Digest: done
[Thu Sep 06 11:29:57 2007] [notice] Apache configured -- resuming normal operations
[Thu Sep 06 11:30:11 2007] [error] [client 192.168.11.9] shutdown: you must be root to do that!

SeLinuxが邪魔してる?
でもSELinuxはpermissive
もう何が何だか…
397デフォルトの名無しさん:2007/09/06(木) 13:11:15
あきらめてSSH使ったら?
398デフォルトの名無しさん:2007/09/06(木) 13:15:54
>>397
うーん。SSHは勉強してないから敬遠していたけど、この機会に少し触ってみることにします。
みなさん協力ありがとうございました。
399393:2007/09/06(木) 13:19:01
SELinuxは使ったことないので詳しくは分からんしディストがわからんのでFedora前提でいくと
/etc/sysconfig/selinux
のSELINUXの値をdisabledにし、OS再起動してGRUBのブートパラメータにselinux=0と入力したらどうなる?

参照
http://www.selinux.gr.jp/documents/FC3-SELinuxmemo.html#1-7
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/332vtextgrub.html
400398:2007/09/06(木) 13:19:16
あ。SSIとSSHを読み違えてしまった
401デフォルトの名無しさん:2007/09/06(木) 15:04:28
( ^ω^)おっおっおっ
402364:2007/09/06(木) 15:32:25
質問!
if (!open
どういう意味ですか?
403デフォルトの名無しさん:2007/09/06(木) 15:52:21
404デフォルトの名無しさん:2007/09/06(木) 22:40:19
質問させて下さい

phpで外部のサイトやURLを取り込むには、includeなどを使いますが
cgi(perl)ではどのようにして外部ファイルを取り込むのでしょうか?
menu.cgiというテーブルタグで作ったコンテンツメニューを123.cgi(掲示板など)に読み込みたいのですが
検索をしてもうまくヒットしません。
アドバイスをお願いします><
405デフォルトの名無しさん:2007/09/06(木) 23:29:58
>>404
>>7を穴の開くほど読む
406デフォルトの名無しさん:2007/09/06(木) 23:43:47
すいませんスレ違いってことですよね。
理解できなかったので失礼します。
jsで読みこみます;;
407デフォルトの名無しさん:2007/09/06(木) 23:52:52
マニュアルもテンプレも読めないバカは死んだ方が良いと思います><
Perlの関数なんて大した数じゃないんだから一覧表でも見ろよ。
408デフォルトの名無しさん:2007/09/07(金) 00:09:45
何かいらいらしてるのが一人だけいるなw
何かあったのか?
ゆとりぐらいもとうぜ
409デフォルトの名無しさん:2007/09/07(金) 00:30:23
Perlのソースなんて数万行なんだから嫁よ
410デフォルトの名無しさん:2007/09/07(金) 08:48:47
それでも答えないお前らにバロス
411デフォルトの名無しさん:2007/09/07(金) 09:21:16
逆に頭の悪い奴が一人
居るように見えるのだけど…
それも煽り目的で常駐してる…
412デフォルトの名無しさん:2007/09/07(金) 11:53:03
今気付いた。もしかして、ソースを読み込もうとしてるんだろうか。
413デフォルトの名無しさん:2007/09/08(土) 08:19:22
たくさんのレスありがとうございます
メニューを書いて呼びこむつもりでした
414デフォルトの名無しさん:2007/09/08(土) 09:52:30
まぁ、requireなんだけどな。
415デフォルトの名無しさん:2007/09/08(土) 10:57:50
質問を見る限り、他サイトのCGIを読み込もうとしてるから、requireだときつくないか
416デフォルトの名無しさん:2007/09/08(土) 11:18:05
>>404

PHPのincludeってローカルファイルだけじゃなくてHTTP経由でも取り込めるのな。
知らなかった。
http://us3.php.net/include/

Perlだと、ローカルファイルはrequireかuseで取り込めるけど、HTTP経由だとLWPで取得してevalするとかになるかな。
PHPのように組み込み関数で一発というわけにはいかない。
http://homepage3.nifty.com/hippo2000/perltips/LWP/UserAgent.html
417デフォルトの名無しさん:2007/09/08(土) 11:19:13
だとしたらきついとかきつくないの問題ではないだろ・・・
418デフォルトの名無しさん:2007/09/08(土) 11:28:29
いいかげん WebProg 行けよ。
419デフォルトの名無しさん:2007/09/08(土) 11:41:04
>>416さん
ありがとうございます
その回答が完璧です!
感謝してます
420デフォルトの名無しさん:2007/09/08(土) 11:57:32
__EOF__ってなにか有用な利用法はあるんですか?
ぐぐっても"perl __EOF__"じゃなにも出てこなかったので
421デフォルトの名無しさん:2007/09/08(土) 12:07:03
422デフォルトの名無しさん:2007/09/08(土) 12:08:52
ヒアドキュメントで検索しろ。
$string = '__EOF__';

   こういうこと

__EOF__
423デフォルトの名無しさん:2007/09/08(土) 12:12:14
ActivePerlではバッチファイルにPerlコード埋め込むのに__EOF__使ってたな確か
424デフォルトの名無しさん:2007/09/08(土) 12:26:12
>>420
DATA __END__で検索しろ。

>>421-412
嘘を言うなよ。
425デフォルトの名無しさん:2007/09/08(土) 12:35:30
>>424
おいおい、、、__E「O」F__ と __E「N」D__を混乱するんじゃないよ。
普通の perl に __EOF__ なんてリテラルトークンなかったはずだけど?
Programming Perl に記載されてんのは以下。
__DATA__,
__END__,
__LINE__,
__PACKAGE__,
__FILE__
426デフォルトの名無しさん:2007/09/08(土) 13:37:04
>>425
> おいおい、、、__E「O」F__ と __E「N」D__を混乱するんじゃないよ。

怪奇なり
427デフォルトの名無しさん:2007/09/08(土) 13:41:39
アホか
428デフォルトの名無しさん:2007/09/08(土) 13:47:10
Perlがアホなのはわかってたことだろ
429デフォルトの名無しさん:2007/09/08(土) 13:55:06
残暑が厳しいっすね
430デフォルトの名無しさん:2007/09/08(土) 14:26:12
Perl10っていつでるの?
$a = $a // $b;
とかsayを早く使いたいよ
431デフォルトの名無しさん:2007/09/08(土) 15:49:13
もういいよ。
つまんねーネタ晒すくらいなら黙ってろ
432デフォルトの名無しさん:2007/09/08(土) 15:55:07
>>430
>$a = $a // $b;

一瞬、コメントアウトしてるのかと思ったwww
433デフォルトの名無しさん:2007/09/08(土) 16:19:28
>>430
おまえが死んだ頃に出るよ
434デフォルトの名無しさん:2007/09/08(土) 16:20:18
>>431
「お前がつまらないと思った」という事実の報告はそれよりもっとつまらないのに、
なんで自分にだけは書き込みを許してるの?w
435デフォルトの名無しさん:2007/09/08(土) 16:23:32
431じゃないけど、それ以降くだらん書き込みを抑制したいから書き込んでるに決まってるだろ
436デフォルトの名無しさん:2007/09/08(土) 16:31:37
「黙ってろ」なんて煽り文句入れないでしょ、抑制したいなら。
437デフォルトの名無しさん:2007/09/08(土) 19:41:56
苛立ちをぶつけただけ
438デフォルトの名無しさん:2007/09/08(土) 20:01:04
perl5.10は10月予定だったろ
439デフォルトの名無しさん:2007/09/09(日) 03:37:41
精神障害者が多いスレですね。
440デフォルトの名無しさん:2007/09/09(日) 15:28:52
441デフォルトの名無しさん:2007/09/09(日) 20:08:03
俺も$a = $a // $bとsayは画期的だと思うわ。やったぜ!!
442デフォルトの名無しさん:2007/09/09(日) 20:14:47
久しぶりに来たらなんか荒れてるな
443デフォルトの名無しさん:2007/09/09(日) 21:13:28
外部辞書データを取り込んで、それをトリップキーとして使い
指定したトリップを検索できるプログラムはperlで書けますよね?
意味伝わってますか?(^_^;
444デフォルトの名無しさん:2007/09/09(日) 21:27:29
>>443

全く分からん。
どっか行け。
445デフォルトの名無しさん:2007/09/09(日) 21:54:40
>>443
出来る。
でも、取りあえずもうちょっと意味が通る文にしてくれ。
郵便番号トリップ検索でも行いたいのかしら。
446デフォルトの名無しさん:2007/09/09(日) 22:34:18
>>441
おまえは基礎からやり直せ
447デフォルトの名無しさん:2007/09/09(日) 23:28:17
>>444
すみません。
(;^-^)_旦""

>>445
あざすっ!
TripcodeExploreやtrip-mona等、トリップを解析するソフトウェアがあるのですが
それらは知ってますか?
448デフォルトの名無しさん:2007/09/09(日) 23:33:59
だからまともに質問できないやつはどっかに行けっての
449デフォルトの名無しさん:2007/09/09(日) 23:48:22
知ってますか?ってなんだよ。アホか。
450デフォルトの名無しさん:2007/09/10(月) 06:17:48
>>443
辞書を順番にトリップに変換して検索したいパターンにマッチするか試すだけだろ?
トリップへの変換方法は「perl crypt トリップ」あたりで検索。
451デフォルトの名無しさん:2007/09/10(月) 08:12:27
検索してもわからないから聞いてるんじゃないですか(^_^;
もっとわかりやすくおしえてくださいm(_ _)m
452デフォルトの名無しさん:2007/09/10(月) 09:07:49
>451
なら、先ずはもっとわかりやすくしつもんしてくださいm(_ _)m
453デフォルトの名無しさん:2007/09/10(月) 09:13:08
十分わかりやすいんでどう言えばいいのやら(^_^;
わかる方おしえてくださいm(_ _)m
454デフォルトの名無しさん:2007/09/10(月) 09:22:25
>>451
どうやって、どこまで調べて、どこが分からなくて詰まったのかを説明すればいいじゃないですか(^_^;
荒らしなら他のスレに往って下さいm(_ _)m
455 ◆PQZNeK2U46 :2007/09/10(月) 09:24:26
>>450
ありがとうございます!
聞きたかった事はまさにそれです!
>>451は別人です。
456デフォルトの名無しさん:2007/09/10(月) 09:25:32
>>453
おまえ以外だれも理解できてる奴がいない状況で「十分わかりやすいんで」ってかなりな幸せ回路をおもちですね(^_^;
何を教えてほしいのかわからないのでおしえようがありません、荒らしはうざいのでさっさと消えてくださいm(_ _)m
457デフォルトの名無しさん:2007/09/10(月) 09:36:12
>>456
理解してレスした人が居る上でその発言かよ
よほどの脳無しだな
458 ◆PQZNeK2U46 :2007/09/10(月) 09:38:04
>>450
トリップは以下のコードで生成されるらしいのですが、これに辞書からトリップを作る機能を付け加えるとなると、難しいですか?

$tripkey = "#istrip";
$tripkey = substr($tripkey,1,);
$salt = substr($tripkey.'H.',1,2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = crypt($tripkey,$salt);
$trip = substr($trip,-10);
$trip = '◆'.$trip;
print "$trip";
459デフォルトの名無しさん:2007/09/10(月) 09:41:11
とても簡単ですよ
Perlができる人にとっては
460デフォルトの名無しさん:2007/09/10(月) 10:11:09
jperlって、なんでずっと更新されないままなんですか?
461デフォルトの名無しさん:2007/09/10(月) 10:22:06
>460
jperl でしたいことは 5.8 なら大抵自前で出来てしまうから。
462デフォルトの名無しさん:2007/09/10(月) 12:12:44
>>458
一分もしない内に書けるけどここは学ぶ気がある人のためのスレだから。
open while chomp print
463デフォルトの名無しさん:2007/09/10(月) 12:14:47
>>460
Shift_JISの問題は日本国内だけのローカルな話で需要として少ない上
本家がUTF-8に対応し更にShift_JISに限らずマルチバイト全般の処理方法を組み込んだから。
jperl自体、もともと需要が少なかったからしょうがないな

464 ◆PQZNeK2U46 :2007/09/10(月) 17:45:24
>>462
あざすっ!
三つ目のchompがどう必要なのかわかりませぬ。。
分割文字列の削除?ですか?
465デフォルトの名無しさん:2007/09/10(月) 18:30:06
人の話聞いてなくてワラタ
466デフォルトの名無しさん:2007/09/10(月) 20:50:48
配列を使ったスクリプトを作りたいのですが
配列で特定の部分だけを$hairetu[3] = '';という風に「空で」はなく、
「未定義値」にすることはできないのでしょうか。
検索してできたもので
undef($hairetu[3]);などとやってみましたが上手くいきませんでした。
未定義値できる方法があったら教えてください。
よろしくお願いします。
467デフォルトの名無しさん:2007/09/10(月) 20:59:26
普通にそれで未定義値になったけど
undefを代入したり、splice使う手もあるけど
468デフォルトの名無しさん:2007/09/10(月) 21:01:26
>>466
定義されてるかどうかはdefinedを使う
469デフォルトの名無しさん:2007/09/10(月) 21:11:22
◆PQZNeK2U46 ってもしかしてオク板の人かな
470デフォルトの名無しさん:2007/09/10(月) 21:28:46
>>467-468
>>468のdefinedを使ってみたら確かに偽になっていました。
最初から目的が未定義値にする、とだけ考えていたので
どうやら目的が違ったのかもしれません。一度、最初から考え直します。
>>467に書かれている代入とspliceというのも検索で調べてみようと思います。
返答ありがとうございました。

471デフォルトの名無しさん:2007/09/11(火) 20:09:44
自分で調べろ
472 ◆PQZNeK2U46 :2007/09/11(火) 20:40:32
お前らが俺にperlを親切に教えたくなるプログラムはperlで出来ますか?
返答次第じゃ、お前らを皆殺しにするCGIをケントに書いてもらいます。
宜しくお願いします。
473 ◆PQZNeK2U46 :2007/09/11(火) 20:44:52
今のケントは黒い目的のCGIでも喜んで書くよ。
PHPに押されてすっかり息を潜めた古文を守る為ならば、悪魔に魂を注げる男だからね。
とりあえずお前らは俺に謝った方がいい。
そして例のプログラムを書くよろし。
474デフォルトの名無しさん:2007/09/11(火) 20:53:15
お前が俺にperlを親切に教えたくなる質問は日本語で出来ますか?
475 ◆PQZNeK2U46 :2007/09/11(火) 20:54:00
愚鈍なお前らの為に、しばし時間を与えてあげます。
その間によく考えてください。
家族から先に殺すCGIをケントは知ってます。
ウェッブから殺す事が可能です。
俺の怒りがある値よりも大きい間、お前らと家族を探して
心臓麻痺で殺すプログラムです。
476 ◆PQZNeK2U46 :2007/09/11(火) 20:57:38
>>474
日本語ぉk?
477デフォルトの名無しさん:2007/09/11(火) 20:58:12
くる〜きっとくる〜
478デフォルトの名無しさん:2007/09/11(火) 21:02:57
>しばし時間を与えてあげます
って言ったくせに嘘つきー。
オレの家族さっき心臓麻痺で死んじゃったよ。
どうしてくれんだよ。
479 ◆PQZNeK2U46 :2007/09/11(火) 21:15:27
家族を生き返らせるプログラムを書いたらどうですか?
PHPなら簡単にできますが、お前らの知っている古文では難しいですか?perlはもはや風前の灯
perlの事はケントとお前らに任せて
俺はPHPを勉強しています。
perlは勉強するつもりがないので、お前らの出番です教えてください。
どうせ暇でしょう?
480デフォルトの名無しさん:2007/09/11(火) 21:20:10
厨丸出しの質問してたのを誤魔化そうと必死だな
481デフォルトの名無しさん:2007/09/11(火) 21:22:46
なかなか釣れませんねぇ。
釣り場を変えてみたらどうですか?
482 ◆PQZNeK2U46 :2007/09/11(火) 21:35:22
士農工商えたperlの分際でPHPを勉強し始めた僕に頭が高いですよ。
お前らは牛馬を屠殺したり革を鞣すプログラムでも作ってるよろし。
483デフォルトの名無しさん:2007/09/11(火) 21:40:29
よし、明確に宣言してやろう

みんな、スルーだ
484 ◆PQZNeK2U46 :2007/09/11(火) 22:02:03
$方針=スルー;
for($方針=教える;$方針>俺の理解;優しさ++){
if(俺の理解==お前らの知識){
System.out.print(゙ありがとゔ)
485 ◆PQZNeK2U46 :2007/09/11(火) 22:11:45
お前ら本当にごめんなさい。
俺本当はperlが好きです。でもPHPの方がもっと好きぃ。
見たでしょあの解読不能なプログラム。
俺はエスパーだからわかるけど、例のトリップのプログラムだけはわからない。
いじわるしないで教えてよ。ケントに言い付けるよ?
486デフォルトの名無しさん:2007/09/11(火) 22:34:15
-s でファイルサイズを取ろうとしたら2G以上のファイルは見れないんだが
5.8に上げたら見える?

5.8だとどこまでという制限はあるんでしょうか?
2Gのままだと厳しい・・
487 ◆Z4QrFDzwrY :2007/09/11(火) 22:59:37
>>485
お前蛇語のパームがそんなに好き?
めがねはいじわるじゃかるたねえ?
でしたらやるよ俺いやだから
とっとと帰ると意味分からない
488デフォルトの名無しさん:2007/09/11(火) 23:23:51
解読不能ってwwww
ほぼcryptしか意味なしてねーじゃねーかwwww
489 ◆PQZNeK2U46 :2007/09/12(水) 00:00:10
お願い教えて。
perlしか能のないお前らが職と希望を無くして樹海行きのバスに乗る前に教えてよ。
PHPを勉強中の俺はお前らのこと忘れないよ。
いつか俺がPHPを極めたら、perlの人達を成仏させるプログラムを組むね。PHPでゲラ。
さて、そろそろ教えて。
490デフォルトの名無しさん:2007/09/12(水) 00:32:52
491デフォルトの名無しさん:2007/09/12(水) 00:36:45
>>489
後の世の人に教えてもらったら?
492デフォルトの名無しさん:2007/09/12(水) 03:15:38
まーた小学生が暴れてるのか
全力で構ってやるわド低能が
493デフォルトの名無しさん:2007/09/12(水) 05:46:20
ケントに教えてもらえよ。
494 ◆PQZNeK2U46 :2007/09/12(水) 11:10:59
ケントに教えてもらったら金がかかるだろ。
perlの分際で金を取ろうなんて
ぶっちゃけ、おこがましいと思う。
いずれ僕がPHPを極めたら、僕のDeathScriptにケントの名前を書込みます。
そして人生をやり直せるCGIを書いてお金儲けをします。
perlの人間の長蛇の列ができる事でしょうね。
生まれ変わったらPHPを勉強してください。
能力次第では雇ってあげます。
495デフォルトの名無しさん:2007/09/12(水) 13:31:54
お断りします。
496デフォルトの名無しさん:2007/09/12(水) 13:40:50
PHPが分かるんならPHPでやればいいじゃん
497デフォルトの名無しさん:2007/09/12(水) 13:44:00
こういう性格だとプログラミングできないわ
できるやつは普通に高い本とかがんがん買ってる
498デフォルトの名無しさん:2007/09/12(水) 13:54:13
Perlなんてマニュアルウェブにあるんだから買わずとも。
499デフォルトの名無しさん:2007/09/12(水) 14:00:33
本とwebのマニュアルは用途が違うだろ
500 ◆PQZNeK2U46 :2007/09/12(水) 14:00:37
お前馬鹿だろ?
perlにかける金はねーって事を言ってんだよ。
読解力のない奴だな。
プログラムが無理なのはお前だろ。
お前仕事できないだろ?
501 ◆PQZNeK2U46 :2007/09/12(水) 14:05:37
>>497
お前ホントに馬鹿だろ?
今時perlの勉強に金かけてる奴は負け組だから。
perlに金使うぐらいならユニセフに寄付した方がマシですから。
502 ◆PQZNeK2U46 :2007/09/12(水) 14:17:01
perl勉強するならナデシコ勉強する方がまだ将来性あるよ。
馬鹿だよね。お前らって。
もう終わりそうなperlのスレなんか立てて
perlに必死にしがみついてさ。
そんなにperlが好きなら運命を共にしなよ。
503デフォルトの名無しさん:2007/09/12(水) 14:34:54
もうPHPも挫折したんか?
504 ◆PQZNeK2U46 :2007/09/12(水) 14:42:19
人の事より自分の心配しなよ。
perl勉強して人生挫折したカスに心配されたくない。
505デフォルトの名無しさん:2007/09/12(水) 14:48:56
PHPじゃなくてRubyにいっとけば、そのものずばりのライブラリがあったのにね
506 ◆PQZNeK2U46 :2007/09/12(水) 14:51:40
沈没寸前のperl号にいつまでもしがみついてろよカス共。
先見力のある僕はPHP号に乗船します。
あと僕はJAVAも勉強します。お前らはせいぜいJAVAscriptでも勉強してろってこった。
507 ◆PQZNeK2U46 :2007/09/12(水) 14:54:51
rubyには明るい未来がありますか?
508デフォルトの名無しさん:2007/09/12(水) 14:56:03
PHPにも挫折するなんて!!
509デフォルトの名無しさん:2007/09/12(水) 15:00:38
何かしらんが、ご本人さん よっぽど傷付いたんだろなw
510デフォルトの名無しさん:2007/09/12(水) 15:42:10
書き込む時間があるなら調べればいいのに・・・
511デフォルトの名無しさん:2007/09/12(水) 15:45:26
Perl、PHP、Rubyなら明るい未来が待ってるのはRubyだろうな
512デフォルトの名無しさん:2007/09/12(水) 15:49:56
Pythonだろ常考
513 ◆PQZNeK2U46 :2007/09/12(水) 15:56:07
いや、ナデシコだろ。
514デフォルトの名無しさん:2007/09/12(水) 16:47:41

やあ、 ◆PQZNeK2U46 さん、こんばんわ。
今日も粘着させて頂きますので宜しくお願いしますね。
515 ◆PQZNeK2U46 :2007/09/12(水) 17:22:22
やめてよ。
516デフォルトの名無しさん:2007/09/12(水) 17:39:22
PHPで頑張ってください!
心の中で応援しています!!

517デフォルトの名無しさん:2007/09/12(水) 17:49:33
未だに勉強しますの段階じゃ話になんねえの
さっさと巣に帰れ
まあ自分でプログラミングむいてないのは気づいてるようだが・・・
518デフォルトの名無しさん:2007/09/12(水) 17:54:10
>>498
ウェブサイトとか一通り呼んでからラクダ本とか読んでも知らなかったことだらけだよ。
519 ◆PQZNeK2U46 :2007/09/12(水) 18:02:17
>>517
いや、勉強してますから。
高校の勉強と平行してやってます。
520デフォルトの名無しさん:2007/09/12(水) 18:10:49
この文章力で高校生なんですか
プログラミングの勉強以前に
義務教育からやり直した方がいいと思いますよ
521デフォルトの名無しさん:2007/09/12(水) 18:14:55
今日 学校は?
522デフォルトの名無しさん:2007/09/12(水) 19:40:52
学校行かずに引きこもって2chで粘着かよ。
523デフォルトの名無しさん:2007/09/12(水) 19:57:26
俺は中学の時には部室(PC室)でプログラミングしてたもんだ
524デフォルトの名無しさん:2007/09/12(水) 20:29:57
>>486
環境依存。
5.6でも5.8でもファイルサイズは(statのst_sizeフィールドの大きさに応じて)
NV 又は IV で受けている。
実際の制限はconfigモジュールで確認するといいよ。
(fpossize lseeksize ivsize ivtype nvsize nvtype あたり)
525 ◆PQZNeK2U46 :2007/09/12(水) 22:43:19
>>524
正解。
そう。環境依存だね。
526デフォルトの名無しさん:2007/09/12(水) 22:53:30
いつまでも引きこもりの子供をかまうなよ。児童虐待だろ。
527デフォルトの名無しさん:2007/09/12(水) 23:27:29
>>524
ありがとうございます。
環境はWindows2003なのですが、調べてみます。
528デフォルトの名無しさん:2007/09/13(木) 00:16:12
>>519
うんがんばれよ
多言語批判とかまだ早いから寄り道すんな
529デフォルトの名無しさん:2007/09/13(木) 00:17:07
他言語・・・まあいいか
530 ◆PQZNeK2U46 :2007/09/13(木) 00:43:50
String thx = ゙ありがとゔ;
return thx;
531デフォルトの名無しさん:2007/09/13(木) 00:56:18
>>519
perlの勉強をただで教えてもらえる方法を教えてやろか?
532デフォルトの名無しさん:2007/09/13(木) 08:48:44
> perlの勉強をただで教えてもらえる方法を教えてやろか?

尻を提供する。

ウホッ!
533デフォルトの名無しさん:2007/09/13(木) 09:04:46

525 名前: ◆PQZNeK2U46 [] 投稿日:2007/09/12(水) 22:43:19
>> 524
正解。
そう。環境依存だね。
534デフォルトの名無しさん:2007/09/13(木) 09:26:22
perl のscriptにGUIをかぶせる一番楽な方法ってなんでしょうか?
535デフォルトの名無しさん:2007/09/13(木) 09:59:47
>>534

CGI
536 ◆PQZNeK2U46 :2007/09/13(木) 11:26:04
>>531
教えてください!JAVAも教えてもらえますか?
537デフォルトの名無しさん:2007/09/13(木) 11:43:45
ぐぐる。これ一番。
538デフォルトの名無しさん:2007/09/13(木) 11:47:14
ちょっとでも思わせぶりな餌があると良く食い付くなあ
539デフォルトの名無しさん:2007/09/13(木) 12:12:49
>>534
>>535
いえ、そうじゃなくて
MFCとかC#とかいろいろローカルなプログラムとして扱う方法で
bestなのも
http:://localhost:適当なポート
にcgiアクセスなのでしょうか?

そうするとPOPFileとかとぶつかってあんまり嬉しくないんです
540デフォルトの名無しさん:2007/09/13(木) 12:24:12
聞いてもあんたにゃ無理だよ。
541デフォルトの名無しさん:2007/09/13(木) 12:32:55
>>539
作る内容にもよるけど、GUI初心者が一番楽なのはCGIだと思うよ。
perl gui とかでググって、どんな方法があるのかくらいは調べたら?
542デフォルトの名無しさん:2007/09/13(木) 12:38:02
Flashとか。
543デフォルトの名無しさん:2007/09/13(木) 12:43:53
ごめん、CGIって意味が分からん
544デフォルトの名無しさん:2007/09/13(木) 12:47:25
Perl/TkとかWin32::GUIとかwxPerlとか
545 ◆PQZNeK2U46 :2007/09/13(木) 12:58:38
人の向上心に付け込むその卑劣な釣りはケントの入れ知恵ですか?
さもなくば、とほほの入れ知恵ですか?
真なら首謀者を殺します。
546デフォルトの名無しさん:2007/09/13(木) 13:27:58
向上心あるならちゃんと学校行けよ
547 ◆PQZNeK2U46 :2007/09/13(木) 13:33:58
お前らの中でまたperlの時代が来ると勘違いしている大うつけはいますか?
本当にPHP大丈夫なのかな。心配になってきた。
PHPとmySQL勉強しとけば引く手数多だと高校の友達は言うが、誰の言葉の受け売りなんだろう。
やっぱり無難にJAVA勉強した方がいいのかな。
負けから色々学んだperl組のお前らはどう思いますか?
548 ◆PQZNeK2U46 :2007/09/13(木) 13:39:40
俺嫌だよ。
PHP極めて就職した後に違う言語にその座を奪われて
俺みたいな童貞工房に馬鹿にされるの絶対嫌だ。
お前ら教えて。俺はどうしたらいい?
549デフォルトの名無しさん:2007/09/13(木) 13:53:43
いいえ、それはトムです。
550デフォルトの名無しさん:2007/09/13(木) 14:12:16
1つできれば後の移行は比較的楽だよ
勉強するんだ!!って意気込みよりも
コレを作りたい!っていうほうが向上すると思う。
551デフォルトの名無しさん:2007/09/13(木) 14:21:51
Perl だ! PHP だ! なんて言い争いは数年前の話かな

PHP と DB (初歩的な SQL 必須) とソケットが扱えないと引く手数多とはならない
殆どの言語の構文は模倣 (いいところ取り) なので、1つの言語をそこそこ覚えてれば順応はできるかと
C++ で Windows と Linux でのマルチプラットフォームで動くソフトが作れればかなり重宝される
552デフォルトの名無しさん:2007/09/13(木) 14:26:22
>>551
鯖アプリなら大抵はJavaやLL言語で用が足りるし
(会社によっては未だにTPモニタ+COBOLかもしれんが)
X用のクライアントアプリを今時業務で作ることなんてほとんどないと思ってたが
553デフォルトの名無しさん:2007/09/13(木) 14:50:49
ActivePerlの Perl Package Managerで既存のパッケージをいろいろ見てるけど
テキスト処理 自然言語処理 Web系の充実は異常
要はアルゴリズムがインプリメントされていさえすれば
言語はなんでもいいんだからPerl最強と思ってしまう

c++のboostだってここまで充実してない
554デフォルトの名無しさん:2007/09/13(木) 16:57:36
>> ◆PQZNeK2U46

建築現場で働くか、首吊るか、好きな方を選べ。
555デフォルトの名無しさん:2007/09/13(木) 17:05:20
>>550-554
オマエら釣られすぎ。
556デフォルトの名無しさん:2007/09/13(木) 19:02:48
ということにしたいのですね。
557デフォルトの名無しさん:2007/09/13(木) 19:15:17
しばらく来なかったらただの糞スレに成り下がってる・・・
558デフォルトの名無しさん:2007/09/13(木) 19:16:48
>>553
テキスト処理ならわかるが、自然言語処理って何?
それって英語圏専用のテキスト処理技術じゃないの?
559デフォルトの名無しさん:2007/09/13(木) 19:32:07
>>557
よくあること。元々過疎スレなんだから、
一人で荒らしてグダグダにするのなんて
誰でも出来る簡単な事。それをたまたま今回
頭の悪い工房がやっただけでしょ。珍しくも無い。
560 ◆PQZNeK2U46 :2007/09/13(木) 19:32:34
一番やりたいのはWEB関係の仕事だけど、JAVAで携帯電話関係の仕事もしてみたい。
JAVAとPHPならどっち?
収入とか将来性とか。
JAVAのプログラマーだと月収50万円ぐらい稼げるって聞いたんだけど、
PHPでもそれぐらい稼げる?
関係ないけどケントはperlだけどケッコー儲けてるよね。
561デフォルトの名無しさん:2007/09/13(木) 19:35:55
(´-`).。oO(「挫折」が怖くて逃げ回るのは、ゆとりろ教育の弊害か、お坊ちゃん育ちの某首相と同じ狢か。。。)
562デフォルトの名無しさん:2007/09/13(木) 19:41:48
ゆとりろ
563デフォルトの名無しさん:2007/09/13(木) 19:46:25
>>560
まじめに質問するつもりなら他のスレで聞け
564デフォルトの名無しさん:2007/09/13(木) 19:46:48
こいつずっと PHP、JAVA、ケントの話題で煽ろうとしてる。
釣りだから相手すんなよ。
565デフォルトの名無しさん:2007/09/13(木) 20:03:26
断る
566デフォルトの名無しさん:2007/09/13(木) 20:31:18
相手してるのは高校生の自演だろ?
567デフォルトの名無しさん:2007/09/13(木) 21:57:04
中退ヒキニートの薫りぷんぷんですがな
568 ◆PQZNeK2U46 :2007/09/13(木) 22:25:41
そうやって好きなだけ俺をイジメたらいいよ。
お前らがいつも会社でされてるみたいに。
569デフォルトの名無しさん:2007/09/13(木) 22:35:52
ここの人は、スルー力がないのかね?

ほっとけば、小学生と同じで飽きるんだよ。
570 ◆PQZNeK2U46 :2007/09/13(木) 22:58:17
みんな心に余裕があるから俺の事構ってくれるんだよ。
お前と違ってプッゲラ
571デフォルトの名無しさん:2007/09/13(木) 23:05:20
>>558
POPFile(Perlだよね)は日本語でも動くけど?
572 ◆PQZNeK2U46 :2007/09/13(木) 23:06:45
だいたい何だよその「スルー力」ってのは。
初めて聞いたよ。
「スルーできないのかね」でいいじゃん。アホですか?
いい歳して、渋谷の汚ギャルが使う様な訳のわからない言葉使うのやめたら?
だから仕事できないんだよお前は。馬鹿が。
死ね。

カス。
573デフォルトの名無しさん:2007/09/13(木) 23:14:16
中学生は、法律で仕事をすることが禁止されていますが、何か?
574 ◆PQZNeK2U46 :2007/09/13(木) 23:16:30
小学生って飽きなくね?
同じネタずーっと引っ張って楽しんでるよ小学生は。
そのトンチンカンな例え話し、どうにかできないの?
嫌味のつもりで小学生って言葉を使ってる時点でお前もスルーできてないしな。
火事になっちゃえ。
575デフォルトの名無しさん:2007/09/13(木) 23:16:49
芸能活動、非工業系は親の同意の元働くことができます。
無知ってやだね。
576デフォルトの名無しさん:2007/09/13(木) 23:17:29
おもれ〜

3分で釣れた
577デフォルトの名無しさん:2007/09/13(木) 23:21:42
cookieを要求するサイトにperlでアクセスするにはどうすれば簡単ですか?
IEのCookiesのファイルはあるので、それが利用できると尚いいです
578 ◆PQZNeK2U46 :2007/09/13(木) 23:48:44
「釣れた」って煽り、物凄く便利だよね。
「スルー力がないのかね」って大人ぶっておいて
結局自分自身がスルーできないアホが使う奥義。
579デフォルトの名無しさん:2007/09/13(木) 23:57:44
あぼーん大杉
自重汁
580デフォルトの名無しさん:2007/09/14(金) 00:04:25
日本語で形態素解析してドキュメントの特徴ベクトル作って、
ベイジアンネットワークで解析

とかするのがほとんど既存パッケージでできるPerlは最強
形態素解析だけはnaistの某研究室からcで書いてあるのとってこないといけないけど

全部cでやろうと思ったら死ぬ

pythonとかその辺りどうなんだろ
581デフォルトの名無しさん:2007/09/14(金) 00:34:49
>>579
それ、もしかして自分はスルーできてるつもりだったりする?
そうやって自分じゃ抜け穴くぐって言うこと言ったつもりの間抜けな反応が
一番楽しいって気づこうよ。知的障害者クン。
582デフォルトの名無しさん:2007/09/14(金) 01:41:48
>>580
専門的なのはよく知らないけど、
個人的には、基本的な配列操作をもっと簡単にしてくれ、と思う。
583デフォルトの名無しさん:2007/09/14(金) 08:57:23
>>582
具体例を挙げてみて。
これをこうしろと。
584デフォルトの名無しさん:2007/09/14(金) 09:03:31
585デフォルトの名無しさん:2007/09/14(金) 10:11:20
>>577
LWP::UserAgent 使ったら簡単だった。
586デフォルトの名無しさん:2007/09/14(金) 11:22:03
>>583
ある項目がリストに含まれているか調べる
リストの最大値の項目を得る
2つのリストの共通集合をつくる
リストの重複を除いたリストをつくる
多次元リストをつくる

とか。
いや、perlでも出来るよ。
でも、何やらテクニックつかったり、他のモジュール使ったりとかでなく
基本の組み込み操作だけで簡単にさせてくれよ、って思う。
587デフォルトの名無しさん:2007/09/14(金) 11:49:26
そうじゃないのがPerlでしょう。
588デフォルトの名無しさん:2007/09/14(金) 12:00:16
組み込みは増やすときりないからね。 CPANみたいなのが標準マニュアルになってまうよ。
C++なんかでもなら原則自分で作るの当たり前。
むしろ正規表現が普通に使える事が驚きっちゃあ驚きだわい。
589デフォルトの名無しさん:2007/09/14(金) 12:30:27
>>588
> むしろ正規表現が普通に使える事が驚きっちゃあ驚きだわい。
いやそこはsedやawkを受け継いでるんだから、当たり前だろう
590デフォルトの名無しさん:2007/09/14(金) 13:28:33
最近はカイ二乗分布とかその辺まで標準に入れはじまったc++
591デフォルトの名無しさん:2007/09/14(金) 13:42:04
>>586
組み込み関数が少ないのがPerlのメリットだと思うんだぜ。
そういうのだったらPHPにでもRubyにでも行けばいいし><
592デフォルトの名無しさん:2007/09/14(金) 14:59:40
そういう事言ってるから貧乏人なんだよお前は
593デフォルトの名無しさん:2007/09/14(金) 15:01:35
そしてここでも!!
594デフォルトの名無しさん:2007/09/15(土) 06:21:10
複数人での
共同コーディングが
できるサイトってないの?
595デフォルトの名無しさん:2007/09/15(土) 06:28:18
>>594
sourceforge.net

596デフォルトの名無しさん:2007/09/15(土) 07:25:58
>>594
なんかやるなら誘って〜。
ネット上のみでそういうのやったこと無いから面白そうだわ。
既存のプロジェクトとかに入っていく勇気が無い。俺空気読めないから。
597デフォルトの名無しさん:2007/09/15(土) 07:30:46
そういやiアプリでそういうスレがあるな
今は停滞してるけど
598デフォルトの名無しさん:2007/09/15(土) 07:54:16
>>595-596
プロジェクトじゃねーわ
リアルタイムに共同コーディングって意味だわボケ
599デフォルトの名無しさん:2007/09/15(土) 07:58:02
じゃあそいつを作るプロジェクトを立ち上げよう。
で、具体的にはどういうもんなの?まさかエディタのバッファ共有とか?(笑)
600デフォルトの名無しさん:2007/09/15(土) 15:11:59
よろしくお願いします。定時に自分へメール送信を行おうと、次のメール送信用Perlプログラムを組みました。
送信ポートは、Outbound Port25 Blockingの影響で587番になってます。送信に利用するSMTPサーバーはISPとは異なるメールサーバーです、Thunderbirdでは587番地で問題なく送受信できています。
一応エラーの検出無く終了するのですが、メールは届いてきません。どうかよろしくお願いします。

:: mtest.pl ::
use Net::SMTP; use Net::POP3;
$pop = Net::POP3->new("POP鯖");
if(!($pop->login('アカウント','パスワード')>=0)){die "Error $!";
}else{$pop->quit;}
$smtp = Net::SMTP->new("SMTP鯖:587",Hello=>"SMTP鯖:587") or die "失敗";
# $smtp = Net::SMTP->new("SMTP鯖",Port=587,Hello=>"SMTP鯖") or die "失敗";
$from = "test\@送信元ホスト"; $to = "test\@送信先ホスト";
$subject="Test"; $date = &date; #メソッド略
$smtp->mail($from); $smtp->to($to);
$smtp->datasend("Date:$date\n");
$smtp->datasend("From:$from\n");
$smtp->datasend("To:$to\n");
$smtp->datasend("Subject:$subject\n");
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("Content-Type: text/plain;charset=\"ISO-2022-JP\"\n\n");
$smtp->datasend("TTest\n");
$smtp->dataend();
$smtp->quit;
:: END ::

あとSocketでも組んでみましたが、"不正なファイル記述子です"と送信できませんでした。
よろしくおねがいします。
601デフォルトの名無しさん:2007/09/15(土) 15:15:02
ド素人的質問なのですが、
不特定多数のマシン上で動作する「BIOSの電源管理設定を設定を読込/設定変更可能なソフト」は
特殊な技術なく普通に作れるものなのでしょうか?

いかにも相性問題が発生しそうなテーマな気がするのですが、
BIOSの設定は一般の人では自力設定は難しくPCに詳しくない顧客でも扱えるような管理ソフトが欲しいのです。


お手数ですがご教授ください。
602デフォルトの名無しさん:2007/09/15(土) 15:33:42
コピペか?
603600:2007/09/15(土) 15:34:55
>>602
念のため・・・もし僕のことでしたらコピペじゃないっす。
604デフォルトの名無しさん:2007/09/15(土) 15:40:53
>>601
>ド素人的質問
まったくその通り。
だから、出入りのゼロックスとか大塚商会さんにでも聞いてね。
605デフォルトの名無しさん:2007/09/15(土) 17:13:12
たすけてにちゃえもーん

C/C++のプログラムでexit(255)で終わらせたプログラムを、
$ret = system("***");
で呼ぶと$retに65280(0xff00)が返るんだけど、256倍が返るの
仕様っすか??
606デフォルトの名無しさん:2007/09/15(土) 17:27:31
>>605
仕様らしい。ぐぐったら256で割れって書いてるところと
書いてないところがあった
607デフォルトの名無しさん:2007/09/15(土) 17:43:55
>>600
ってむずいっすかね。
587になる前は送信も普通に出来ていたのでちょい萎えなんですが・・・
608デフォルトの名無しさん:2007/09/15(土) 19:34:26
最近、マニュアルを見たら負け組、という認識でも広まってるのか?
609デフォルトの名無しさん:2007/09/15(土) 20:23:46
>>608
ってゆ〜か、逆にむかし、「マニュアルを見ろ」と言うとブチ切れるオッサンとかいた。
「わたしはホワイトカラーだ! バカにするな!」とかって。
610デフォルトの名無しさん:2007/09/15(土) 20:35:00
ソース嫁って言われると99%ぐらいのPerlerはぶちぎれる
611デフォルトの名無しさん:2007/09/15(土) 21:03:05
言われる前に読むだろ常考
612デフォルトの名無しさん:2007/09/15(土) 21:04:55
とりあえずperldoc -m Hogeするだろ
613デフォルトの名無しさん:2007/09/15(土) 21:28:55
>>604
煽るくらいならスルーしろボケ。
614デフォルトの名無しさん:2007/09/16(日) 00:34:49
>>585
いろいろやってみましたがうまく行きません
my $cookie_jar = HTTP::Cookies->new(file => $cookie_file, autosave => 1, ignore_discard => 1);
のようにして作った時、cookie_jarはまだ空ですよね
ここに、idとパスワードを最初から入れておくにはどうしたらいいですか
615デフォルトの名無しさん:2007/09/16(日) 00:59:31
空ではなく、cookie_fileを読み込んでいました
その状態でアクセスしているのに、idを送っていないのと同じ反応になります
#LWP-Cookies-1.0
Set-Cookie3: id=hane; pass=mogera
みたいな感じで書いてます
何がおかしいのでしょう
616デフォルトの名無しさん:2007/09/16(日) 09:47:42
  ァ  ∧_∧ ァ,、
 ,、'` ( ´∀`) ,、'`
  '`  ( ⊃ ⊂)  '`
617デフォルトの名無しさん:2007/09/16(日) 09:52:19
618デフォルトの名無しさん:2007/09/16(日) 22:46:32
リアルタイムっつってんだろ
日本語読めないのか?
619デフォルトの名無しさん:2007/09/16(日) 23:35:23

スレ違いなので次の方質問をどうぞ。
620デフォルトの名無しさん:2007/09/17(月) 01:13:47
マカーですがCPANモジュールが読み込めなくて困ってます。
アドバイスをいただけるとうれしいです。


詳しい状況は以下↓


今まではcpanシェルの中で「install モジュールA」とやって、
perlのコードで「use モジュールA」とすると問題なく使えたのですが、
どこかをいじったせいか新しくインスコしたモジュールを使おうとすると
「Can't locate Spreadsheet/WriteExcel.pm in @INC」というエラーが出て使えなくなってしまいました。

ちなみに今までインスコしたモジュール(LWPとかHTMLとか)は/Library/Perl/5.8.1/というディレクトリ下にあり、
新たにインスコしたモジュール(Spreadsheet::WriteExcelとか)はホームディレクトリの下~/.cpan/build/というディレクトリ下にあります。

前者にはバンドル名直下にすぐ.pmファイルがあるのですが、
後者には、 MakefileとかREADMEとか色んなファイルやディレクトリが入っています。

解決策として、

1.新たにインスコしたモジュールのある場所を@INCに追加する
2.新しいモジュールをインスコする場所を前と同じ場所にする

っていう方法が思い浮かんだので、1だけ試しましたがだめでした。
2はどこのパスをいじればいいのかが分からないので試していません。
621620:2007/09/17(月) 01:44:35
追加

>1.新たにインスコしたモジュールのある場所を@INCに追加する

さっきためした方法は.bash_profileに
export PERL5LIB=$PERL5LIB:/Users/ユーザ名/.cpan/build/
と書く方法だったんですが、
export PERL5LIB=$PERL5LIB:/Users/ユーザ名/.cpan/build/Spreadsheet-WriteExcel-2.18/lib/
とするとSpreadsheetのみ使えるようになりました。

/Users/ユーザ名/.cpan/build/以下のモジュール全て使えるようにしたいのですが、
いい方法があったらおしえていください。
622デフォルトの名無しさん:2007/09/17(月) 02:50:05
>>620
~/.cpan/build/…はインストールされた場所ではなくて、CPANモジュールの作業ディレクトリではないのですか?
インストールしたのであれば、/usr/lib/perl5以下のモジュールを置くどこかにインストールされているはずです。
findで探してみては? みつかったら、その場所が@INCに含まれているか調べる。いなかったら、use libする。
623デフォルトの名無しさん:2007/09/17(月) 02:51:23
>>620
> 新たにインスコしたモジュール(Spreadsheet::WriteExcelとか)はホームディレクトリの下~/.cpan/build/というディレクトリ下にあります。
>

インストールとか言っているが、これはウソで、実はコピーしただけに1票
624デフォルトの名無しさん:2007/09/17(月) 03:01:53
俺の推理によると cpan shell で look Spreadsheet::WriteExcel だな
もう一度インストールしてみるべし
625620:2007/09/17(月) 03:30:23
>>622
私の環境では/usr/lib/perl5というディレクトリは存在しないようです。
~/.cpan/buiild/以下が作業ディレクトリかどうかは分からないのですが、インストールする場所はどうやって設定できるのでしょうか?
とりあえずMyConfig.pmはこんな感じになってます。

'build_cache' => q[10],
'build_dir' => q[/Users/ユーザ名/.cpan/build],
'cache_metadata' => q[1],
'cpan_home' => q[/Users/ユーザ名/.cpan],
'getcwd' => q[cwd],
'gpg' => q[],
'histfile' => q[/Users/ユーザ名/.cpan/histfile],
'inactivity_timeout' => q[0],
'index_expire' => q[1],
'inhibit_startup_message' => q[0],
'keep_source_where' => q[/Users/ユーザ名/.cpan/sources],
'make_arg' => q[],
'make_install_arg' => q[],
'makepl_arg' => q[PREFIX=~/CPAN],
'prerequisites_policy' => q[ask],
'scan_cache' => q[atstart],
'shell' => q[/bin/bash],
'tar' => q[/sw/bin/tar],
'term_is_latin' => q[1],

※関係のなさそうなパラメータは除外しました
626620:2007/09/17(月) 03:42:23
>>623

いえ、cpanシェルで「install モジュール名」というコマンドを打ちました。
それ以外の操作はしていません。

>>624

こまんどを実行してみたところ
まず~/.cpan/build/Spreadsheet-WriteExcel-2.18という元々あったディレクトリに移動。
その後root権限でcpanシェルを抜けてbashに戻りました。
その後のインストールは/Users/ユーザ名/.cpan/.lockでロックされているようなので、できないようです。
627デフォルトの名無しさん:2007/09/17(月) 05:29:43
ああすまん >>624
install hogehoge を look hogehoge を間違えて
実行してしまってインストールしたつもりなのではという意味

MyConfig.pmで指定する場合は

makepl_arg => q[PREFIX=/path/to INSTALLDIRS=site]

mac はよくわからないけどmakepl_argを空にしておくと
Perlのバージョンにあわせたディレクトリにインストールしてくれる
でもわざわざ PREFIX=~/CPAN としてるくらいだからmacはそうする必要があるんかな
そのままにしておくなら PERL5LIB に $HOME/CPAN か スクリプトで use lib
628620:2007/09/17(月) 12:42:29
>>627

無事解決しました、ありがとうございました。

いちおう状況報告です。

makepl_argを空にしたら以前の場所にインスコされました。
PREFIX=~/CPANはmacのデフォルトかどうかは分からないですが、
何かのモジュールをインスコする時にいじってしまったのかもしれません。
(このパラメータを指定すると「cpanコマンドの実行ユーザのホームディレクトリ下」にモジュールがインスコされるんですね)
今まではrootでcpanシェルに入っていたためrootのホームディレクトリ下にモジュールがインスコされていました。
で、それに気づかずなかったため、rootのホーム下にパスを通せていませんでした。(パスを通してもroot権限でないと読み出せないのでエラーになるかも)

結果的に以下の二つの方法でいけました。

・共用ディレクトリにインスコしない場合
makepl_argを~/CPANと設定し、非rootユーザでcpanシェルに入ってinstallをする。
PERL5LIBは「$HOME/CPANを追加する」または「use lib」をする。

・共用ディレクトリにインスコする場合
makepl_argを空にし、rootユーザでcpanシェルに入ってinstallをする。
PERL5LIBはデフォルトで設定されているので設定の必要なし。
629デフォルトの名無しさん:2007/09/17(月) 14:10:31
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
会社で使えない奴、それはワタシ/アイツ [プログラマー]
entrance:ラウンジ[レス削除] [削除整理]
アップローダーを設置している人 Part19 [自宅サーバ]
なぜオブジェクト指向は普及しないのか 4 [プログラマー]
Perlコーディング初心者質問スレ Part 55 [WebProg]
630 ◆TWARamEjuA :2007/09/17(月) 21:14:58 BE:3267656-2BP(6825)
BBQの中の人です。
登録装置にて、どうも頭の中が固まりきって、あひゃひゃになっております(呆)
-・-・ --・- -・-・ --・- -・-・ --・- -・-・ --・-
# 期限切れを排除して、重複するリモホ類を排除して、、、
my %IP4value;
my %MD5value;
@Proxy60 =
 map { $_->[0] } # 元に戻す。
 grep { !$IP4value{$_->[4]}++ } # 重複削除。 IP4 で比較。
 grep { !$MD5value{$_->[5]}++ } # 重複削除。 MD5 で比較。
 grep { $_->[1] ne 'D' }
 map {
  push @Deletelist, $_->[0] and $_->[1] = 'D' if $_->[1] == 0; # 削除(削除)
  push @Expirelist, $_->[0] and $_->[1] = 'D' if $_->[1] < $Now_Time; # 期限切れ(削除)
  push @Allowlist, $_->[0] if $_->[6] eq 'Allow'; # 除外指定
  push @DDNSlist, $_->[0] if $_->[6] eq 'DDNS'; # DDNS
  $_
 }
 map { [ $_, (split /<>/) ] } # 一旦リファレンスに
 @Proxy60;

@Proxy60 には「<>区切り(^^;)」なデータが入っています。
有効期限(time値)<>登録日(time値)<>登録者<>ホスト/IPaddrress<>MD5値<>status<>コメント<>
-・-・ --・- -・-・ --・- -・-・ --・- -・-・ --・-
このうち(削除)分がどうしても削除されなくって困っております。

ここでスカタンしてるぞ!と言う部分がありましたらご指摘を戴けるとありがたいですですm(_ _)m深謝
env.:FreeBSD cobra2245.maido3.com 6.2-RELEASE-p7
perl:This is perl, v5.8.7 built for amd64-freebsd (with 2 registered patches, see perl -V for more detail)
631デフォルトの名無しさん:2007/09/17(月) 21:51:37
use Boofy; したいのですが、どうやればできますか?
632デフォルトの名無しさん:2007/09/17(月) 22:12:34
>>630
少しぐらい問題切り分けてからこいよ。
633デフォルトの名無しさん:2007/09/17(月) 22:37:26
>>630
症状に関係あるかどうか知らないけど、
push @Deletelist, $_->[0] and $_->[1] = 'D' if $_->[1] == 0;

{ push @Deletelist, $_->[0]}   and  { $_->[1] = 'D' if $_->[1] == 0;}
という優先順位になるんじゃないかな。
634デフォルトの名無しさん:2007/09/18(火) 10:10:16
たまに確実にlistenに溜まってるはずなのに、
acceptから帰ってこない事があります。
ctrl-cを押すとacceptから復帰して正常に処理し始めます。
winxp上のactiveperlですが、考えられそうな原因が何か
分かりませんでしょうか。
635 ◆PQZNeK2U46 :2007/09/18(火) 15:15:47
ぐぐれ
ちゃんと調べたのか?
馬鹿野郎。死ね。

なんだねその目は?
僕ですか?僕はこのスレのスレ主ですが何か?
636デフォルトの名無しさん:2007/09/18(火) 15:26:09
637デフォルトの名無しさん:2007/09/18(火) 15:38:31
>>630
そして基本的にmapやgrepを使う時は$_を使うな。
簡単には見つけ出せないバグが発生しやすい。
下の二つは一見同じようなことをしているが、動作がまったく違う。

----------------------------------------------

@hoge = qw(1 2 3); 
@foo = map {$_ + 1} @hoge;
print "@hoge @foo";
=> 1 2 3 2 3 4

@hoge = qw(1 2 3);
@foo = map {++$_} @hoge;
print "@hoge @foo";

=> 2 3 4 2 3 4

grepやmapをネストするとこんな問題が必ず発生する。

解決方法
+壊れてもいいリストを渡す。
+map {my $hage = $_ ; ++$hage }とかちゃんと壊れてもいいものに代入する。

あともっと基本的に$_->[0] とか何がなんだか分かっているのか。
半年後の630も、今の俺も読めねえ。





638637:2007/09/18(火) 15:57:52
で申し訳ないんだが 637で述べた$_は変数ではなく
”エイリアス”と呼ばれるらしい。
引用:: Perlベストプラクティス 初版 p 125 上段

/$_は何かのコピーを次々に保持するものではない。
エイリアスを保持するのである。/

このエイリアスについて調べようとして、ググったんだがでてこなかった
もしかしたら { 翻訳上の都合 } なのかもしれないが、
なんかそれ系っぽい記事を知ってる人は申し訳ないがリンク恵んでください。
639デフォルトの名無しさん:2007/09/18(火) 16:05:20
初心者が質問に答えようとすんなよw
しかも偉そうにwww
640デフォルトの名無しさん:2007/09/18(火) 16:09:32
>>630はそんな神経質になるほどやばい使い方してないと思うんだけど、
>>637は何か私怨でもあるの?
とはいえ、>>630が$SIG{__WARN__}を使ってるとしたら、
中で$_を書き換えちゃってる可能性は否定できなかったりw
641デフォルトの名無しさん:2007/09/18(火) 16:16:10
>>637
それは$_の問題じゃなく++の問題。
>>633(演算子の優先順位)でFAだと思うがね。
642デフォルトの名無しさん:2007/09/18(火) 16:19:55
>>637
お前が理解できてないだけ。
普通に理解していれば発生するはずがない。
643637:2007/09/18(火) 16:31:57
>>640 いや、私怨は無いんだが他人が書いた似たようなコードを保守してて
さっき洗面台でコード吐いてきた。

>>641サンクス。勉強してくる。
>>639,642 人がここにいることが分かった。サンクス。


644デフォルトの名無しさん:2007/09/18(火) 16:36:02
普通にforeachで回すコードに書き換えたいなあ。
645デフォルトの名無しさん:2007/09/18(火) 17:04:20
この際SQLにしちゃえ
646デフォルトの名無しさん:2007/09/18(火) 17:15:34
>>645
>map { [ $_, (split /<>/) ] } # 一旦リファレンスに
ここが変わるだけだろ・・・
647デフォルトの名無しさん:2007/09/18(火) 17:25:23
無理にコードを短くしようとして
可読性が無くなるなど本末転倒
648デフォルトの名無しさん:2007/09/18(火) 17:44:15
RDBに突っ込んでDBIC使おうぜ
649デフォルトの名無しさん:2007/09/18(火) 20:32:19
>>647
基本的にちゃんとプロジェクトとかに
残るコードはPerl風にしないほうがいいね。

逆に残らないだろうと思って書いたものも、
アテがはずれて残ってしまうことがあるんだけど。
650デフォルトの名無しさん:2007/09/18(火) 23:54:05
windowsではshebang lineがサポートされてないらしいですが、
windowsだけでの実行を仮定するのであれば、shebang lineを書かなくてもOKですか?
651デフォルトの名無しさん:2007/09/18(火) 23:59:47

xml解析するモジュール使ってるんですけど、
値を取り出すときに、配列の時と、配列でない時と
別々に処理かかないといけないのでしょうか?

複数の<Item>がある場合、
$hoge = $tree->{Item}->[$i]->{Name}
一つしか<Item>がある時、
$hoge = {Item}->{Name}

今ぐぐったら、配列かどうかはチェック出来るんですね。
まだ、確かめてないけど。
やっぱ、別々に処理しないといけないのかなー。

if (ref($data) eq ‘ARRAY’) {
# 配列であった
}
else {
# 配列でなかった
}




652デフォルトの名無しさん:2007/09/19(水) 00:03:05
>>650
Win は関連付けで動くのでいらない
653デフォルトの名無しさん:2007/09/19(水) 00:27:21
>>651
ForceArray 辺り?
654 ◆PQZNeK2U46 :2007/09/19(水) 01:35:38
perlって難しいね。
本によってコードの書き方が全然違うし。疲れる。
rubyもこんなに難しいの?
変数宣言も突然型なしで出来るし。メチャクチャ。
こんなの扱ってるからお前ら馬鹿なんですね。
655デフォルトの名無しさん:2007/09/19(水) 01:43:28

やあ、 ◆PQZNeK2U46 さん、こんばんわ。
今日も粘着させて頂きますので宜しくお願いしますね。
656デフォルトの名無しさん:2007/09/19(水) 02:39:27
>>653
ストライクで御座います。
やっぱり、こういうのがあるんですよねー。

えっ、マニュアル嫁ってw
スミマセン以後気をつけます。
ありがとうございました。
657 ◆PQZNeK2U46 :2007/09/19(水) 02:43:02
粘着する暇あったら他言語の勉強しろよオッサン。てか就職しろよ。
こんなところで鬱積したフラストレーションを爆発させてんじゃねーよ。
ノータリン。どうせ独身だろお前。人生オワトル。
658 ◆PQZNeK2U46 :2007/09/19(水) 02:48:40
>>656
おい!こらテメーなんだそのザケた態度はよ。
すみませんって言葉はw付のおどけた態度で言う言葉じゃねーぞ?
実生活でも自分のミスを笑って済まそうとするアンポンタンか?
なめてんとブッ殺すぞ?
メガネ外せ。
659 ◆PQZNeK2U46 :2007/09/19(水) 02:53:55
なにがストライクで御座いますだボケ。
恥ずかしくないの?いい歳して訳のわからん言葉使ってよ。
なに?ストライクで御座いますって?
お前ラリッてんのか?
馬鹿ハゲ独身!ニートは死ね!
660デフォルトの名無しさん:2007/09/19(水) 03:08:48
>659
全国のハゲに謝れ!
661デフォルトの名無しさん:2007/09/19(水) 03:46:07
ある程度 ◆PQZNeK2U46 の発言が纏まったら
荒らしとして規制議論にスレを立てて報告します。
適時掘られ、プロバイダから警告が来ると思います。
662デフォルトの名無しさん:2007/09/19(水) 09:25:53
>>650
Winで #! 書くのは -x 使うときと CGI 書くとき。
663デフォルトの名無しさん:2007/09/19(水) 09:42:42
>>650
オプションは見てくれるよ。ActivePerl の話だけど。
664 ◆PQZNeK2U46 :2007/09/19(水) 10:59:34
スタティックイニシャライザで御座います。

>>661
殺す。
665デフォルトの名無しさん:2007/09/19(水) 11:39:25
#!perl -n
if(/うんたら/) {
}
if(/かんたら/) {
}

awk みたいなコードだな
666 ◆TWARamEjuA :2007/09/19(水) 19:07:53 BE:654023-2BP(6825)
いろいろとありがとうです。
優先順位、、、うぅ、、、orz...

#エントリ数が14KもあるのでそろそろDBにする頃かしらと悩んでいる今日子の頃
667デフォルトの名無しさん:2007/09/19(水) 21:41:20
>>666
キリバンオメ
とりあえず、その削除されないという @Proxy60 と $Now_Time 出したら?
>>630のコードは無駄な処理の塊が気になるけど、手元で
$Now_Time = 1;
@Proxy60 = qw(0<>0<>hoge<>0.0.0.0<>dummy01<><><> 2<>2<>foo<>1.1.1.1<>dummy02<><><>);
を食わせてみた限りでは、特におかしな結果にはならなかったよ。
668デフォルトの名無しさん:2007/09/20(木) 09:47:04
HTTP::DaemonのSYNOPSISを改造して簡易webサーバを書いてみたのですが
*.cgiファイルをCGIとして起動するように改造するにはどうしたらいいのでしょうか?
669デフォルトの名無しさん:2007/09/20(木) 14:42:46
>>668
ふつ〜
先行事例をしらべるんじゃね?
670デフォルトの名無しさん:2007/09/20(木) 21:59:12
>>649
> 残るコードはPerl風にしないほうがいいね。

なにその Perl 風って?
671デフォルトの名無しさん:2007/09/20(木) 22:12:03
DBつーか、取りあえず手軽にStorable使ったら?
672デフォルトの名無しさん:2007/09/20(木) 22:14:54
首でも吊って、誰か他の人に保守してもらえばいいんじゃね?
673デフォルトの名無しさん:2007/09/20(木) 23:06:14
print $x, $x++;
print 0+$x, $x++;
print 1*$x, $x++;
674デフォルトの名無しさん:2007/09/21(金) 16:44:25
perl -le 'for (1..100) { $x += 0.1; print $x }'
を実行すると、5.99999999999999 から結果がおかしくなるのはなぜですか?
675デフォルトの名無しさん:2007/09/21(金) 16:58:43
おかしくなってるんじゃなくて表現が違うだけ

Eなんちゃらでしょ?

bigint だかなんだか忘れたけど、そんなモジュールを使ってみませう
676デフォルトの名無しさん:2007/09/21(金) 17:13:08
>>674
つ 丸め誤差
677デフォルトの名無しさん:2007/09/21(金) 22:04:53
丸目蔵人
678デフォルトの名無しさん:2007/09/22(土) 00:01:07
>>674
結論から言えば、内部での数値の表現が2進数だから。

2進数で1/10(=0.1)を表現しようとすると無限小数になってしまう。
#10進数でも1/3を有限小数で表現できないのと同じ。

でも、コンピュータの演算器は限られた大きさのデータ(ここでは有限の桁数としとく)しか扱えない。
結果演算誤差が出る。
679デフォルトの名無しさん:2007/09/22(土) 00:03:45
>>674
小数化した時点で誤差が含まれるから、いつかはそうなる。
WebProgの質問スレにも同じ質問あったからそこを参考にするといいよ。
680デフォルトの名無しさん:2007/09/22(土) 02:53:14
マッチ文て変数使う方法は使えないんですかね。


sub func{

 if(/文字列/){
  ・・・
 }

}


という関数があって、文字列の部分だけ変えたのをいくつか作りたいんですが
関数の引数として渡す方法はないでしょうか。
今は1行だけ違うコピペ関数が多数並んでいます・・・。
681デフォルトの名無しさん:2007/09/22(土) 02:57:25
/$pattern/
682デフォルトの名無しさん:2007/09/22(土) 03:27:05
質問に沿って答えるなら>>681だけど、
コピペってことは
sub func {
if(/文字列1|文字列2/){...}
}
で済む気がする。
funcを複数回呼ぶ必要があるなら
func() if /文字列1/;
func() if /文字列2/;
でもいいわけだし。
683デフォルトの名無しさん:2007/09/22(土) 05:50:10
ソースコード書いたら
その意味を画面の右側に
日本語で表示してくれる
エディターある?
684デフォルトの名無しさん:2007/09/22(土) 07:38:20
『ひまわり』か『なでしこ』でも使ってろよ…
685デフォルトの名無しさん:2007/09/22(土) 09:40:49
ストライクで御座います
686デフォルトの名無しさん:2007/09/22(土) 14:00:23
変数に格納されているものがcoderefであるときにそのソースを表示するような
コードを書くにはどうしたらいいですか?
687デフォルトの名無しさん:2007/09/22(土) 14:07:46
なんだよ、、、
そのなでしこで
CGIは作れるのかよ、、、、?
688デフォルトの名無しさん:2007/09/22(土) 14:15:15
>>686
コードを書くのはめんどいので、、、
#!/usr/bin/env perl
use Data::Dumper ;
$Data::Dumper::Deparse = 42 ;

my $hoge = sub { 42 } ;
print Dumper $hoge ;

とかじゃダメかい?
689デフォルトの名無しさん:2007/09/22(土) 15:41:51
#! /usr/local/bin/perl

print "content-type:text/html\n\n";

print "<html>\n";
print "<head><title>タイトル</title></head>\n";
print "<body>\n";
print "<h2>テスト</h2>\n";
print "</body>\n";
print "</html>\n";


↑これでInternal server error 500になる。
ただしレンタルサーバー上ではエラーだが、
自分のパソコンでやったらちゃんと表示される。

ソースにもし間違いがあったら
場所と対処法を具体的に指摘しろ。
690デフォルトの名無しさん:2007/09/22(土) 15:54:18
>>689
板違いだWebProg池
691デフォルトの名無しさん:2007/09/22(土) 16:31:13
>>689
/usr/local/bin/perlじゃなくて/usr/bin/perlだったりして

あとよくあるのが行末がCR+LFになってて、
/usr/local/bin/perlCRを探しに逝ってるとか
692デフォルトの名無しさん:2007/09/22(土) 18:34:13
>>691
全部間違い。出直せ、ボケ!
693デフォルトの名無しさん:2007/09/22(土) 19:22:02

>>692

くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
694デフォルトの名無しさん:2007/09/22(土) 19:35:56
>687
Windows系サーバなら、CGI も組めそうじゃね?
あんまり現実的じゃないけどw
695デフォルトの名無しさん:2007/09/22(土) 21:55:01
stdinから読めてstdoutに書き出せる言語なら何だって使えるはず
696デフォルトの名無しさん:2007/09/22(土) 22:39:54
Mac OS X ServerだとAppleScriptでCGI組めるしな
組みたくないがw
697デフォルトの名無しさん:2007/09/23(日) 00:53:34
Win であれば BAT も CGI で動くよ
たしか Apache の CGI サンプルにあったはず
698デフォルトの名無しさん:2007/09/23(日) 00:57:53
> CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりする

なるほど、たしかに
699デフォルトの名無しさん:2007/09/23(日) 03:47:49
なぁーんてこった!
cgiファイルのパーミッションを
755にしたらそれで動いたぜ
そんなこと教科書には
どこにも一言も書いてなかった!
ローカルで動かす教科書だからかな?
サノバビーィーーーッチ!
700デフォルトの名無しさん:2007/09/23(日) 06:18:39
Activeperlダウンロードしてインストールまでは上手くいくんだけど
Perl Package Managerが起動しないんだ
サポートに聞いてみたけど「そんな事例無いからワカンネ」って言われて
ほぼ同じスペックの友達のパソでやってみたら普通に開いたし、ぐぐってもそんな事例やっぱないっぽくて
誰か原因わかる人いる?
701デフォルトの名無しさん:2007/09/23(日) 06:48:36
Windowsにはよくあること。OS再インスコ。
702デフォルトの名無しさん:2007/09/23(日) 10:31:08
再インストするならActivePerlのほうだろ?
しかしどうせならBSD系なりLinux系なりで勉強したほうが良いと思うが。
どうしてもWindowsでなきゃ駄目というなら
Cygwinを構築してCygwin系Perlを使ったほうが良いぞ?
703デフォルトの名無しさん:2007/09/23(日) 13:36:42
ファイルハンドルリファレンスの使い方は把握したのですが、
どういうときに役に立つのかがイマイチわかりません。
アルパカ本には
「ライブラリなどコードの他の部分と共有できるようにする」と書かれてますが、どういう意味でしょうか?
704デフォルトの名無しさん:2007/09/23(日) 14:12:42
ファイルハンドルを引数に取る関数とか?
705703:2007/09/23(日) 15:18:25
>>704
うーん、単にそれだけのことなのですか。。
アルパカ本の記述から察するに何か深いわけがありそうな気がしたんです。
706デフォルトの名無しさん:2007/09/23(日) 16:03:24
>>705
横レス。

章の始めでしかも「こんな節はなかったことにして次へ」って記述されてる
んだから気にしなくて良い。
8.1 は
「(従来の)型グロブでやろうとすると面倒でした」
って書いてあるだけだ。
707703:2007/09/23(日) 17:46:13
>>706 ありがとうございます。
708デフォルトの名無しさん:2007/09/23(日) 18:20:57
質問です。
ハッシュを作るサブルーチンを作ろうとしたらエラーが出ました。
これをうまくやるにはどうしたらいいですか?
よろしくお願いします。

#!/usr/bin/perl
use strict;

sub create_hash{
my $name=shift;
my @keys=@_;
no strict "refs";
my %$base;
$base->{$_}=undef for @keys;
}

create_hash('hash','key1','key2');


Can't declare hash dereference in my at /home/Owner/test2 line 8, near "$base;"
709デフォルトの名無しさん:2007/09/23(日) 19:04:49
ハッシュの宣言の仕方が違う
リファレンスなら
my $base={};

あと値がundefでいいなら

my $base = {};
@$h{@keys}=();

とかでもできる
710デフォルトの名無しさん:2007/09/23(日) 19:08:41
sub create_hash{
my @keys=@_;
no strict "refs";
my $base;
$base->{$_}=undef for @keys;
return $base;
}

$hash = create_hash('key1','key2');
%hash = %{create_hash('key1', 'key2')}
711デフォルトの名無しさん:2007/09/23(日) 19:11:46
no strict "refs" はいらなくね?
712708:2007/09/23(日) 19:55:56
$baseというのは%nameへのシンボリックリファレンスにしたいんです。
だからno strict "refs";は要るのかなと判断しました。

>>709
my $base={}という宣言もありなんですね。
ありがとうございます。

>>710
create_hashでやろうとしたことは、与えられた名前とキーのハッシュを作ることなんです。
$nameという名前のハッシュを宣言しようとしてうまくいかなくなったんです。

713708:2007/09/23(日) 20:00:30
ごちゃごちゃ書いてしまったので、整理すると、

'hash', 'key1', 'key2'
を引数にすると
スコープがmainパッケージのレキシカル変数%hashで
%hash = (key1 => undef, key2 => undef);
となっているようなものを作ってくれるようなサブルーチンを作りたいんです。

分かりにくくてすみませんでした。
714デフォルトの名無しさん:2007/09/23(日) 20:24:11
>>713
その引数の'hash'は何に必要なんだか理解出来ん。
sub create_hash{ map { $_, undef } @_ ; }
とか709 の方法
sub create_hash{
 my %h ;
 @h{@_}=();
 return %h ;
}
でええんちゃうん?
715708:2007/09/23(日) 21:18:07
>>714
ありがとうございます。

hashはハッシュの名前です。
%hashの名前に使われていることにご注目ください。
716デフォルトの名無しさん:2007/09/23(日) 21:22:23
シンボリックリファレンスとかいつの時代の遺産だよ
717デフォルトの名無しさん:2007/09/23(日) 21:26:24
>>715
708 で使われてないよ? 'hash'
718デフォルトの名無しさん:2007/09/23(日) 21:40:16
新手の荒らしか?
左辺を*$nameにしてハッシュリファレンスを代入したらいいんか?
なんに使うのかしらんけど・・・
719708:2007/09/23(日) 22:03:22
>>717 エラーが出たので使えずじまいになったんです。

>>718 荒らしではなくて、シンボリックリファレンスが古いことも含めて
何も知らないまま我流で考えて行き詰まっていたんです。
鼻につく態度があったならごめんなさい。

何に使うかというと、サブルーチンだと呼び出すたびにハッシュの名前を用意をしないと
いけませんが、引数に指定できれば、
たくさんのハッシュを一挙に定義できると考えたんです。

720デフォルトの名無しさん:2007/09/23(日) 22:07:44
> サブルーチンだと呼び出すたびにハッシュの名前を用意をしないといけませんが
何が言いたいのか分からないけど、無名ハッシュとかで実現できない?
721デフォルトの名無しさん:2007/09/23(日) 22:11:06
>>719
「ハッシュの名前を用意」
せんでいいってんなもん。呼出元で違う名のhashにすりゃいいだけだろ。
>>714を使ったとして
my %hash1 = create_hash( 'key1', 'key2' );
my %hash2 = create_hash( 'keyB1', 'keyB2' );
すりゃいいだけの話だ。
722708:2007/09/23(日) 22:26:36
>>720 >>721

それだと希望する名前のハッシュにできませんよね。

例えば、ファイルに書かれた
hoge
fuga
...
といった内容を読み込んで、それぞれの名前をもったハッシュを1つずつ作りたいとします。

そのために、create_hash('hoge','key1','key2');という呼び出しで
hogeという名前のハッシュを定義しようと考えました。

sub create_hash{
my $name = shift;
my @keys = @_;
....
}

こうやって(...)の部分で(戻り値でhashを返すのではなくて)hogeという名前のハッシュを定義しようとしていたんです。
しかし、

sub create_hash{
my $name = shift;
my @keys = @_;
$name->{$_}=undef for @keys;
}
というやり方だと、hogeがハッシュの名前ではなくハッシュリファレンスの名前になってしまうので
予定外です。
723708:2007/09/23(日) 22:28:28
訂正
× ハッシュを定義しようと考えました。
○ ハッシュを定義できるようなサブルーチンを作ろうと考えました。
724デフォルトの名無しさん:2007/09/23(日) 22:29:04
だから、普通そういうやり方はしないんだって。
725デフォルトの名無しさん:2007/09/23(日) 22:34:25
明らかにコーディングミス
再設計をおすすめします
726デフォルトの名無しさん:2007/09/23(日) 22:36:50
簡単にやる方法は知ってるが好んで使う物じゃない
727708:2007/09/23(日) 22:40:58
>>724-726

分かりました。周辺知識を得てからまたこの問題を考えます。
無知さを思い知りました。
728デフォルトの名無しさん:2007/09/23(日) 23:32:47
>>722
そういう時は「ハッシュのハッシュ」を使うと幸せになれる希ガス
729デフォルトの名無しさん:2007/09/24(月) 04:04:50
>>700
エラーメッセージは出てないのか?

あと、ユーザー名にマルチバイト文字(漢字とか)使ってない?  もしそうなら
ACTIVEPERL_PPM_HOME って環境変数に適当なディレクトリを設定すりゃOK。
730デフォルトの名無しさん:2007/09/24(月) 09:27:27
%hash = ();
@hash{hoge, huga, hugo} = (1, 20, 300);
みたいなことをハッシュリファレンスでやりたいんですけど
$hash = {};
$hash->{hoge, huga, hugo} = (1, 20, 300);
こういうコードじゃダメみたいなんですが、
どうすればいいんですか?
731730:2007/09/24(月) 09:33:58
自己解決しました><
いろいろ自分でデリファレンスあたりを考えてみたら
%$hashにとりあえずデリファレンスしてそこから上のコードを見ながら書きなおしたら
$hash = {};
@$hash->{hoge, huga, hugo} = (1, 20, 300);
こうなりました
スレ汚し申し訳ありませんでした
732730:2007/09/24(月) 09:35:00
間違えた
@$hash{hoge, huga, hugo} = (1, 20, 300);
こうでした
どっちにしろすみませんでした
733デフォルトの名無しさん:2007/09/24(月) 09:36:54
>>730
$hash = {
 hoge => 1,
 huga => 20,
 hugo => 300,
}
スライスでどーしてもやりたいってんなら
@{ $hash }{'hoge','huga','hugo'} = (1,2,300) ;
734デフォルトの名無しさん:2007/09/24(月) 09:37:35
リロードしろよ>オレ
735デフォルトの名無しさん:2007/09/24(月) 11:03:18
perlインストしたらHDDの空き領域が4GBぐらい増えたんだが
これは大丈夫なのか?
736デフォルトの名無しさん:2007/09/24(月) 11:39:37
それはLarryからの贈り物です。
737sakura:2007/09/24(月) 13:29:42
下記の入力ファイルを読んで、$dateと@accidentのリファレンスを格納
した@journalの配列を作製したいのですが表現が分かりません。宜し
く、お願いします。
070901
 1030 高速道路での4重衝突。4人死亡
 1100 山で遭難。2名救助
 
070912
 0200 飲酒運転で、現行犯逮捕
 
 下記のソースは、データ作製の処理が未完成です。
open(IN,'01.txt');
my @journal=();
while(<IN>){
 chomp;
 if(/^\d/){
  #日付の処理
  my $date=$_;
  my @accident=();
 }elsif(/^ /){
  #明細の処理
  s/^ //;push(@accident,$_);
 }elsif(/^$/){
  #データ作製

 }else{
  print "形式誤り\n";
 }
}
close(IN);
738デフォルトの名無しさん:2007/09/24(月) 14:25:59
>>737
>   my $date=$_;
>   my @accident=();
は@journalと同じところで宣言すべき。

> elsif(/^$/){
> #データ作製
closeしてから処理すれば?

入力データからしてどこかのニュースサイトとかで使うのかな?
こわこわー
739デフォルトの名無しさん:2007/09/24(月) 14:26:27
>>737
use strict;

my @journal;
my $entry;
while(<DATA>) {
chomp;
if(/^\d/) {
$entry = {date => $_, accidents => []};
push @journal, $entry;
} elsif(/^ /) {
push @{$entry->{accidents}}, $' if $entry and $';
}
}
740デフォルトの名無しさん:2007/09/24(月) 14:35:30
>>737
とりあえず use strict; したらわかるんだけど
my @accident=(); はそのifの中のスコープでしか使えない。>>738の通り。

次に@journalにpushする時\@accidentを使うと同じ参照を何度もpushすることになるから
[@accident]でコピーの無名配列を作り直してpushする必要がある。
741デフォルトの名無しさん:2007/09/24(月) 14:56:44
とりあえずおっぱいな
742デフォルトの名無しさん:2007/09/24(月) 14:57:14
誤爆した スマン
743デフォルトの名無しさん:2007/09/24(月) 15:49:27
こんにちは。
macでperlをやってみようと思い始めたばかりの初心者です。
初歩の初歩で申し訳ないのですが、自力で解決できなかったので、
ご教授いただければ幸いです。

今いろんなサイトみながら「まずはターミナルでperlを実行してみよう」
という流れになり、
print "Hello, World¥n";
print "Hello, Perl¥n";
と書いたテキストを「hello.pl」という名前で保存して
ターミナルで「perl hello.pl」と実行しても
「Can't open perl script "hello.pl": No such file or directory」
と表示されます。
保存場所が間違っているのでしょうが、デスクトップとライブラリの
perlフォルダに入れても動きません。

この場合、どうしたら「hello.pl」は動くのでしょうか?
ご回答お願いします。
744デフォルトの名無しさん:2007/09/24(月) 16:03:59
>>743
PerlはLinuxでしか扱った事がないのだけども、
まずはそのhello.plファイルに実行権限があるか確認してみては如何?
745デフォルトの名無しさん:2007/09/24(月) 16:16:50
レスありがとうございます。
実行権限ですね。
ちょっと調べて確認してみます!
746デフォルトの名無しさん:2007/09/24(月) 16:17:34
>>743 保存場所が間違っているのでしょうが

本質的にperlの話とは関係ないが・・・

cd ~/Desktop

でそこへ移動してから

perl hello.pl

でOK。または、どこからでも

perl ~/Desktop/hello.pl
747sakura:2007/09/24(月) 17:25:15
     >>739
    早速の回答、有り難う御座います。以下の様に、判断しましたが間違っていないでしょ
    うか?

     日付の行は、まだ明細行は無いので$entryのリファレンスとしてはdateのみを格納し
    て、accidentsは、無名の配列コンストラクタで領域のみを確保してリファレンスを格
    納する。その$entryのリファレンスを@journalの最終的なリストに蓄積して行く。

     明細の行で、accidentsは日付の時に取得したリファレンスを元にして$entryのリス
    トを順次作製蓄積して行く。

     と言う事で理解しましたが、これで良いですか?リファレンスは使った事が無いの
    で、憶測で書いています。最後にprint for @journal;では
    HASH(0x2754b4)HASH(0x18333fc)の値が表示されました。データとしては、日付は2件
    有りますのできちんとリファレンスが出力されている様です。
    
     しかし、今度は@journalの出力の方法が分かりません。申し訳有りませんが、
    @journalを出力する方法をお教え願います。
748デフォルトの名無しさん:2007/09/24(月) 17:37:41
>>747
あってるよ。

print $journal[0]{date}, "\n";
print $journal[0]{accidents}[0], "\n";
print $journal[0]{accidents}[1], "\n";
print $journal[1]{date}, "\n";
print $journal[1]{accidents}[0], "\n";
749デフォルトの名無しさん:2007/09/24(月) 18:00:17
accidentsの配列がほしければこうだな

@{$journal[0]{accidents}}
750デフォルトの名無しさん:2007/09/24(月) 20:28:00
>>747
出力というとちょっと違うけど、こうやってまずは構造を知るところから。
use Data::Dumper;
print Dumper \@journal;
751デフォルトの名無しさん:2007/09/24(月) 20:34:31
>>750
YAML使う方が分り易くはないか?
752デフォルトの名無しさん:2007/09/24(月) 21:38:18
Perlを8月から勉強しはじめて、リャマ、アルパカ、EffectivePerlは通読しました。
リファレンスを使えるようにはなりました。
オブジェクトもCPAN moduleのコードを読むだけならできます。
書くのは無理ですが。

そこで次のステップに,と思うのですが、なかなか遅々として進めないでいます。

Web applicationを作りたいです。
CPAN moduleをあさったりしてますが、他にどんな勉強しかたがありますか?
オープンソースのWeb applicationから勉強するにはどうしたらいいですか?
良く分からないのですが、sf.netで十分ですか?

それから、いつも書くコードが数十行なので、大規模なアプリを作る基礎力がついていない
気がします。何か題材があればいいのですが、先輩方はどうやってPerl codingの題材を見つけて
こられたのですか?
753デフォルトの名無しさん:2007/09/24(月) 21:41:22
>751
Perlのデータ構造を見るんだから、Data::Dumperのほうがいいと思う。
あれなら
$VAR1 = [
{'foo' => 'bar'},
{'hoge' => 'fuga'},
];
みたいに無名配列に無名ハッシュが入ってるって見てわかるし。
ある程度なれた人間がdebug printとして使うんならYAMLのほうがいいだろうけど。
754デフォルトの名無しさん:2007/09/24(月) 21:55:33
>>752
> 気がします。何か題材があればいいのですが、先輩方はどうやってPerl codingの題材を見つけて
> こられたのですか?

何か題材を決めて書いてみる。わたしゃ最近は新しい言語を学ぶ時は、
2-gramの全文検索システムを作ってみる。
755752:2007/09/24(月) 22:07:26
>>754
ちなみに、言語はPerlしか知りません。
javascript, cがかろうじて初歩的な部分が分かりはしますが。
他の言語に手をだすより、Perlにしぼってやろうと考えての判断ですが、
最近はC,javaもそのうちやったほうがいいのではとか、いやPerlに専念すべきだといった
葛藤があってパニックになっています。

正直、自分でもあせりすぎなことは分かっていますが、急いでいます。
急務というのは、こういうことを言うのでしょうか。

それで、N-gramというのも良く知りませんので、ちょっと調べてみました。
こういった検索技術というのはWeb applicationを作るうえで大切そうですね。
ただ、最近はWeb APIで形態素解析 [1]が出来るそうなので、情報学科の学生のように
深く勉強しなくてもサイト運営は出来るのでしょうか?
とにかく、作ってみてからものを言えと言われそうですが、これまでも作り続けてきました。
のべ10000行は書いたと思います。8月から。
ただ、題材が本[2]を見て改変というパターンなので、数十行のものばかりとなり、限界を感じています。



脚注
[1] Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析
http://developer.yahoo.co.jp/jlp/MAService/V1/parse.html

[2] アルパカ、リャマ、EffectivePerl
756デフォルトの名無しさん:2007/09/24(月) 22:07:39
「何をやるか」という事を先に決めて、
それを実現させる道具としてPerlを勉強すると、
モチベーションを保てるしなあ。
757752:2007/09/24(月) 22:20:06
>>756
目標イメージがどれだけ鮮明かと言われるとイメージ力が苦手なもので自信がないですが、
A4用紙30枚くらいは書ける自信ならあります。
つまり、具体的なビジネスのアイデアは一応あります。

これまでにないSNSを作ろうかと思っています。
これまでにあるSNSだと流行らないので、これまでにないものを、と。

ただ、computer初心者なので(いやマジで)、TCP/IP, UNIX, HTTP, とかも逐次知識補充していかないと
codingできないありさまで、いつになったら作れるのやらという感じです。
たとえていえば、目標はハッキリしているつもりだが、途中の階段が暗黒なんです。
困りました。

だから、最近はオープンソースのWeb applicationに興味もってます。
ただ、実際に公開されてるものは大規模で、初心者向きではないですよね。
何かお勧めありますか?
758デフォルトの名無しさん:2007/09/24(月) 22:22:01
エロサイト作ろう
エロパワーは偉大だ
759デフォルトの名無しさん:2007/09/24(月) 22:23:24
どんなSNSだよ
760752:2007/09/24(月) 22:26:03
>>758
有益なアドバイスありがとうございます。
実はあるページ[1]をみてから、
エロサイトもいいかもと期待に股間をふくらませています。

儲けを狙うなら、エロですね!!!
エロパワーは偉大。

脚注
[1] ゆーすけべー日記: エロサイトの管理人説
http://yusukebe.com/archives/07/09/04/114840.html
761752:2007/09/24(月) 22:29:56
>>759
mixiとは違って、はてなダイアリーのキーワードやamazonの「この商品を買った人はこの商品も買ってます」
みたく、関連する情報を自動提示してくれるSNSですね。
まあ、そうするための具体的なアイデアもあるわけですが。
mixiだと自分の周りの人だけで交友が閉じてしまうのが残念なところだと考えています。
762sakura:2007/09/24(月) 22:30:45
>>748 749 750
    貴重な時間を割いて、回答して戴き有り難う御座います。今迄はリス
    トやスカラーで用が足りていた物ですから、今回の様にリファレンス
    を使わないといけないと言う物は、今迄は敬遠していました。

    お陰で、少しは以前よりかは近くなった様な気がします。特に最後の
    Data::Dumperは初めて使いました。大変参考になります。やはり、現
    実の実務は、簡単な事でもデータ構造は複雑になりがちです。

    今回は、実務では簡単な方で、まだ複雑な事は山の様にありますの
    で、それに応用したいと思っています。どうも有り難う御座いまし
    た。
763デフォルトの名無しさん:2007/09/25(火) 03:25:42
> エロサイトもいいかもと期待に股間をふくらませています
公共の場であんま膨らまさないようにな
764752:2007/09/25(火) 17:35:33
>>763
膨らまさないように気をつけます。
765デフォルトの名無しさん:2007/09/25(火) 17:41:25
Data::Dumper知らないってレベルなら、初めてのPerlとかから始めた方がいいよ。
オライリーの出してるPerl本なら駄本はないから、大きな本屋行って自分にあったのを買ってきたほうがいい。
766デフォルトの名無しさん:2007/09/25(火) 18:21:24
モジュールを使うとサーバのメモリ制限(2MB)でプロセスが止められてしまうのですが、
何か良い回避方法はないでしょうか?
HTML::Templateはループ回数が多くなると停止、Jcodeに至っては文字コードの変換さえ出来ませんでした。
jcode.plは使えるのですが。。PerlのVerは5.00503です。
767デフォルトの名無しさん:2007/09/25(火) 18:30:31
>>766
他のサーバに移る
768デフォルトの名無しさん:2007/09/25(火) 18:31:18
いい加減そんな腐った鯖窓から投げ捨てちゃえ
769デフォルトの名無しさん:2007/09/26(水) 00:21:02
$EXP = `/home/〜/***.exp [引数1] [引数2]`;
みたいな形でPerlでexpectファイルを実行してその結果を変数$EXPに入れてる

この.expファイルではTelnetで別マシンにログインしてそこで実行したコマンドと
その結果を全て変数内に入れるようにしてるんだけど
この.expファイルを全てNet::Telnetを使ってwaitforとprintで対話式に書いたPerlのファイルに書き直したい。

expectを使った場合は[user@domain] #なども含めてプロンプトで表示される内容全てが
返ってくるけどそれと同じようにNet::Telnetを使った場合でもログインからログアウトまでの
プロンプトの表示内容全てが返ってくるようにしたいんだけど何か簡単な書き方はない?
waitforの部分全てを変数に入れてprintしても全てが出されるわけじゃないしどうしたらいいか分からない。
770デフォルトの名無しさん:2007/09/26(水) 01:06:26
>>757
ビジネスのアイデアあるのに自分でコーディングするのはもったいない。
コーディングの得意な人に任せてビジネスに専念すべし。
771デフォルトの名無しさん:2007/09/26(水) 02:09:25
>>757
Catalyst でも使ってみるといいかも。
772デフォルトの名無しさん:2007/09/26(水) 02:16:46
>>770
自分でコーディングできるのに
他人にまかせるのはカネがもったいない。

自分でアイデアを出して
自分でコーディングしたほうがいい
773デフォルトの名無しさん:2007/09/26(水) 05:17:05
> A4用紙30枚くらいは書ける自信ならあります。

100 枚くらい書けないとだめじゃね?
774デフォルトの名無しさん:2007/09/26(水) 06:19:02
>>772
本当に優れたアイデアなら金なんて後でいくらでも回収できる。
機会損失がある方が勿体ない。自分でなんでもやるのはプログラマに見られる悪傾向。
775デフォルトの名無しさん:2007/09/26(水) 06:51:29
>>769
この辺じゃダメですか。
http://search.cpan.org/search?query=Expect
776デフォルトの名無しさん:2007/09/26(水) 14:30:06
Perl付属のpiconvって入力側の文字コードを自動判定する機能や改行コードの変換機能ってあるんでしょうか?
今、Linuxで文字コード変換用の為にnkfを入れるか既に入っているPerlで済ませるか迷っているのですが。
777デフォルトの名無しさん:2007/09/26(水) 15:29:37
>>776
こういう人って、なにかの精神病なの?

778デフォルトの名無しさん:2007/09/26(水) 15:38:59
Linux に nkf 入れてないとか・・・
779デフォルトの名無しさん:2007/09/26(水) 15:41:28
>>777
「自分で調べるなんてのは下等人種のやること」ってやつだろ。
780デフォルトの名無しさん:2007/09/26(水) 16:05:00
>>776
piconvよりもPerlのEncodeで正規表現とパイプさせれば一気に改行も出来るんじゃねえの?
781776:2007/09/26(水) 16:07:58
とりあえずmanやperldocでは改行の変換についての記述が無かったのでここで聞いてみたのですが…。
あるのでしょうかないのでしょうか?
782デフォルトの名無しさん:2007/09/26(水) 16:20:58
perldocになければないんじゃないの?
なければ自分で書き換えたバッチファイル作ればいいんじゃない?piconvt参考にしてさ。
Encodeモジュール知ってれば大した作業じゃないっしょ。

>>777は何が言いたいんだろ。それに合いの手を入れる>>779も。おまいらマジで病んでる。
783デフォルトの名無しさん:2007/09/26(水) 16:21:46
>>781
piconvを読めよ
784デフォルトの名無しさん:2007/09/26(水) 16:31:54
nkfなくてもperlならたいていあるので

perl -pe 'BEGIN{binmode STDIN,":encoding(sjis):crlf";binmode STDOUT,":encoding(euc-jp)"}'

みたいにやることはたまにある。
785デフォルトの名無しさん:2007/09/26(水) 16:49:25
>>784
>:crlf
こんなもんあったのか。知らんかったよ。
786776:2007/09/26(水) 17:01:57
>>780>>782>>784
レスありがとうございます。
>>784さんのやり方で改行の変換も出来そうですね。
Encodeのperldocは一通り読んだつもりでしたけど、
encogingは見落としていました。
改行指定出来たんですね、これはとても助かります。
nkfはわざわざ入れなくても済みそうです。
787デフォルトの名無しさん:2007/09/26(水) 19:03:47
おーどりーたんが改行文字が何であってもも一つに統一するスクリプトを5、6行くらいで書いていたな。
788デフォルトの名無しさん:2007/09/26(水) 23:38:05
モジュール関連もここでいいのかな

Expect.pmを使ってsshでログインするときにキーを保存するか聞いてくる場合、
既に保存しててそのままパスワードの入力に移行するとき、
何かしらの理由でタイムアウトしたときでsendの内容を分けたいんだけど
どうやって分岐させればいいか分からない。if文でやろうかと思ったけど

if($exp -> expect($timeout , $(yes/no)?)){
  send("yes\n");
}

と書くとマッチしないときでもtimeoutまで待たされるしtimeout書かないと次々に入力されて
使い物にならないしsleepだとマッチした場合も無駄に待つ羽目になるしスマートな書き方が思いつかない。

通常のexpectみたいに

expect "assword: " {send "password\n"} \
     "(yes/no)? " {send "yes\n";expect "assword: "; send "password\n"} \
     timeout { 〜 }

といった感じでexpectの中だけでプロンプトの内容毎にsendでの出力を分けたりできないの?
789デフォルトの名無しさん:2007/09/27(木) 00:01:15
>>788
例があるじゃん。マニュアル嫁。

# then do some pattern matching with either the simple interface
$patidx = $exp->expect($timeout, @match_patterns);

# or multi-match on several spawned commands with callbacks,
# just like the Tcl version
$exp->expect($timeout,
[ qr/regex1/ => sub { my $exp = shift;
$exp->send("response\n");
exp_continue; } ],
[ "regexp2" , \&callback, @cbparms ],
);

790デフォルトの名無しさん:2007/09/27(木) 00:29:54
>>789
おー出来た出来た
ありがとう
791デフォルトの名無しさん:2007/09/28(金) 17:06:02
環境はfedoracore6。cgi(webフォーム)を経由させてpostfixを起動させたいのですが、なぜか
できません。端末でcgiを実行させたら起動したのですが、cgi経由では起動しません。web上で行うと、
ユーザーモードになるので、root権限を持ってないとpostfixの起動や停止は出来ないというところ
まではわかったのですが・・・・。アドバイスよろしくお願いします。
cgi文
#!/usr/bin/perl
use CGI;
$choushu = '/etc/rc.d/init.d/postfix';
system("$choushu start &");
print "Content-type: text/html\n\n";
print "<html><body>\n";

print "長州力発進!!\n";

print "</body></html>\n";

以下はhtml文
<html>
<head>
<title>Registration</title>
</head>
<body>
<form action="sansan.cgi" method="post">
<input type="submit" value="起動!!">
</form>
</body>
</html>
792デフォルトの名無しさん:2007/09/28(金) 17:15:27
設定を直す。
793デフォルトの名無しさん:2007/09/28(金) 17:17:38
postfixの設定を見直すか強引にsudo使っちゃうか・・・
794デフォルトの名無しさん:2007/09/28(金) 20:05:17
>>791
Webminでも入れた方が幸せになれそうだが。

CGI プログラムからは適当なトリガファイルを触るだけにして、
そのファイルを監視して変化があればアクションを起こす root 権限
持ちのスクリプトをデーモンなり cron なりで動かすのが、
こういう場合の常套手段の一つ。
795デフォルトの名無しさん:2007/09/29(土) 01:36:29
>>791
perint "長州力発進!!\n"; が妙に気に入った
796デフォルトの名無しさん:2007/09/29(土) 08:20:44
どこにperintってあるの?
797デフォルトの名無しさん:2007/09/29(土) 13:46:41
perl -pe "s/perint/print/"
798デフォルトの名無しさん:2007/09/30(日) 02:54:22
お助けを!!

\n(0x0A)を含む任意の2文字を表すエレガントな書き方教えて下さい。

jpegファイルのブロックヘッダーからブロック長を取り出すのに
苦し紛れに/^\xff(.)([\x00-\xFF][\x00-\xFF])(.)/とか書いて
unpack ('n', $2)としてるんですが、どうにもばばっちくてorz
799デフォルトの名無しさん:2007/09/30(日) 02:59:32
>>798
/s修飾子
perlre読んどけ。
800デフォルトの名無しさん:2007/09/30(日) 03:10:02
うわっ 早速ありがとうござります。
/^\xFF(.)(..)(.)/s
801デフォルトの名無しさん:2007/09/30(日) 04:31:09
むしろunpackの使い方をもっと調べるべきだろう
802791:2007/10/01(月) 18:24:23
>>793>>794>>795返事遅れましたがありがとうございます。とにかく起動させてみたいのでsudoで強引に
起動させることに決めました。ところで質問なんですが、/etc/sudoersの設定の中でroot ALL=(ALL) ALL以外
の他に書き込めばいいんですよね?例えば、sudoでroot権限を与えたいユーザーをebizouとした場合、設定の中にebizou ALL=(ALL) ALL
と書きむのであっているでしょうか?また、httpd.confにUser apache,Group apacheと書かれているのですがこれにも/etc/sudoersの設定
に書き込まなければいけないのでしょうか?長文すいません。よろしくお願いします。
803デフォルトの名無しさん:2007/10/01(月) 19:53:05
もはやPerlの質問じゃないぜ
804デフォルトの名無しさん:2007/10/02(火) 01:27:05
現在Perlを勉強中なのですが、
括弧を省略できるとか、サブルーチンの呼出の&が抜ける
とか、今までやって来たプログラミング言語の常識が
全く通用しないので、色々と戸惑っているのですが、
こういうものは、なれるもんなんですかね?
805デフォルトの名無しさん:2007/10/02(火) 01:37:53
見易さを優先させるなら
省略できるものは省略しない
あとは自由に書け
806デフォルトの名無しさん:2007/10/02(火) 02:27:30
>>804
慣れないよ。
807804:2007/10/02(火) 03:36:09
>>805
自分で書く場合は、もちろんそうしてますし
use strictもしてます。
ですが、人のかいたコードを読む場合、その人の考えで書いてるんで
私の考えが通用しません。

808デフォルトの名無しさん:2007/10/02(火) 04:22:38
以下の用な簡単な計算を行うプログラムなのですが質問させてください。

文字列があり、各文字に対応する数字があるとします。
例: 
文字列:ABCA
A=4
B=5
C=6

この場合に文字に対応する数字の合計を出したい場合、
(文字列の数字の合計=4+5+6+4=19)どうすればいいでしょうか?
書く前は「簡単にできるだろう」と思っていたのですが
いざ書こうとしたらどうやって書いたらいいか思いつきませんでした。
809デフォルトの名無しさん:2007/10/02(火) 04:37:54
>>808

$num{'A'} = 4

と言うようにハッシュに対応する数値を入れて、文字毎に数値を取り出して計算する
810デフォルトの名無しさん:2007/10/02(火) 07:33:39
{'A'}
811デフォルトの名無しさん:2007/10/02(火) 07:41:29
>>807
文法は一つしかないんだから、全部覚えればいいだけの話だよ。
頭固すぎ
812デフォルトの名無しさん:2007/10/02(火) 08:36:41
別に無理して人が書いたものを読む必要ないんじゃないかな。
仕事が嫌なら、地面で穴を掘っている周辺で腕をくるくる回す簡単なお仕事に
転職すればよろし。
813デフォルトの名無しさん:2007/10/02(火) 10:00:47
>>804
> こういうものは、なれるもんなんですかね?

慣れるか否かという点にもっとも大きく関係するファクターは、あなたの知的能力。
814デフォルトの名無しさん:2007/10/02(火) 12:09:28
>>807
Python やらないか?
815デフォルトの名無しさん:2007/10/02(火) 12:20:15
ウホ いい言語
816デフォルトの名無しさん:2007/10/02(火) 15:29:52
>>807
向いてないんじゃないかな・・・
817デフォルトの名無しさん:2007/10/02(火) 15:44:38
>>804
お前はなれないだろう。
818デフォルトの名無しさん:2007/10/02(火) 20:43:13
Aがキーで
4が実体?
819デフォルトの名無しさん:2007/10/02(火) 21:13:27
ヴァリューじゃね?
820デフォルトの名無しさん:2007/10/02(火) 22:22:30
正規表現 /\s*([0-9A-Za-z]+)=([\x22\x27])([^\2]*)\2\s*/
でHTMLタグの属性を取得を試みたのですがうまくいかねぇっす。
後方参照の否定マッチってどうやってやるの?
821デフォルトの名無しさん:2007/10/02(火) 23:52:12
HTMLの解析に正規表現を使うべからず。
822デフォルトの名無しさん:2007/10/02(火) 23:57:40
>>820
HTML::Parserとか使えば?
823デフォルトの名無しさん:2007/10/03(水) 00:20:23
>>821,822

質問の仕方が悪かったです。
HTMLの話は抜きで正規表現で後方参照で否定マッチする方法はありますか?

#Web::ScraperやHTML::Parser、HTML::TreeBuilderの使用の検討はしましたが
#タグにidやclassが振ってなくて構造体でのスクレイピングが行いにくいので正規表現でやってます。
824デフォルトの名無しさん:2007/10/03(水) 00:26:48
(["'])(.*?)\2

じゃあかんの?
825デフォルトの名無しさん:2007/10/03(水) 00:33:48
>>824

HTMLならそれでOKっすね。
ありがとうございます。
後方参照の否定マッチってできないもんですかね?
826デフォルトの名無しさん:2007/10/03(水) 00:39:07
否定読みを駆使すれば出来る。
827デフォルトの名無しさん:2007/10/03(水) 18:13:57
おまえウザイよ。いいかげんにしろ。
828デフォルトの名無しさん:2007/10/03(水) 21:24:25
POSTデータを数値に変換したいんですが
どうすればいいんでしょうか?

例えばフォームからSJISの「あ」という文字を取ると「82A0」
という文字列が取れるんですが
これを16進数の数値として扱って10進数に変換ってどうやればいいんでしょう?

ord関数使うのが一般的でしょうか?
829デフォルトの名無しさん:2007/10/03(水) 21:52:57
830デフォルトの名無しさん:2007/10/03(水) 21:59:01
>>829
ありがとうございます
バイナリ→10進数の変換でいけるのかな?
やってみます
831デフォルトの名無しさん:2007/10/03(水) 22:21:22
>>829
できませんでした…orz

そもそもポストで取ってるので
文字コードが文字列で入ってる状態です

「あ」で「%82%A0」です
この「%82%A0」を数値に変換したいんですが
どうすればいいんでしょ?

例えばCならintで宣言した変数にぶっこんだら勝手に数値として扱ってくれますが
perlだとどうすればいいのやら…

ためしに「%82%A0」+「%82%A0」みたいなことすると「%82%A0」は数字の1として扱われてるよう
「あ」でも「い」でも同じ数値の1
832デフォルトの名無しさん:2007/10/03(水) 22:36:44
自己解決しました

$hoge="「%82%A0";
$hoge10=~ s/%//g;
$hoge100 = hex($hoge10);


%がよけいでした、これ抜いたら普通に16進数として扱ってくれました

833デフォルトの名無しさん:2007/10/03(水) 23:07:11
^^
834デフォルトの名無しさん:2007/10/04(木) 01:07:59
またおまえか。いらん事すんな
835デフォルトの名無しさん:2007/10/04(木) 08:09:09

後方参照の否定マッチってできないもんですかね?
836デフォルトの名無しさん:2007/10/04(木) 17:21:08
Class::DBI を使って Postgres のデータを操作したいのですが、
Postgres のテーブル内に update という名のカラムがあるとまずいのでしょうか?

Column 'update' in My::Class::Hoge clashes with built-in method at 〜

カラム名を変えないとだめですか?

837デフォルトの名無しさん:2007/10/04(木) 18:11:57
スレ違い
カラム名変えてやってみろよクソが
838デフォルトの名無しさん:2007/10/05(金) 09:38:35
>>836
> Column 'update' in My::Class::Hoge clashes with built-in method at 〜
>
> カラム名を変えないとだめですか?

Class::DBI の _make_method から出てるエラーですね。
update メソッドなのか、カラム名から生成されたアクセサなのかわからなくなるので、
カラム名変えるべきなのかも。

839デフォルトの名無しさん:2007/10/05(金) 16:27:46
>カラム名を変えないとだめですか?

自分で気づいているなら、なぜ自分で試さない?
このスレの住人に試させてオイシイとこだけ持ていくつもりか?
840デフォルトの名無しさん:2007/10/05(金) 16:45:17
BMPの中に指定された色があるか判断する関数がないかなといろいろ探しているのですが見つからないので
知っていたら教えていただけないでしょうか
例えばRGBの赤(ff0000)があるかどうか判断するような関数がないものでしょうか
841デフォルトの名無しさん:2007/10/05(金) 16:51:38
GD とか ImageMagick とか Imager とか
842デフォルトの名無しさん:2007/10/05(金) 16:54:06
BMP はベタイメージだから、ヘッダを除いたデータに対して ABGR で検索してみて
見つかった場合にその値が4バイト境界にまたがっていなければ (4の倍数で割れる位置にあれば) 指定色の発見
で良いかと思います。
パレットつきならパレットに対してサーチすりゃいいだけなので、その画像がフルカラーなのかパレット付きなのか
チェックするのが最初の手順ってことですかね
843デフォルトの名無しさん:2007/10/05(金) 17:11:03
>>841 >>842
サンクス!
早速やってみようと思う
844836:2007/10/05(金) 17:39:07
>>837-839
既存のプログラムに影響があるので、できれば Postgres のテーブルの変更は
避けたかったのですが、やむを得ないようですね。
ご回答ありがとうございました。
845デフォルトの名無しさん:2007/10/05(金) 18:18:09
>>837-839 の一連の回答において、>>838 のように親切丁寧な回答は評価されるべき。
846デフォルトの名無しさん:2007/10/05(金) 20:21:07

自作自演かっこ悪い
847デフォルトの名無しさん:2007/10/05(金) 20:30:04
って書く奴もかこ悪い
848デフォルトの名無しさん:2007/10/05(金) 20:36:25
ということにしたいのですね。
849デフォルトの名無しさん:2007/10/05(金) 21:26:12
自分自身を誉め称える
850デフォルトの名無しさん:2007/10/05(金) 21:34:50
それがここだ
851デフォルトの名無しさん:2007/10/05(金) 22:58:37
852デフォルトの名無しさん:2007/10/05(金) 23:03:49
Jcodeに空白文字列のリファレンス渡したら
変な文字列が詰め込まれて帰ってくるんだけど
うちだけ?じかに値渡すとなんとも無いのだが。
853デフォルトの名無しさん:2007/10/05(金) 23:10:20
それさ初期化して無いやつのリファレンス渡してない?
my $str = '';
ってやってるのと
my $str;
は中身違うよ
854デフォルトの名無しさん:2007/10/05(金) 23:39:58
>>853
もしかしたら途中でundef帰ってたかもしれない
ありがとう
855デフォルトの名無しさん:2007/10/06(土) 00:03:18
Perlプログラムでこういう記述があるわけだが間違っているのか?

$bankgold += 1000; &bankwrt;
(※ここでは$bankgoldに50000が代入されているとする)

$bankgoldという変数に1000を+し、&bankwrtを実行するというものなんだが。
しかし、これだと何故だか+した数値(1000)になってしまう。
俺の理想では$bankgold(50000)に+1000しているから51000になってほしいのだが、
なぜ、+した数値になるのかがわからん。

因みに&bankwrtの中身は

open(BANK,">********");
flock(BANK,2);
print BANK "$bankgold";
close(BANK);
}

このサブルーチンを実行すれば最新(その都度、代入された)$bankgoldが
*******ファイルに保存される。
(************は例で実際にはこうは書いていないです)
856デフォルトの名無しさん:2007/10/06(土) 00:11:13
>>855
デバッグしろよ。
857デフォルトの名無しさん:2007/10/06(土) 00:20:18
値を渡してないのに51000になるわけがないw
858デフォルトの名無しさん:2007/10/06(土) 00:26:24
>>855
gold じゃなくて silver に変えればいけると思います





   …って書くと本当にやりそうだなこの人
859デフォルトの名無しさん:2007/10/06(土) 07:51:53
日本語でおk
860デフォルトの名無しさん:2007/10/06(土) 08:46:02
gold を silver に変えるとこれまでのアトピーがうそのように治り、
今では毎晩女の子とエッチな夜を過ごしています。
861844:2007/10/06(土) 10:00:46
>>851
ありがとうございます。
862デフォルトの名無しさん:2007/10/06(土) 10:34:39
>>855
こんなのカンタン。1行目に

$bankgold = 50000;

って書いてごらんよ。

>(※ここでは$bankgoldに50000が代入されているとする)
どこにも代入してないじゃん。
863デフォルトの名無しさん:2007/10/06(土) 12:39:48
>>858
ほっほんとうですか!?
親切にありがとうございます!!!









これでいいか?
>>862
ここでは代入してないけど、別ファイルで代入してるから、
一応、50000になっていると考えてくれ。
864デフォルトの名無しさん:2007/10/06(土) 12:59:46
それが代入されてないんだろ
865デフォルトの名無しさん:2007/10/06(土) 13:51:05
取りあえず&bankwrt;を消してどうなるか書き込んでくれ。
866デフォルトの名無しさん:2007/10/06(土) 13:52:13
あー、すまん。$bankgold += 1000;だった。
867デフォルトの名無しさん:2007/10/06(土) 13:53:21
プロクラムは、プログラマの意図したとおりに動くのではなく、書いたとおりに動いているだけである。

原因は、
$bankgoldに50000を代入していない
+=1000する前か、した後でbankwrt()を呼び出す前に値を書き換えてしまっている
bankwrt()内のopenに失敗している
のいずれかでしょ。

グローバル変数を使って、あちこちで扱うと、途中で何しているか自分でも分からなくなるので、
値渡しのサブルーチンを作ると吉。

use strict;
my $bankgold = 50000;
$bankgold += 1000;
bankwrt($bankgold);

sub bankwrt {
my $bankgold = shift; ### 受け取った引数を…
open(BANK,">********") or die $!; ### 必ずエラートラップすべし
flock(BANK,2);
print BANK $bankgold; ### …ただ書き込むだけ!
close(BANK);
}
868デフォルトの名無しさん:2007/10/06(土) 13:54:43
やさしい奴だな、
だがuse warningsもほしい。
869デフォルトの名無しさん:2007/10/06(土) 14:06:56
だから、デバッグしろよ。
870デフォルトの名無しさん:2007/10/06(土) 19:42:28
Crypt::RC6を使おうと思ってるんだが
16bitの秘密鍵はどうやって作ればいいんだ?

だいたい、bitがどのくらいなのかもよく分からん俺なんだけど。
871デフォルトの名無しさん:2007/10/06(土) 19:47:40
16byteの間違いじゃないの?
872デフォルトの名無しさん:2007/10/06(土) 19:49:06
>>871

ああ、ゴメン そう16byte

どうやって作るの?
873デフォルトの名無しさん:2007/10/06(土) 20:01:55
ちなみに、コードは
#! /usr/bin/perl
# rc6.pl

use Crypt::RC6;

my $key = "";

my $cipher = new Crypt::RC6 $key;

my $plaintext = "This is apple.";

my $ciphertext = $cipher->encrypt($plaintext);

print "$ciphertext";


で、エラーは
Error: key must be 16, 24, or 32 bytes in length. at rc6.pl line 8.
874デフォルトの名無しさん:2007/10/06(土) 20:02:30
$keyは分からなかったから入れてないんだ
875デフォルトの名無しさん:2007/10/06(土) 20:10:19
for (0..0xf) { $key .= pack("C", rand(0x100)) }
876デフォルトの名無しさん:2007/10/06(土) 20:30:20
>>875

kwsk please
877デフォルトの名無しさん:2007/10/06(土) 20:33:26
875 じゃないけど簡単に書くと
my $key = '';
for(my $i = 0; $i++; $i < 16){
  $key .= pack("C", rand(256));
}
878デフォルトの名無しさん:2007/10/06(土) 20:36:15
環境が許すなら/dev/urandomから読むのがお勧め
if (open my $fh, '<', '/dev/urandom') { read($fh, $key, 16); }
879デフォルトの名無しさん:2007/10/06(土) 21:12:25
>>877,878

thx

どっちも、それぞれ書いて、$keyだけprintしてみたんだけど
877のは、何にもprintされなくて、878のは、文字化けっぽい(?とかが入ってる)のがprintされたよ・・・

どうしたら良いのか
880デフォルトの名無しさん:2007/10/06(土) 21:21:20
>>879
> どうしたら良いのか

勉強する。それしかない。
881デフォルトの名無しさん:2007/10/06(土) 21:32:52
じゃあ、おねがいだ

16bytesがどんなものかだけ、教えてくれないか
882デフォルトの名無しさん:2007/10/06(土) 21:39:01
128bitsのことだろう
883デフォルトの名無しさん:2007/10/06(土) 21:48:08
半角16文字
884デフォルトの名無しさん:2007/10/06(土) 21:55:37
>>881
君の最後の一文「教えてくれないか」 が16bytesだ。さては狙ったな
885デフォルトの名無しさん:2007/10/06(土) 22:09:50
16bytesのキーは出来た。勉強しマスタ

で、そうすると今度は

Error: block size must be 16 bytes.

ってエラーが・・・
886デフォルトの名無しさん:2007/10/06(土) 22:12:59
unicode の半角 16 文字が 16byte であるはずがない
887デフォルトの名無しさん:2007/10/06(土) 23:03:40
プッ・・・知ったかぶり
888デフォルトの名無しさん:2007/10/06(土) 23:08:52
16bytes単位に切り詰めろと言う事。
$plaintext = "A" x 0x10;
にしたらエラー出んだろ。
889デフォルトの名無しさん:2007/10/07(日) 13:00:16
このスレはキチガイの寄り合い所帯だな
890デフォルトの名無しさん:2007/10/07(日) 13:01:22
>>888

なるほど、アルファベット16文字ならOKだな

んでも、これで、利用価値あるんだかどうなんだか
891デフォルトの名無しさん:2007/10/07(日) 13:25:35

       /ニYニヽ
   (ヽ   /( ゚ )( ゚ )ヽ   /)
  (((i ) /::::⌒`´⌒::::\  ( i)))  でっていうwwwwwwww
 /∠_| ,-)___(-, |_ゝ \
( ___、  |-┬-|    ,__ )
    |    `ー'´   /´
    |         /
892デフォルトの名無しさん:2007/10/07(日) 13:28:13
1年くらい前から思ってたんだけど、このスレってやたらレベル低くね?
WebProgのPerlスレに統合しちゃった方がいいと思うよ。
893デフォルトの名無しさん:2007/10/07(日) 13:33:02
CGIって何ですか?みたいな質問連発されるのは御免被る。
894デフォルトの名無しさん:2007/10/07(日) 14:03:06
テンプレを読まない質問者は論外だけど
回答者も、どうでもいいことで揚げ足取ってたり
問題解決にも何にもなってない返答して得意になってる奴の返答が多かったりで
昔と比べるとかなり程度が低くなってるのは否めないな、
というのがROMってる俺の感想。
895デフォルトの名無しさん:2007/10/07(日) 14:23:49
んじゃ回答は君に任せた
896デフォルトの名無しさん:2007/10/07(日) 14:37:25
ROMってるって奴に「んじゃ回答は君に任せた」って書いてもしょうがないのでは
897デフォルトの名無しさん:2007/10/07(日) 14:42:00
Crypt::RC5の方が断然使いやすかったと言うことに気付いたよ
898デフォルトの名無しさん:2007/10/07(日) 14:53:19
>>894
あなたの知性を貸してください
899デフォルトの名無しさん:2007/10/07(日) 15:27:16
読解力や理解力の無い
質問者が多過ぎるのが問題。
900デフォルトの名無しさん:2007/10/07(日) 16:59:59
自称ハイレベルな人はこのスレにどうぞ

【Perl上級者コーナーPart01】
http://pc11.2ch.net/test/read.cgi/php/1024741312/l50
901デフォルトの名無しさん:2007/10/07(日) 18:40:01
activeperlだと、getppidとか実装されてませんでした(´・ω・`)
902デフォルトの名無しさん:2007/10/07(日) 20:17:10
ちょっと、お尋ねするが

Gmailのfeedの認証はBASICだとダメなの?

LWP::UserAgentで、BASIC認証してみたけどエラーが返ってきた。
903デフォルトの名無しさん:2007/10/08(月) 00:17:15
perl と CGI の区別が付かないバカ発見〜〜〜〜 ⇒⇒⇒892
904デフォルトの名無しさん:2007/10/08(月) 01:28:48
すげぇ知能低そう。よくプログラミングなんて出来るな・・・。
905デフォルトの名無しさん:2007/10/08(月) 01:46:41
プログラミングできるかどうか、そのレスだけから判断するのは不可能だ。
906デフォルトの名無しさん:2007/10/08(月) 05:23:45
>>900
裸の王様がいっぱい居そうなスレだなww
907デフォルトの名無しさん:2007/10/08(月) 06:26:43
どんなバカでもコードを書けるようにしてくれるPerl
908デフォルトの名無しさん:2007/10/08(月) 07:44:10
その点PHPには敵わない
909デフォルトの名無しさん:2007/10/08(月) 11:24:03
このスレにも裸の王様が何人かいてワロス。
910デフォルトの名無しさん:2007/10/08(月) 11:43:30
俺にとってはPerl=コマンドラインツールだな
911デフォルトの名無しさん:2007/10/08(月) 21:01:29
そんなことは聞いてないよ
912デフォルトの名無しさん:2007/10/08(月) 21:07:10
     ,.;'‐、____,:-;';:、.
   /;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;ヽ. 
  /;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;ヽ.   
  /;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ. 
  i;:;:;:;:;:/ノ-'-''~ヽ;:;:;ヽ'''-ヽ、;:;:;:;:;| 
  {;:;:;:;:ノ■■■   ■■■ヽ;:;:;} 
  ヽ;:;{    _   _    |;:;:{
   };:;|三/ ●),. 、(● ヽ三 |〈
   ヽ| ~ ゙='~/:::ヾ='~゙  | }
   { |∫ ∴ (,.、::,. )  ∵ |/
    ゝ::●. ...:人:人:::.....  ...!
    {;;ヽ:.:.:.:.:.:.:.<Ξ>:.::.:.:.:.:.:.:/;}   <perl と CGI の区別がつかないヤツ必死だな
   / ヽ:.:.:.:.::.:.:.:.:.:.:.:.:.:.:/ \   
 /    |ヽ:.:.:.:.:.:.:.:.:.:/|    \
       ヽ ̄ ̄ ̄  /
        ヽ___/
913デフォルトの名無しさん:2007/10/08(月) 23:04:06
C++からPerlを呼び出す方法はありますか?

JavaやRubyはC/C++から呼び出すことができますが、Perlも
できればいいなと思いまして。
914デフォルトの名無しさん:2007/10/08(月) 23:34:01
915デフォルトの名無しさん:2007/10/08(月) 23:58:02
>>914

thx

今夜は眠れ無そうw
916デフォルトの名無しさん:2007/10/09(火) 14:31:24
>>913

Windows でActivePerl を使っているなら、PerlEzを使う.
917デフォルトの名無しさん:2007/10/10(水) 04:15:33
C/C++のプログラムのなかに自作のパールモジュールのサブルーチンを組み込むためには
どういうコードをすればいいでしょうか?
perlcall prlembedのドキュメントではとくにモジュールやサブルーチンの場所を記述していない?ようでしたが、
libフォルダのどこのモジュールを使う、というふうに指定するのはどうするのでしょう?
918デフォルトの名無しさん:2007/10/10(水) 15:04:43
>C/C++のプログラムのなかに

スレタイ100回読んでこい
919デフォルトの名無しさん:2007/10/10(水) 16:22:07
fpingの出力値の数字だけを抜き出すプログラムを作りたいのですが、うまくできません。

www.yahoo.co.jp:[0], 84 bytes, 18.1 ms (18.1 avg, 0% loss)の始めの18.1だけ抜き出したいです。

substrコマンドを使ったんですが、これだとURLの数がかわると変なところを抜き出してしまいます。
例えばbytes,より前を切り取り、ms ( も切り取る方法ってありますか?
920デフォルトの名無しさん:2007/10/10(水) 16:24:05
(.*?)bytes, (\d{1,4}\.\d{1,2} ms) \(
正規表現
921デフォルトの名無しさん:2007/10/10(水) 17:00:33
>>920
ありがとうございます!
やってみます!
922デフォルトの名無しさん:2007/10/10(水) 17:07:15
>>917
OSは何使ってんの?WindowsのActive Perl なら、簡単にできるけど、
UNIXはいじったことないから知らん。
923デフォルトの名無しさん:2007/10/10(水) 19:28:29
system("unko.pl");
924917:2007/10/10(水) 21:20:48
>>922
winXP, ActivePerlです。
もしよければ簡単な例を示していただけないでしょうか?
925デフォルトの名無しさん:2007/10/11(木) 11:01:34
>>924
やっぱりそうか。あのね、他人のアドバイスをないがしろにしていると、
誰にも相手をしてもらえなくなるよ。
>Windows でActivePerl を使っているなら、PerlEzを使う.
>>916 で言われたなら、PerlEzのドキュメントぐらい読んでみたらどうなのさ。
次の質問は、それからだ。
926デフォルトの名無しさん:2007/10/11(木) 13:00:23
ここは基地外スレだな
927デフォルトの名無しさん:2007/10/11(木) 20:22:10
ちょっとすみません!
超初心者なんですけど、100から300までの整数で、素数じゃないならその数字を、素数なら数字の代わりにPrimeと表示したいんですけど全然わからないんで教えてください
928デフォルトの名無しさん:2007/10/11(木) 20:26:00
宿題は宿題スレでやれ。
929デフォルトの名無しさん:2007/10/11(木) 20:35:58
ここまでストレートな宿題依頼も珍しいw
930デフォルトの名無しさん:2007/10/11(木) 20:48:32
すみません。
Perlの宿題スレがなかったもんでレスしました
931デフォルトの名無しさん:2007/10/11(木) 20:54:30
素数の求め方ぐらい中学校で習ってるだろ
それをそのままコードにしろよ
932デフォルトの名無しさん:2007/10/11(木) 21:00:25
その素数の求め方がわからない・・・・
933デフォルトの名無しさん:2007/10/11(木) 21:13:07
それまでの整数でわって小数のくらいがでたら素数って判定にすれば
いいじゃん。2重ループで終了
934デフォルトの名無しさん:2007/10/11(木) 21:37:56
/ヾ〜〜╋┓ ┣¨┣¨┣¨┣¨┣¨ ┃┃¨╋┓┃┃¨╋┓
935デフォルトの名無しさん:2007/10/11(木) 21:54:55
もういいじゃない。教えてやろうぜ
>>932
これで大丈夫だぞ。


$,=" ";
print grep{ (1 x $_) =~ /^(11+)\1+$/ or $_ = "Prime"} (100..300);
936デフォルトの名無しさん:2007/10/11(木) 23:03:13
>>935
ありがとうございました!
937デフォルトの名無しさん:2007/10/11(木) 23:47:06
また黒魔術な書き方しやがって。
938デフォルトの名無しさん:2007/10/11(木) 23:59:34
昔見たときは意味わからなかったな。懐かしい。
939デフォルトの名無しさん:2007/10/12(金) 00:49:14
いい答えだ
940デフォルトの名無しさん:2007/10/12(金) 01:01:16
コピペうざい
941デフォルトの名無しさん:2007/10/12(金) 01:07:56
提出したら提出したで困る気がするなw
942デフォルトの名無しさん:2007/10/12(金) 01:09:19
素直にforループ使えよ。明らかにforループの練習問題だろ。
943デフォルトの名無しさん:2007/10/12(金) 01:17:55
(1 x $_) =~ /^(11+)\1+$/
誰か解説して
944デフォルトの名無しさん:2007/10/12(金) 02:47:13
無茶しやがって
945デフォルトの名無しさん:2007/10/12(金) 02:50:50
1. 調べたい数値と同じ長さだけ '1' を並べた文字列を作る。
 e.g. $_ == 9 なら '111111111'

2. その文字列と同じ長さの文字列を、「ある長さの文字列」を
 繰り返すだけで作れるか = 割り切れるかどうか調べる。
 e.g. '111111111' =~ /^(11+)\1+$/ は
  (11+) が '111' に、\1+ が '111''111' にマッチした時点で真

3. 割り切れなければ (マッチ演算子が偽を返せば) 素数なので
 $_ に 'Prime' を代入

「抽出」や「除外」ではなく「変換」という行為が求められている場面で
grep を使ったり、ブロック中で $_ を変更している辺りは「黒」だと思う。
946デフォルトの名無しさん:2007/10/12(金) 07:08:14
なるほどー、よく分かったわ。thx
947デフォルトの名無しさん:2007/10/12(金) 11:24:57
提出したら、先生に か わ い が っ て もらえそうだな。
948デフォルトの名無しさん:2007/10/12(金) 11:43:02
ユーザにコードを入力させて実行させたいのですが、
use Safe意外に何か良い方法あるでしょうか?
949デフォルトの名無しさん:2007/10/12(金) 11:44:44
実行させたい→実行したい
意外→以外
950デフォルトの名無しさん:2007/10/12(金) 13:23:22
>>948
セキュリティを重視するなら、共有レンタルサーバと同じ方法をとることも考えられる。
具体的にどうすればいいのかはWeb板で。
951デフォルトの名無しさん:2007/10/12(金) 13:32:18
次スレ立てる人はテンプレの変更よろ。

● 2007/10/12現在の最新版: 5.8.8
● 2007/10/12現在の開発版: 5.9.5

止まってるので削除:
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
Perldoc.com: http://www.perldoc.com/
952デフォルトの名無しさん:2007/10/12(金) 22:59:21
5.10まだ〜?
953デフォルトの名無しさん:2007/10/13(土) 00:46:33
ActivePerl5.8.8で
バッチファイルからwperl実行すると
wperl以降のバッチファイルの行が
実行されないのですが
どうすれば回避できるでしょうか
954デフォルトの名無しさん:2007/10/13(土) 13:49:19
>>953
start wperl......
955デフォルトの名無しさん:2007/10/13(土) 13:55:07
>>953
さてはバッチコマンドに call があるの知らないな?
956デフォルトの名無しさん:2007/10/13(土) 18:07:13
>>954-955
すいません、DOSコマンドは並べ立てる程度しか分からないのでorz
当てずっぽうにcmdとか試してみたのですがうまくいかなくて、
無理やりperl側からcmdプロセスを潰してました・・
これでバッチファイルだけできれいにできそうです。ありがとー
957デフォルトの名無しさん:2007/10/14(日) 00:00:55
100の要素数を持つ配列を定義し
すべての要素に初期値として1を入れたいのですが
一番簡単な(できれば早い)コードはどういうのでしょう?

$a[$_] = 1 for (0..99);

↑これだと遅いですよね?
958デフォルトの名無しさん:2007/10/14(日) 00:08:11
map {$_++} @x[0..99];
959デフォルトの名無しさん:2007/10/14(日) 00:28:35
my @a = (1) x 100;
960デフォルトの名無しさん:2007/10/14(日) 00:33:50
引数が全然違うだろうが。ヴァカか?(藁
961デフォルトの名無しさん:2007/10/14(日) 18:59:57
>>958-959 ありがとうございます 数パターン試してみました

$ cat timethese_array.pl
#!/usr/bin/perl
#use strict;
#use warnings;
use Benchmark qw(timethese cmpthese);

timethese(1,{
PatternFor => '$a[$_] = 1 for (0..999999);',
PatternForeach => '$_ = 1 foreach (@b[0..999999]);',
PatternMap => 'map {$_ = 1} @c[0..999999];',
PatternList => '@d = (1) x 1000000;',
});

$ perl timethese_array.pl
Benchmark: timing 1 iterations of PatternFor, PatternForeach, PatternList, PatternMap...
PatternFor: 0 wallclock secs ( 0.41 usr + 0.03 sys = 0.44 CPU) @ 2.28/s (n=1)
(warning: too few iterations for a reliable count)
PatternForeach: 1 wallclock secs ( 0.30 usr + 0.00 sys = 0.30 CPU) @ 3.37/s (n=1)
(warning: too few iterations for a reliable count)
PatternList: 0 wallclock secs ( 0.11 usr + 0.00 sys = 0.11 CPU) @ 9.17/s (n=1)
(warning: too few iterations for a reliable count)
PatternMap: 1 wallclock secs ( 0.55 usr + 0.02 sys = 0.56 CPU) @ 1.78/s (n=1)
(warning: too few iterations for a reliable count)
962デフォルトの名無しさん:2007/10/14(日) 20:43:38
> 引数が全然違うだろうが。ヴァカか?(藁

あたまたりてる?
963デフォルトの名無しさん:2007/10/14(日) 21:02:50
誤爆じゃねえの?
964デフォルトの名無しさん:2007/10/14(日) 23:47:40
>>961
追試。

#!/usr/bin/perl -w
use strict;
use Benchmark qw(timethese);
timethese(-5, {
  For1 => sub { my @arr; $arr[$_] = 1 for 0..9999; 1 },
  For2 => sub { my @arr; $_ = 1 for @arr[ 0..9999 ]; 1 },
  List => sub { my @arr; @arr = (1) x 10000; 1 },
  Map1 => sub { my @arr; map $arr[$_] = 1 , 0..9999; 1 },
  Map2 => sub { my @arr; map $_ = 1 , @arr[ 0..9999 ]; 1 },
  Map3 => sub { my @arr; map { $arr[$_] = 1 } 0..9999; 1 },
  Map4 => sub { my @arr; map { $_ = 1 } @arr[ 0..9999 ]; 1 },
});

For1: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 129.33/s (n=681)
For2: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 151.32/s (n=798)
List: 5 wallclock secs ( 5.32 usr + 0.00 sys = 5.32 CPU) @ 367.46/s (n=1955)
Map1: 6 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 117.95/s (n=622)
Map2: 6 wallclock secs ( 5.24 usr + 0.00 sys = 5.24 CPU) @ 152.23/s (n=798)
Map3: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 112.07/s (n=591)
Map4: 5 wallclock secs ( 5.30 usr + 0.00 sys = 5.30 CPU) @ 71.93/s (n=381)
965デフォルトの名無しさん:2007/10/15(月) 00:00:53
気にするほど差がある訳じゃないな。
966デフォルトの名無しさん:2007/10/15(月) 00:50:19
>>964
追試ありがとうございます
Map2とMap4は、自分の環境で試してみると
それでも1.5倍ほどの差がありました
ブロックの有無だけで何故これだけの差がでるのか不思議ですね
967デフォルトの名無しさん:2007/10/15(月) 13:12:32
すみません、XML::SimpleのXMLin関数の
HTML版みたいなのってありますか?
HTML::Parserを中心にCPANを色々
探したのですが分からず…もしかして
HTMLは厳格な構造ではないので、
そういうのは無理なのでしょうか?
968デフォルトの名無しさん:2007/10/15(月) 14:23:50
>>967
ようはデータの構造体に変換したいってことよね?
HTML::TreeBuilderじゃだめ?
969デフォルトの名無しさん:2007/10/15(月) 14:56:48
HTML::DOMとかそんなんなかったっけ?
それのソースを眺めてみるのも手かもしれない
970デフォルトの名無しさん:2007/10/15(月) 15:13:05
>>968
ありがとうございます。HTML::TreeBuilderを見て、
HTML::Elementの関数を調べてみたのですが
XMLinみたいに綺麗なリファレンスを返してくれる
関数は自分では見つけられませんでした(英語も読めません)
お手数をお掛けしますが関数名等を教えて頂けると助かります。

>>969
ちょっとこの量のソースを読むには
気が滅入ります…すみません
971デフォルトの名無しさん:2007/10/15(月) 15:38:54
レスから1時間も経ってないじゃん
もうちょい頑張れよwww
972デフォルトの名無しさん:2007/10/15(月) 15:57:08
草い
973デフォルトの名無しさん:2007/10/15(月) 17:01:58
プログラムの「前」ってどっちですか?

$k = 0;             ← こっちが前?
for ($i = 0; $i < 10; $i++) {
  $k += $i;
}
print "こたえ=", $k, "\n";  ← こっちが前?
974デフォルトの名無しさん:2007/10/15(月) 17:06:39
>>973

↑ 後方 backward

$k = 0;
for ($i = 0; $i < 10; $i++) {
  $k += $i;
}
print "こたえ=", $k, "\n";

↓ 前方 forward
975デフォルトの名無しさん:2007/10/15(月) 17:10:52
「以前」の前じゃなく、「前に進む」の前って覚えるといいよ
とか言ってみるテスト
976デフォルトの名無しさん:2007/10/15(月) 17:51:34
後方 → orz ← 前方
977デフォルトの名無しさん:2007/10/15(月) 19:11:54
>>973
> プログラムの「前」ってどっちですか?





978デフォルトの名無しさん:2007/10/15(月) 19:35:05
場合によりけり
979デフォルトの名無しさん:2007/10/15(月) 19:43:55
じゃぁ
前方参照ってどっち?
後方参照ってどっち?
980デフォルトの名無しさん:2007/10/15(月) 20:02:21
小出しにせずに全部書いてくれ。
まだなんかあるだろ? それデータかなんか絡んでねーか?
981デフォルトの名無しさん:2007/10/15(月) 20:15:29
ただ上司に「プログラムの前の方を見ろ」と言われただけです。
で、「前ってどっち?」と聞き返したら、
「そんな事も分からないのか?前は前だろが。分からなかったら小学校からやりなおしてこい」
・・・と怒られちゃいました。もう涙目デスorz
でもほんとうに分からないんです。前ってどっちなのか。

人間の「前」ならわかります。顔があるほうですよね?
Q「人間の「前」ってどっちですか?」 A「小出しにせずに全部書いてくれ!」
フツー、そんな会話は無いですよね。前は前だから。決まってるもん。

プログラムの「前」は決まっていないんですか?
982デフォルトの名無しさん:2007/10/15(月) 20:21:25
俺は前は上の方だな。以前って意味に取るな。
983デフォルトの名無しさん:2007/10/15(月) 20:24:30
>>979
コンパイラは上から下へ読み勧めるから、
前方参照の前方はソースコードの下方向。
984デフォルトの名無しさん:2007/10/15(月) 20:26:13
コードの前ならたぶん上方向じゃね?
985デフォルトの名無しさん:2007/10/15(月) 20:28:57
>>981
うんこが出る穴のほうが後
986デフォルトの名無しさん:2007/10/15(月) 20:30:27
まえとうしろ  方向なので進行方向がまえ
まえとあと   時間経過なので進行方向の逆がまえ

ソースの前を見ろとか言う場合は時間経過のほうだね普通
まだ通過してない部分が時間をさかのぼって手前に影響することはありえない


ていうかおれ釣られた?w

987デフォルトの名無しさん:2007/10/15(月) 20:36:25
聖徳太子知ってる?
988デフォルトの名無しさん:2007/10/15(月) 20:40:38
>>981
気にせずソース全部見れば?
つーか「前は前だろうが」なんて答える上司もバカだな
普通に教えれりゃいいのに
989デフォルトの名無しさん:2007/10/15(月) 20:42:54
>>981
そんな事も分からないのか?前は前だろが。
990デフォルトの名無しさん:2007/10/15(月) 20:45:12
その上司って何歳よ?
991デフォルトの名無しさん:2007/10/15(月) 21:10:00
フクロウ本には前方参照と後方参照の混乱について書いてあったな。
992デフォルトの名無しさん:2007/10/15(月) 21:13:12
うん
993デフォルトの名無しさん:2007/10/15(月) 21:14:36
ソースコードの「前-後」は混乱の元なので、
「あたま-しっぽ」「上-下」と呼称したりする。
994デフォルトの名無しさん:2007/10/15(月) 21:14:39
>981
横書きの本をオマエは後ろ (下) から読むのか?
おまえ小学生からやり直せって
995デフォルトの名無しさん:2007/10/15(月) 21:17:02
そもそも、ソースコードの位置を前とか後ろとかで呼ぶか?
996デフォルトの名無しさん:2007/10/15(月) 21:22:19
普通、サブルーチン
モジュール
だよな
997デフォルトの名無しさん:2007/10/15(月) 21:43:46
箸を持つ方が前だろう
998デフォルトの名無しさん:2007/10/15(月) 22:02:18
ティムティムがいつも寄ってるほうが前
999デフォルトの名無しさん:2007/10/15(月) 22:19:32
それ右じゃね
1000デフォルトの名無しさん:2007/10/15(月) 22:37:29
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。