Perlについての質問箱 32箱目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/08/13(月) 18:01:530002デフォルトの名無しさん
2007/08/13(月) 18:12:170003デフォルトの名無しさん
2007/08/13(月) 18:17:120004デフォルトの名無しさん
2007/08/13(月) 18:23:48乙
0005デフォルトの名無しさん
2007/08/13(月) 18:28:500006デフォルトの名無しさん
2007/08/13(月) 18:35:05テンプレ
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
0007デフォルトの名無しさん
2007/08/13(月) 18:39:15"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あたり
0008デフォルトの名無しさん
2007/08/13(月) 18:40:02Perlプログラミング講座: 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/
0009デフォルトの名無しさん
2007/08/13(月) 18:40:42CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0010デフォルトの名無しさん
2007/08/13(月) 18:41:361 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/
0011デフォルトの名無しさん
2007/08/13(月) 18:43:09-Perlについての質問箱 30箱目
+Perlについての質問箱 31箱目
-リンク集は>>8-10あたり
+リンク集は>>8-9
-過去スレは>>11あたり
+過去スレは>>10あたり
ここまで
0012デフォルトの名無しさん
2007/08/13(月) 19:31:13+
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
0013デフォルトの名無しさん
2007/08/13(月) 19:40:532. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
ここまでテンプレ
0014デフォルトの名無しさん
2007/08/13(月) 19:42:340015デフォルトの名無しさん
2007/08/13(月) 19:51:450016デフォルトの名無しさん
2007/08/13(月) 20:17:38じ 演
め
ま
し
た
0017デフォルトの名無しさん
2007/08/14(火) 01:59:172. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
6. こぼれるほどの笑顔
0018デフォルトの名無しさん
2007/08/14(火) 02:39:532. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
それが初心者さ。質問スレに質問して、いったい何が悪いわけ?
自分で読む、自分で調べる、自分で試す、自分で理解する、自分でヤル!
それができれば、たいてい自分で解決してるよ。
そんなヤツが、質問スレに質問すると思うか?
質問されて、答えそのものをズバリ教えちゃうのも問題ありだな。
google の使い方を教えてあげるとか、そういう方法が、質問者にとってもスレにとっても健全な方向に
行き着くと思うな。
あと、質問に答えたくないのにわざわざしゃしゃり出てきて「自分で調べろ」だの何だの言うヤツって
いったい何?結局、そういうヤツって、難しい質問をして欲しくってウズウズしてるだけなんだろ?
ソレって、単なる「構ってクン」じゃないか。質問に答えたくないならスルーしろよ。なぜそれが出来ない?
次にスレを建てるときは、初心者用・中級者用・上級者用にわけるといいね。
そうすれば、初心者の質問を見たくないヤツは見ずに済むからね。
でも多分、わざわざ初心者スレにやってきて、相変わらず「自分で調べろ」って罵倒するバカが必ず現れるよ。
ぜったいに現れる。100ペソ賭けてもいい。
0019デフォルトの名無しさん
2007/08/14(火) 02:42:520020デフォルトの名無しさん
2007/08/14(火) 05:46:01考えたこともないような難しい質問
0021デフォルトの名無しさん
2007/08/14(火) 05:56:10perlの文法的に正しいのか?
教科書みたら英数字しか使えないって書いてあるぞ?
0022デフォルトの名無しさん
2007/08/14(火) 06:14:28文字列の比較演算子
演算子 使用例 式の意味 $a="山", $b="川"の場合の演算結果
eq $a eq $b $aと$bは等しい true
ne $a ne $b $aと$bは等しくない false
これ間違ってるよな?
0023デフォルトの名無しさん
2007/08/14(火) 06:43:31これをUS-aschiiiで見たら
''
こんな風に文字化けしていたので
右矢印を1バイト文字に翻訳したいんだけど、
どうすればいいのかな?
0024デフォルトの名無しさん
2007/08/14(火) 06:56:330025デフォルトの名無しさん
2007/08/14(火) 11:42:15どこの教科書だ?いつの時代の教科書だ?
出版社、書名、発行年月日を晒してミロやw
0026デフォルトの名無しさん
2007/08/14(火) 12:03:17use utf8などをすれば、文法的には正しい。
ttp://www.rwds.net/kuroita/program/Perl_unicode.html#encoding
>>22
間違いだな。それ以前に、$aと$bを使うのは避けるべき。
>>23
US-ASCIIに右矢印はない。utf-8などを使えば表示できるが、1バイトにはならない。
0027デフォルトの名無しさん
2007/08/14(火) 14:04:50低レベルな質問はWebProg板で。
現在も住み分けは出来ているかと思われます。
>>19
質問に答えて貰えなくて悔しかったですか?
難しいのではなく、 >>6 の通りで皆呆れてるのです。
まず、自分の言動に問題は無かったか見直してみましょう。
>>20
過去の例から言って、誰かしらか答えてくれる人間は必ず現れます。
その人間にも相手にされなかったのなら、やはり御自身の行動を見直すべきでしょう。
人のせいばかりにせず、大人として責任を持って発言をしましょう。
0028デフォルトの名無しさん
2007/08/14(火) 14:36:44ゲームのCGIなんで、プレイヤーごとのランキングがあるんですよ。
山田さんは前回は5位でしたが、
今回は順位が上昇して3位になりました↑
とか、
田中さんは前回は2位でしたが、
今回は順位が下降して8位になりました↓
とか
鈴木さんは前回は4位で今回も4位でした→
とか、
順位の移動を表\すのに右矢印、上矢印、下矢印の
記号を2バイト文字の日本語としてつかっちゃってて、
これをアメ公の環境、すなわちUS-asciiとかでみると
当然文字化けしてしまうので、これをなんらかの1バイト文字に
変更しなければならないのですが、どうしましょうかね?
0029デフォルトの名無しさん
2007/08/14(火) 14:48:33'UP' 'DOWN' にするか、画像にすれば?
0030デフォルトの名無しさん
2007/08/14(火) 14:52:38003130
2007/08/14(火) 14:54:13んじゃ ↑ と &darr でいいのかな。
0032デフォルトの名無しさん
2007/08/14(火) 14:55:34日本語が理解できない人間が集まる。
このスレの事ですよ〜〜〜〜w
0033デフォルトの名無しさん
2007/08/14(火) 15:53:460034デフォルトの名無しさん
2007/08/14(火) 15:54:42そのとおりになった
0035デフォルトの名無しさん
2007/08/14(火) 16:07:430036デフォルトの名無しさん
2007/08/14(火) 17:10:52正規表現は飛ばして勉強していいでしょうか?
めんどくさくて、、、
それとも、こういう使い方があるから、ここだけは押さえておけ、というポイントのようなものはありますか?
0037デフォルトの名無しさん
2007/08/14(火) 17:19:52> Perlを勉強中ですが、
> 正規表現は飛ばして勉強していいでしょうか?
いいよ
0038デフォルトの名無しさん
2007/08/14(火) 17:21:47> Perlを勉強中ですが、
> 正規表現は飛ばして勉強していいでしょうか?
よくないよ
0039デフォルトの名無しさん
2007/08/14(火) 17:34:14柊かがみが気に入らないのでかがみんの出るシーンは
飛ばして見ていいでしょうか?
みたいなもんだな。
0040デフォルトの名無しさん
2007/08/14(火) 18:26:330041デフォルトの名無しさん
2007/08/14(火) 18:33:49確かに、Perlは強力な正規表現が特徴、とか言われてるけど、どういう場面で使うことになるのか、見当がつかなくてね
0042デフォルトの名無しさん
2007/08/14(火) 18:47:13壁に当たるまでその道を行きなさい
0043デフォルトの名無しさん
2007/08/14(火) 19:25:38でも、うまくいかない。初心者レスになるがすまん。
これ↓なんだが、使い方がが間違ってるか?
#! /usr/bin/perl
#match.pl
$string =<<EOT
>>042
俺は正規表現が分からない。
EOT
;
print "引用番号: $&" if ($string =~ />>[0-9][0-9][0-9]/);
0044デフォルトの名無しさん
2007/08/14(火) 20:34:28何がどう動かないのか書いてくれ。
あと、動かないことと直接は関係ないけど
$& , $' , $` はなるだけ使わない習慣を付けておいた方が良いと思うよ。
0045デフォルトの名無しさん
2007/08/14(火) 20:42:280046デフォルトの名無しさん
2007/08/15(水) 00:30:38そうか、今使ってるiBookのターミナルはUNIX始めたばっかの頃に弄りまくってたから変なのかもしれない
さっきのプログラムも、何も出力されずに終わってしまうから
あとで、別ので試してみる。
0047デフォルトの名無しさん
2007/08/15(水) 01:09:18「解決策その1」
up downにする、ってのは
自分でも思いつきました。
でも日本語版では視覚的に
一目見てわかるように設計されていたものが
多言語に移動したら説明的になってしまった、
というのはちょっとくやしくて。
「解決策その2」
画像も自分で思いつきました。でも
画像を作って、サイズを合わせて加工して
画像を表示するようにコードを書き換えて、
というのがめんどいなと。
>>30-31
実体参照、すごいですね
まったく思いつきませんでした、
アメ公の環境でもちゃんと表示されるのかな?
&と;セミコロンの表示の問題は
¥エスケープすればノープロブレム?
あなたはすごいので、次からも教えてもらえませんか?
0048デフォルトの名無しさん
2007/08/15(水) 02:19:23「perlはスクリプト言語なので
他人の書いたスクリプトが読める」
という記述があったのですが、
他人が運営している、
CGIのソースは通常、
見れないですよね?
0049デフォルトの名無しさん
2007/08/15(水) 02:27:40定型の設定がされてれば見えない。
しかしあなたの質問は、教科書の”読める”と全く別の外した質問をしている。
0050デフォルトの名無しさん
2007/08/15(水) 02:51:03$rankupdown=$rankupdown==0 ? "→": $rankupdown<0 ? "↓".(-$rankupdown) : "↑".$rankupdown;
今、ソースがこのような状態なのですが、この中の、
"ダブルクオーテーションで囲まれた、→2バイト文字の右矢印を、
実体参照を用いた、&rarr;に変更しようとおもいます。
ぱっとみでやばそうなところは、
&アンパサンドと、;、セミコロンの2つですが、
これらはダブルクオーテーションの中で使うなら、
おそらく¥バックスラッシュを使ってエスケープすれば
いいんだとおもいます。
でも本当にそれでいいのかよくわからんし、
確認するにも本を45冊ほど読まねばならないしで、
もう一つの選択肢である、’シングルクオーテーションではさむ、
という方法を使いたいと思います。
なぜなら、’シングルクオーテーションならば、
はさまれた間にかかれたものは解釈されない?
でそのまんま出力されると教科書に書いてあるので
そっちのほうが実体参照を使うときには適していると
思ったからです。
なので変更後のソースは
$rankupdown=$rankupdown==0 ? '&rarr;' $rankupdown<0 ? "↓".(-$rankupdown) : "↑".$rankupdown;
等となりますが、この考え方であってますでしょうか?
ちなみに実体参照をちゃんと表示させるために
この書き込みは&と;を全角で打ってます
0051デフォルトの名無しさん
2007/08/15(水) 07:21:102. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
>>50は荒らしなので以後スルーします。
0052デフォルトの名無しさん
2007/08/15(水) 08:12:43何で自分で試さないのか。
0053デフォルトの名無しさん
2007/08/15(水) 10:39:57perl -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]/;'
を比較してみるのも一興かと。
0054デフォルトの名無しさん
2007/08/15(水) 13:43:39iMacじゃ、普通に動いたわ
あと、$&は使わない方が良いんだね。教えてくれてありがとう。そんなこと本には書いてないからな〜
0055デフォルトの名無しさん
2007/08/15(水) 16:42:35正規表現で、マッチ文字列、その前、後の文字列は、$&とかじゃなかったら、何で取り出せばいいの?
ググったが見つからなかった。
0056デフォルトの名無しさん
2007/08/15(水) 18:18:36つ 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 のパターン中でキャプチャーさせるのが仕様的に正しいかどうかは未確認。
0057デフォルトの名無しさん
2007/08/15(水) 18:31:58$& , $' , $` はなるだけ使わない習慣を付けておいた方が良い理由が
わかりませんでした。
0058デフォルトの名無しさん
2007/08/15(水) 18:33:37>一応、 ($pre,$match,$post) = split /(パターン)/,$str,2; でも動くが、
仕様的に正しいよ。perldoc -f split にきちんと解説がある。
0059デフォルトの名無しさん
2007/08/15(水) 18:43:13ありがとう。正規表現始めたばっかりの俺には、何をやってるのかまだよく分からないが、メモっとくよ。
分かるようになった頃に見直してみる。
0060デフォルトの名無しさん
2007/08/15(水) 18:47:14俺も全然わからん
$1とか使うぐらいならリストにキャプチャしろってんならまだ分かるが
m//gでiterativeに検索するような場合には
リストコンテキストにするわけにはいかんし
0061デフォルトの名無しさん
2007/08/15(水) 18:53:20> perlreやgoogleで調べてはみたのですが
> $& , $' , $` はなるだけ使わない習慣を付けておいた方が良い理由が
> わかりませんでした。
see perlvar
0062デフォルトの名無しさん
2007/08/15(水) 18:55:22どうでもいいな
0063デフォルトの名無しさん
2007/08/15(水) 19:37:42むしろ使わないほうがいいようにもみえるのですが気のせいでしょうか?
> 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".
0064デフォルトの名無しさん
2007/08/15(水) 20:04:14URLをマッチさせるにはこんな感じだね
/http(¥w|¥.|¥/|:|?|&|%)+/
0065デフォルトの名無しさん
2007/08/15(水) 20:06:07あっ、エスケープしてなかった。
/http(¥w|¥.|¥/|:|¥?|¥&|¥%)+/
0066デフォルトの名無しさん
2007/08/15(水) 20:13:23もうちょっとよく読みなよ。
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
0067デフォルトの名無しさん
2007/08/15(水) 20:52:55--
プログラム中にひとつでも$&, $`, $'があると
全てのパターンマッチでそれらを提供しないといけなくなるから
大幅に遅くなるかもしれません。
--
って感じですかね?
どの正規表現での$&, $`, $'を取りたいのか実行してみるまでわからないから
全正規表現で提供する必要がでてきちゃうんですね。
localとかmyで範囲の指定できて最適化されればいいのにね。
0068デフォルトの名無しさん
2007/08/15(水) 21:10:39なんか、誰かさんと違って、感じが良くて教え甲斐のありそうなヤツだな。
オレだったらこう書く
print "引用番号: $1" if ($string =~ /(>>[0-9][0-9][0-9])/);
それ以外にも、
$string =~ /^(.*)(>>[0-9][0-9][0-9])(.*)$/);
と()で囲めば $` $& $' のかわりに $1,$2,$3 を使える。
オレは必要だと思ったらとにかく()で囲む。
他の人がどうだかは知らないけど。
0069デフォルトの名無しさん
2007/08/15(水) 21:40:41use 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",'$\'',$';#残りの部分
}
007068
2007/08/15(水) 22:10:32ドット「.」は改行文字にはマッチしないので、文字列中に改行があって、ドット「.」
でマッチさせたかったら $string=~//s を使う。
ちょっと甘やかし気味かもしれんが、すぐに自分で実践する態度がよいので
答えてあげたくなってしまう。
0071デフォルトの名無しさん
2007/08/15(水) 22:17:42use warnings;
use utf8;
ときちんと書いてて、q() でクォートしてる。
初心者とは思えないぐらい立派な心がけだ。
でも次からはuse strict とかは省略して、必要な部分だけでいいよ。
0072デフォルトの名無しさん
2007/08/15(水) 22:29:040073デフォルトの名無しさん
2007/08/16(木) 03:38:36自分で歩こうとしないのでゴミ箱に捨ててやった
0074デフォルトの名無しさん
2007/08/16(木) 03:52:31本気で言ってるなら出頭しろ。
0075デフォルトの名無しさん
2007/08/16(木) 03:53:165.6あたりで増えた特殊変数 @+ と @- を使えば、$&, $`, $' に対応した
部分文字列を取れるよ。
んでペナルティもなし。
ただし substr使わんと部分文字列としては取得できんが。
0076デフォルトの名無しさん
2007/08/16(木) 05:09:12”ダブルクオーテーションまたは
’シングルクオーテーションで
はさまれた中でつかってもだいじょうぶ?
"$"
'$'
こんなかんじで。
0077デフォルトの名無しさん
2007/08/16(木) 05:09:570078デフォルトの名無しさん
2007/08/16(木) 08:15:462. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
>>76は荒らしなので以後スルーします。
0079デフォルトの名無しさん
2007/08/16(木) 09:54:180080デフォルトの名無しさん
2007/08/16(木) 10:24:59"$" -> Compile error
0081デフォルトの名無しさん
2007/08/16(木) 11:06:45「あなたの書き込みは、以降無視します」と
20回以上言っていた人物が抽出され気味悪がられていたこと
がある。
0082デフォルトの名無しさん
2007/08/16(木) 11:17:31一番の近道だと思うよ。
0083デフォルトの名無しさん
2007/08/16(木) 12:33:29ヒントだけ示して、
1. 嫁
2. ググれ
3. 確認汁
4. 分かれよ
5. 自分でやれ
って答えてればいいんじゃない。
0084デフォルトの名無しさん
2007/08/16(木) 12:39:38とか言い出すから触らないのが一番。
0085デフォルトの名無しさん
2007/08/16(木) 12:41:481: 自分はこういう事がしたい。
2: それでこんな風にやってみたが…
3: こんなエラーが出て上手く行かなかった。
基本的にこの3つが揃ってないと"質問"でさえ無い。
008676
2007/08/16(木) 13:16:040087デフォルトの名無しさん
2007/08/16(木) 13:24:56大変勉強になりました。ありがとうございました。
>>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;
}
0088デフォルトの名無しさん
2007/08/16(木) 14:39:130089デフォルトの名無しさん
2007/08/16(木) 15:16:15$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ちゃんねるはプログラミングの話題には向かないよね。
0090デフォルトの名無しさん
2007/08/16(木) 15:21:370091デフォルトの名無しさん
2007/08/16(木) 15:21:44($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箇所にまとめたほうが美しいかな。
0092デフォルトの名無しさん
2007/08/16(木) 17:23:380093デフォルトの名無しさん
2007/08/16(木) 17:37:257桁の数字(日付)20070816を2007/08/16のようにスラッシュで区切って
表示する方法がわかりません。どうかご教授下さい。
0094デフォルトの名無しさん
2007/08/16(木) 17:52:090095デフォルトの名無しさん
2007/08/16(木) 18:16:42それはおかしい
0096デフォルトの名無しさん
2007/08/16(木) 18:19:288桁でした…
0097デフォルトの名無しさん
2007/08/16(木) 19:33:40#!/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));
0098デフォルトの名無しさん
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__
0099デフォルトの名無しさん
2007/08/16(木) 20:18:32printf "%s/%s/%s", $date =~ /(\d{4})(\d{2})(\d{2})/;
0100デフォルトの名無しさん
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]; }
}
0101デフォルトの名無しさん
2007/08/16(木) 20:28:130102デフォルトの名無しさん
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;
0103デフォルトの名無しさん
2007/08/16(木) 20:47:43ありがとうございました。
いろいろやり方があるんですね。
0104デフォルトの名無しさん
2007/08/16(木) 21:07:370105デフォルトの名無しさん
2007/08/17(金) 01:08:57そこで、正規表現のURLマッチとsystem関数でcurlコマンドの実行を組み合わせて、URLリストの画像URLを片っ端からダウンロードして行くプログラムが作れた。
初めての実用的なPerlプログラムだったけど、さくさくダウンロードしてくれて、かなり感動した。
この感動が、良いプログラムを作ろう!っていう原動力になるんだろうなぁ。
0106デフォルトの名無しさん
2007/08/17(金) 01:53:390107デフォルトの名無しさん
2007/08/17(金) 02:13:52そういう、モジュールの使い方って、みんなはどこで勉強してるの?
やっぱりCPAN?
0108デフォルトの名無しさん
2007/08/17(金) 06:27:51まじで?
じゃあ、'シングルクオーテーション
でくくれば、¥エスケープしなくていいんだ?
0109デフォルトの名無しさん
2007/08/17(金) 09:55:59イメージとしては下記のような感じです。
my $template = Template->new();
my $compiled_tt2 = $template->compile('sample.tt2'); # ファイル:sample.tt2をコンパイルした内容を変数$compiled_tt2へ格納
print $template->process($compiled_tt2); # $compiled_tt2から出力を生成
0110デフォルトの名無しさん
2007/08/17(金) 14:15:03具体的には、名前が
20070817122431.jpg
のファイルを、フォルダ
元フォルダ
|_____2007
|____08
に移動させたいと言う感じです。
0111デフォルトの名無しさん
2007/08/17(金) 14:16:10移動させたいフォルダは元フォルダのの中の2007フォルダの中の08フォルダです。
0112デフォルトの名無しさん
2007/08/17(金) 14:32:54まず日本語から勉強しましょう。
0113デフォルトの名無しさん
2007/08/17(金) 14:50:42そうやって、トイレのドアの開け方、しゃがみ方、ズボンの降ろし方、
発射の仕方、塵紙の取り方、拭き方、流し方、立ち上がり方を
いちいち訊く前に、関数のリストにざっと目を通して
それらの工具で何が作れるか考えてみろ。
0114デフォルトの名無しさん
2007/08/17(金) 15:24:53backtick演算子を使って解決しました。
0115デフォルトの名無しさん
2007/08/17(金) 19:35:3110進と16進と、二つの選択肢があるが
どっちをえらべばいいんだ?
0116デフォルトの名無しさん
2007/08/17(金) 20:48:521. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
0117デフォルトの名無しさん
2007/08/17(金) 23:33:54洋式と和式と、二つの選択肢があるが
どっちをえらべばいいんだ?
0118デフォルトの名無しさん
2007/08/18(土) 00:08:350119デフォルトの名無しさん
2007/08/18(土) 00:18:07耐え抜くとか便器使わないとか店員と会話しながらとか、ユーザが取り得る選択肢は山ほどある。
0120デフォルトの名無しさん
2007/08/18(土) 02:22:35function f1($x=0, $y='foo') {
...
}
のような感じです。
0121デフォルトの名無しさん
2007/08/18(土) 02:47:060122デフォルトの名無しさん
2007/08/19(日) 02:05:25なにをやりたいの?
そもそも、コンパイルしないときは、どうやって使ってたの?
0123デフォルトの名無しさん
2007/08/19(日) 09:50:48foreachで1つずつ代入してもいいんですが。
%foo 中身は $foo{'hoge1'}、$foo{'hoge2'}
+
%bar 中身は $foo{'hoge3'}、$foo{'hoge4'}
↓
%sum 中身は $sum{'hoge1'}〜$sum{'hoge4'}
こんな感じ。
キーが被った場合などは、どういう扱いでも構わないので。
0124デフォルトの名無しさん
2007/08/19(日) 10:48:08$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;
0125デフォルトの名無しさん
2007/08/19(日) 11:09:31use 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)の順にならんだリストになるから、
単純にカンマで区切って連結できる。
0126デフォルトの名無しさん
2007/08/19(日) 11:37:36function f1($x=0, $y='foo') {
...
}
のような感じです。
もしできるなら、そのやり方を教えてください。
今は
sub f1 {
my ($x, $y) = @_;
$y = 'foo' if $y == undef;
}
というかっこわるい書き方をしています。
0127123
2007/08/19(日) 11:41:03案外、算術演算子だけで実装できたとしたら何て謝ろうかとヒヤヒヤしてました。
0128デフォルトの名無しさん
2007/08/19(日) 14:28:52use strict;
my $i = 100;
print "$im";
だと$imがないと怒られるので
print "$i\m";
にするとOK
それじゃ、100n を文字列連結させないで、ダブルクォートで出力するのにはどうすればいいですか?
0129デフォルトの名無しさん
2007/08/19(日) 14:45:41${i}
0130デフォルトの名無しさん
2007/08/19(日) 14:52:36おぉーすごい。ありがとうございます。
perlってそういう裏技的な文法がいっぱいあるような気がするんですが
そういうのはどうやって調べたらいいんでしょうか?
0131デフォルトの名無しさん
2007/08/19(日) 14:58:150132デフォルトの名無しさん
2007/08/19(日) 15:07:280133デフォルトの名無しさん
2007/08/19(日) 15:15:350134デフォルトの名無しさん
2007/08/19(日) 18:05:450135デフォルトの名無しさん
2007/08/19(日) 18:18:010136デフォルトの名無しさん
2007/08/19(日) 18:36:26my %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);
0137デフォルトの名無しさん
2007/08/19(日) 19:45:23本
0138デフォルトの名無しさん
2007/08/19(日) 19:51:01膨大な数のレコードを呼び出してwhile等のループで処理をしたいのですが
$sth = $dbh->prepare("select文");
$sth->execute();
とすると、スワップまで食いつぶされてしまいます。
ファイルでいうところの↓のような感じでメモリを消費せずに処理できる方法はないでしょうか?
foreach(<IN>){
print;
}
0139デフォルトの名無しさん
2007/08/19(日) 20:07:170140デフォルトの名無しさん
2007/08/19(日) 20:17:450141デフォルトの名無しさん
2007/08/19(日) 20:25:35fetchしていないから、foreachに相当する部分の処理の前にいるわけだが。
0142デフォルトの名無しさん
2007/08/19(日) 20:33:190143デフォルトの名無しさん
2007/08/19(日) 20:39:120144デフォルトの名無しさん
2007/08/19(日) 21:26:19LIMIT使って、少しずつループします。
SQLのLIMITを調べましょう。
0145デフォルトの名無しさん
2007/08/19(日) 21:45:51レスありがとうございます。
limitの値を調整しながらループさせてみたところ
非常に効率が良くなりました。
とても助かりました!
0146デフォルトの名無しさん
2007/08/20(月) 07:52:40programming perl vol.1 62p. に記載されてる。
0147デフォルトの名無しさん
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);
}
0148デフォルトの名無しさん
2007/08/20(月) 08:56:40Perlにはデフォルト値を記述するような特別な書き方はない。
その方法でもいいと思うが。
スマートなのは、
sub f1 {
my %opt = (x=>0, y=>"foo", @_);
}
などとやることかな。引数をhashで与えるという制約になるけど、キーを上書きしてしまわない限りは、最初に設定した値がそのまま生きる。
0149109
2007/08/20(月) 09:09:07伝え方が上手くないのですがtt2で引数に「COMPILE_DIR」を渡すと
テンプレートファイルをPerlコードに変換したファイルが生成され次回から高速になります。
恐らく通常は
1,テンプレートファイルをparseしてPerlコードに変換
2,Perlコードに変換したものをevalして実行
というプロセスで実行されていると思われ、TT2のキャッシュ機能は
Perlコードへ変換した結果をファイルにキャッシュすることにより
1を省き高速化が図れるというものです。
これらはファイルベースなら実現できるのですが
例えばPerlコードに変換した値をDBに保存し次回以降、
DBから取り出し高速に実行できないかと考えた次第です。
0150デフォルトの名無しさん
2007/08/20(月) 09:27:42undef かどうかを判定したいときは defined($y) にしないと
0151デフォルトの名無しさん
2007/08/20(月) 09:34:46&hoge; で回避できるのかな? よく覚えてないや。
0152デフォルトの名無しさん
2007/08/20(月) 09:50:44WriteLogというサブルーチンの使い方や意味が
わからないので、日本語で説明してもらえますか?
定義部分のソースは以下の通りです。
特に、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;
}
0153デフォルトの名無しさん
2007/08/20(月) 11:36:43のような文字列があったとして、
1 2 3の部分を配列として取り出すにはどうすればいいですか
0154デフォルトの名無しさん
2007/08/20(月) 11:46:100155デフォルトの名無しさん
2007/08/20(月) 13:18:27・続きなら続きと書いてくれ。
・WebProg板っていうのがあるのは知ってる?
・画像を貼り付けている意味が微妙に分からない。
・コロンだかはてなだかの話って今ここに関係あるの?
で、>147に関しては、ログの読み込みに失敗してるんじゃねーの?
0156デフォルトの名無しさん
2007/08/20(月) 13:40:48> 回答してください。
これに回答する人間がいるのにびっくりした。
ネットにはやさしい人間があふれているものだ。
0157デフォルトの名無しさん
2007/08/20(月) 13:49:57>よく読んで
この部分で読むのやめたわ。
お前は読むのが当然、そして俺様のために答えてあげろ と言う風に感じられる
社長がPerl勉強し始めるとこんな感じになるんだろうな
0158155
2007/08/20(月) 14:08:47割とボロクソ言ってるつもりなんだが。
0159デフォルトの名無しさん
2007/08/20(月) 14:20:15えーなにおまえ。
社長からメールくるとき
いっつもそんな文面なの?
0160デフォルトの名無しさん
2007/08/20(月) 14:32:03>よく読んで
0161デフォルトの名無しさん
2007/08/20(月) 15:52:23やさしい事だねぇ。
質問(>>147=152)で別の質問(>>23,28,50,前スレ最後)を思い出しさなかった?
ボロクソ言うにしろ、Webprog板のスレ 741-747程度言って通じるかどうかって相手だろ、これ。
0162デフォルトの名無しさん
2007/08/20(月) 16:18:270163デフォルトの名無しさん
2007/08/20(月) 17:07:45(1)
1つの画像ファイルから、形式やサイズ、フィルタのかけ方が異なる複数のファイルを出力したいと考えています。
この場合、Read() 〜 編集 〜 Write() のセットを、出力したい回数だけ繰り返すしか方法は無いでしょうか?
他はともかく、Read()あたりを省略する方法があってもおかしくなさそうなので。
(2)
JPEG画像を生成しようとしてます。
特定のファイルサイズ以内に収まるように生成したいのですが、PerlMagick単体で可能なのかどうか怪しいところです。
これを解決する方法、サイズ予測モジュールなどがあればお願いします。
0164126
2007/08/20(月) 17:10:06真面目な回答ありがとうございます。助かります。
>>121のようなふざけた返答しかないから、困ってました。
しかしPerlはむずかしいですね。なかなかおぼえられません。
0165デフォルトの名無しさん
2007/08/20(月) 17:16:570166デフォルトの名無しさん
2007/08/20(月) 17:57:48(1) 任意のタイミングで Clone 使うのが楽だと思う。
(2) 実際にファイルに書き出して、サイズが大きければ品質落としてやりなおしでよくね?
0167デフォルトの名無しさん
2007/08/20(月) 20:02:47> しかしPerlはむずかしいですね。なかなかおぼえられません。
いや、簡単だよ。
0168163
2007/08/20(月) 21:50:54(1)
ありがとう。試してみる。
(2)
やっぱそれしか無いのかなー。
上限ギリギリまで画質を上げたいとか考えると、結構な時間的コストがかかりそう。
0169デフォルトの名無しさん
2007/08/20(月) 22:25:15の英語移植をやってるみたいだが、すでに何年も前に移植されてる。
http://manuke.com/static/view00000296.html
>ちなみに、私は本家 SOLD OUT の英語バージョンを仲間と作って公開したのだが、
>向こうの人たちはそんなに集まらなかった
だから、もうヤメロ。
ココに書き込むな。
開発者向けBBSを見ても、
http://mutoys.com/cgi-bin/bbs-so/ebbs.html
自己中のイタイ書き込みが多い。
0170デフォルトの名無しさん
2007/08/21(火) 01:41:52よくやった!
あなたをわが社の情報収集担当最高責任者に
任命する!
ストックオプションはどれだけ欲しいですか?
0171デフォルトの名無しさん
2007/08/21(火) 06:08:17については自己解決した。
カウントの数字は出ていたんだが、
前の文字列にくっついていたんで
見えなかっただけだった。
0172デフォルトの名無しさん
2007/08/21(火) 06:57:15「忘れることのできない病気」
な人たちであることはわかっております
「おれ達の頭の中から出て行って欲しい」
と思っているでしょうが、出て行ってあげません。
一生あなたがたの頭の中に住み着くつもりですので
あきらめてください。
私を出て行かせる方法はありません。
0173デフォルトの名無しさん
2007/08/21(火) 08:43:05偽者が出るかもしれないのでコテを付けた方が良いと思いますよ
0174デフォルトの名無しさん
2007/08/21(火) 12:44:55今日も粘着させて頂きますので
宜しくお願いしますね
0175デフォルトの名無しさん
2007/08/21(火) 22:59:59ローカルではエラーが出なかったのですが、
実環境ですと特定の条件下でエラーが出てしまいます。
以下のコードはエラーが出ないのですが、
my $output = spacesLineDelt($tmpl->output);
textOut($path, $output)
以下のコードだとエラーが出てしまいます。
textOut($path, spacesLineDelt($tmpl->output));
全く原因がわからないのですが、
どなたかお心当たりがある方教えていただけると幸いです。
なお、実環境のPerlのVerは5.00503で、
色々制限が掛かっているのですが詳細が分かりません。
0176デフォルトの名無しさん
2007/08/21(火) 23:01:460177デフォルトの名無しさん
2007/08/21(火) 23:14:58WebProg向きのような気がする。
0178175
2007/08/21(火) 23:16:02エラーなんですが、telnetが繋げずfatalstobrowserを使っても
なぜかこのエラーだけサーバが500エラーを返してきて分かりませんでした;
0179175
2007/08/22(水) 03:23:37お騒がせしました。
0180デフォルトの名無しさん
2007/08/22(水) 13:49:38継承されたクラスをどうやって扱ったらよいか迷っています。
今悩んでいるのは、複数のクラスを継承するクラスで生成したオブジェクトにおいて
呼び出したいメソッド名がクラス間で重複するとき、
クラスメソッドを呼び分けるにはどうすればよいかということです。
単純には呼び出したいクラスでメソッド名を完全修飾すればと考えたのですが、
重複メソッドが多いとこの方法で呼び分けるのはとてもわかりにくくなります。
それにメソッドの中にメソッド呼び出しがあるとまずいことになります。
そもそもメソッド名が重複するような継承はだめなのでしょうか。
ひとつご教授ください。
0181デフォルトの名無しさん
2007/08/22(水) 14:12:58ダメとは言わんけど
「自分が何をやっているか」をきちんと把握できてないと破綻する
そういうことには上級者になるまで手を出さない方がいいんじゃないかと
0182デフォルトの名無しさん
2007/08/22(水) 14:22:120183デフォルトの名無しさん
2007/08/22(水) 14:28:540184デフォルトの名無しさん
2007/08/22(水) 14:58:590185180
2007/08/22(水) 15:17:30オブジェクトを目的メソッドの所属クラスにブレスし直して、
メソッド呼出し後、元のクラスに再々ブレスし直すというものです。
コードに書くとこんな感じなります。
$curr_class = ref $object;
bless $object, 'FarInheritClass';
$object->dup_method;
bless $object, $curr_class;
対症療法としてはこれでいいですが、普通は多重継承でメソッドが重なる場合
どういう対策をしているんでしょうか。
クラス別にハンドルを生成するメソッドを用意するとかですか?
一般的な手法が知りたいです。
多重継承そのものを否定している方もいらっしゃるようですが・・・
0186180
2007/08/22(水) 15:20:57以下の例では、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)
0187デフォルトの名無しさん
2007/08/22(水) 16:27:430文字目から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;
0188デフォルトの名無しさん
2007/08/22(水) 17:19:14で、結局何がしたいんだ?
アンダースコアで単語を切り分けてアルファベット順に並べ替えたいならアプローチが間違ってる。
0189デフォルトの名無しさん
2007/08/22(水) 17:58:41A を使うに際し A の内部で C が使われている事を
意識しなければいけない状態はカプセル化に失敗しているわけだけど、
それはいいの?
駱駝本や黒豹本だと無闇に継承(is-a)を使わず
合成(has-a、use-a)も考えるよう勧められてるよ。
0190デフォルトの名無しさん
2007/08/22(水) 18:04:43パターンだな
別名つけるのがありがちだけど完璧で美しい対処法なんて無いだろ
だから多重継承は強力でありながら忌み嫌われるんだよ
0191デフォルトの名無しさん
2007/08/22(水) 23:54:510192デフォルトの名無しさん
2007/08/23(木) 10:24:04open FP,'<:encoding(shiftjis)', 'input.txt' or die;
$Zspace = "/xE3/x80/x80"; # Zenkaku space on EUC-JP
if($line=~/$Zspace/){
print "detected";
}
というスクリプトを書いてみましたが
これを実行してもマッチングに失敗します。
何が悪いのか分かるかたいらっしゃいませんか?
0193デフォルトの名無しさん
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
でリンクされてしまいます。
&_が原因だろうというのは分かるのですが、どう対処すればいいのか分かりません。
ものすごく初心者な質問だと思いますが、よろしくお願いします。
0194デフォルトの名無しさん
2007/08/23(木) 12:25:500195デフォルトの名無しさん
2007/08/23(木) 12:31:11Javaスクリプトを無効にしてみたら?
0196デフォルトの名無しさん
2007/08/23(木) 12:39:33突っ込みどころ満載ですね
\xE3\x80\x80にマッチしないのはutf8フラグ付いてるから
逆に言えばutf8フラグ付いてたら\sで全角スペースにマッチするにょ
0197デフォルトの名無しさん
2007/08/23(木) 12:47:30俺はここに飛ばされるんだが。。。
http://xxx.com/
そのアドレス先に行ってソース嫁、読めばなぜ飛べないのかわかる
0198デフォルトの名無しさん
2007/08/23(木) 12:58:10インターネットオプションから試しましたがダメでした。Javaスクリプトを無効に
する方法って他にありますか?
>>197
ttp://xxx.com/ のxxxは仮のURLとして書いたものです。申し訳ありません。
0199デフォルトの名無しさん
2007/08/23(木) 13:54:13@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>";
0200180
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を書き込まなければ
いけない点ですね。
0201デフォルトの名無しさん
2007/08/23(木) 15:09:510202デフォルトの名無しさん
2007/08/23(木) 15:30:12perlbot - Bag'o Object Tricks (the BOT)
http://search.cpan.org/~nwclark/perl-5.8.8/pod/perlbot.pod
http://www.kt.rim.or.jp/~kbk/perl5.005/perlbot.html
0203デフォルトの名無しさん
2007/08/23(木) 16:45:260205デフォルトの名無しさん
2007/08/23(木) 20:34:00そのコードで(sortではなく)substrが遅いというのは、
・$text に utf8フラグが付いている
・配列(@position)の要素数がとても多い
・その部分が何回も(数百回,数千回といった回数)実行される
という事?
0206デフォルトの名無しさん
2007/08/23(木) 21:30:08&を含む以下のようなアドレスをフォームから送ったとき、
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に格納されてしまいます。
&を含むアドレスを分解されずにひとつの添え字の中に格納することはできますか?
0207デフォルトの名無しさん
2007/08/23(木) 21:38:58http://www.ietf.org/rfc/rfc2396.txt
http://www.ietf.org/rfc/rfc3986.txt
0208デフォルトの名無しさん
2007/08/23(木) 23:02:11&で分解してるのに、&で分解されずに格納したいだと??
わからん。言ってる意味がまったくワカラン!!!
0209デフォルトの名無しさん
2007/08/23(木) 23:21:330211187
2007/08/23(木) 23:44:38「_」で切り分けたいわけではないです。bc_abのような組み合わせもあります。
かなり長い文字列から、部分文字列を大量に切り取って、ソートしたいです。
>>205
まったくその通りで・・・頭が下がります。
utf8ですし、
ループ回数は10万ちょっとあります。
substrでは1秒近くかかります。
なので以下のように配列で処理しようとしたのですがソートがわからなくなりました。
abc_abcdからabc,abcdと取り出そうとした場合、
配列に0文字目から2文字目まで、4文字目から7文字目までという意味で(0,2,4,7)と格納する。
これだと0.05秒くらいで終わります。
0212デフォルトの名無しさん
2007/08/24(金) 00:55:42substrが遅くて困る、というなら、
substrを使わないか、回数を減らすアルゴリズムに切り替えること。
そのためのヒントとなるべき「何をしたいのか」が>>187にはない。
substrを使う>>187のアルゴリズムが絶対なら、それはsubstrから逃れられないのでは?
0213デフォルトの名無しさん
2007/08/24(金) 02:16:53オブジェクト指向プログラミングを学ぶならPerlじゃないほうがいいと思う。
個人的にはJavaがおすすめ
(静的型付のほうが最初はいい気がする)
オブジェクト指向の原則やデザパタを学ぶには「アジャイルソフトウェア開発の奥義」もおすすめ。
0214デフォルトの名無しさん
2007/08/24(金) 02:25:59オフセット情報があるんだったらunpackで一発じゃない?
0215デフォルトの名無しさん
2007/08/24(金) 19:08:39あ、そうですね。とりあえず、重複するかどうかわからないけどそう書いとくのも手ですね。
あと、同じことなのですがサブルーチンに属性をつけるのもありだと思いました。
例えば>>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 {・・・}
0216デフォルトの名無しさん
2007/08/24(金) 19:08:52LWP-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で検索してもほとんど出てこないのでどなたか助けてください。
0217デフォルトの名無しさん
2007/08/24(金) 19:23:08ざっと見ましたが、出来るなら継承より委譲した方がいいようですね。
委譲パターンって単純にはこんな感じでしょうか
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;
0218デフォルトの名無しさん
2007/08/24(金) 19:54:30あー180ですが、これ私に対するレスですよね。
Javaのデザインパターンの考え方は参考になるので、今度図書館で探してみます。
その前に駱駝本とかを読むのが先なのかな?
(借りようと思ったけど、ずっと貸し出し中だった)
前に指摘されていた黒豹本は書店で確認しましたが、あまりオブジェクトに関する記述はなかったです。
今、perlbootとperltoocとperltootを読んでいるところです。
これとperlbotがPerlのオブジェクト〜の教典ってことになるのでしょうか
0219デフォルトの名無しさん
2007/08/24(金) 20:48:29$::request
という変数が書かれたスクリプトがあるのですが,
これ何の変数なのか教えていただけないでしょうか.
プログラミングPerlで見つけることができなくて・・・
0220デフォルトの名無しさん
2007/08/24(金) 20:53:300221デフォルトの名無しさん
2007/08/24(金) 22:09:22ただし初版(背表紙が赤い奴)では(当時まだ無かった) $::name という表現は使われていない。
(かわりに $'name という表現が使われている)
0222デフォルトの名無しさん
2007/08/25(土) 07:56:420223素人
2007/08/25(土) 15:54:10HTMLのフォームから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);
0224素人、続き
2007/08/25(土) 15:56:48print "<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ヘッダー
#-----------------------------------------------------------------------------------
割愛
0225デフォルトの名無しさん
2007/08/25(土) 16:21:090226素人
2007/08/25(土) 16:42:14板違いでしたか。失礼しました。
0227デフォルトの名無しさん
2007/08/25(土) 16:42:360228素人
2007/08/25(土) 16:55:130229デフォルトの名無しさん
2007/08/25(土) 17:05:37手間、金、時間を惜しむ奴は勉強しなくてよろしい
0230素人
2007/08/25(土) 17:21:25open(IN,"ファイル名");
@form=<IN>;
close(IN);
は試してみたんですが、ぜんぜん別のことでしょうか?
とりあえず、もう一度本を読み直してみます。
0231デフォルトの名無しさん
2007/08/25(土) 20:48:47君んちの近くに心療内科ないの?
あったら一度行ってみた方が良いよ。
0232デフォルトの名無しさん
2007/08/25(土) 20:54:30君んちの近くにはないの?
0233デフォルトの名無しさん
2007/08/25(土) 21:00:45自分が行ってみて良かったから人にも勧めてるんだろ。
0234デフォルトの名無しさん
2007/08/25(土) 21:21:27何一つ無いと言うのに 全く愚かな奴だ
0235デフォルトの名無しさん
2007/08/25(土) 21:31:500236205
2007/08/25(土) 21:32:13それは大変そうだね。
普通は位置情報で処理すると、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 自体を作らない手もある。(更に数倍以上遅い)
0237デフォルトの名無しさん
2007/08/26(日) 13:55:19http://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を通してあります。
0238デフォルトの名無しさん
2007/08/26(日) 14:17:410239デフォルトの名無しさん
2007/08/26(日) 15:53:340240デフォルトの名無しさん
2007/08/27(月) 01:10:00ナニナニを使え、みたいなお返事でも結構ですので
0241デフォルトの名無しさん
2007/08/27(月) 08:17:58今さらだけど、属性使うとそれっぽく書ける
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->(@_)
};
}
0242デフォルトの名無しさん
2007/08/27(月) 17:24:590243デフォルトの名無しさん
2007/08/27(月) 17:27:28たまに、戻り値を受け取る変数の型によって、値が変わる関数がありますよね?
(1)
これを自前でサブルーチンとして実装するには、どう記述すればよいのでしょうか。
(2)
この値を呼び出し側で制御することは出来ませんか。
@tmp = function();
$result = \@tmp;
のように。
よろしくお願いします。
0244デフォルトの名無しさん
2007/08/27(月) 17:53:510246デフォルトの名無しさん
2007/08/27(月) 18:10:12(2)の意味するところがわからん
0247デフォルトの名無しさん
2007/08/27(月) 18:16:57どうすりゃいいんだろう
0248デフォルトの名無しさん
2007/08/27(月) 18:17:44ソースを見る
0249デフォルトの名無しさん
2007/08/27(月) 18:19:21$result = [function()];
0250243
2007/08/27(月) 18:24:26戻り値をスカラーで受け取りつつ、関数には、リストコンテキストとして評価できないかなと。
配列のリファレンスが欲しい。
>247
ドキュメントをしっかり作るとか。
あとは、統合環境で何とかならないかな?
0251243
2007/08/27(月) 18:27:20>249
ありがとうです。そんな使い方があったのですね。
0252デフォルトの名無しさん
2007/08/27(月) 18:43:23無理だよ。コンテクストや引数、そのほか計り知れない要因によって変わる可能性があるんだから。
0253デフォルトの名無しさん
2007/08/27(月) 18:50:31なんで分からんねん って話しだが
0254デフォルトの名無しさん
2007/08/27(月) 19:01:24サブルーチンとか所在のわかっている関数はB::Deparseとかで確認できるけど、
どこから継承されているかわからない階層の深いメソッドとかはどうすりゃいいですか?
0255デフォルトの名無しさん
2007/08/27(月) 20:28:520256デフォルトの名無しさん
2007/08/27(月) 20:35:430257デフォルトの名無しさん
2007/08/27(月) 21:47:15callerで深い階層まで拾ってみるとかそんな関数使わないとか
0258254
2007/08/27(月) 21:51:26それをcoderef2textに渡せばソースが出力される。
自己解決しました。お騒がせしました。
0259デフォルトの名無しさん
2007/08/27(月) 21:56:30ファイルサーバーの
¥¥fileserver¥dateの下にあるファイル全てを
ローカルの
C:¥date¥ の下にコピーする
ということは可能でしょうか
0260デフォルトの名無しさん
2007/08/27(月) 22:12:48perlで可能だが、お前には無理
0261デフォルトの名無しさん
2007/08/27(月) 22:16:10Macとか、Linuxとかにすればいいのに〜
パソコンくんには無理かな〜
0262デフォルトの名無しさん
2007/08/27(月) 22:23:06馬鹿だ
0263デフォルトの名無しさん
2007/08/27(月) 22:46:42MacとLinnuxの間はRsyncで同期してるから問題ないのだが
WinとLinuxの間をPerlにしようと思ってるんだ
でもフリーソフトで結構いいのがありそう
0266デフォルトの名無しさん
2007/08/28(火) 00:21:54さすがおこちゃま用Perlだw
0267261
2007/08/28(火) 00:22:06ありがとうApple。これからも釣りに使わせてもらうよ
0268デフォルトの名無しさん
2007/08/28(火) 01:03:350269デフォルトの名無しさん
2007/08/28(火) 01:17:10http://www.omosiro-flash.com/
javascriptとかajaxとか使ってるんでしょうか?
0271デフォルトの名無しさん
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 では使えないんですか?
0272デフォルトの名無しさん
2007/08/28(火) 06:31:21$string =~ s/$pattern/$replace/gx;
0273デフォルトの名無しさん
2007/08/28(火) 06:51:38おまえのできてないだろ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";
}
0274デフォルトの名無しさん
2007/08/28(火) 11:05:30たまに接続先に繋ぎっぱなしになって戻ってこない時があります。
UserAgent->timeoutも機能してないし、SIGALRMも効きません。
対処法お願いします。
ActivePerl5.8.8です。
0275デフォルトの名無しさん
2007/08/28(火) 11:36:34$string =~ /^..$/;
と同じことがやりたいです。
よろしくお願いします。
0276デフォルトの名無しさん
2007/08/28(火) 11:49:56length($string) == 2
0277デフォルトの名無しさん
2007/08/28(火) 13:10:25ありがとう!
0278デフォルトの名無しさん
2007/08/28(火) 15:34:09zipファイル(テキストファイルを圧縮したもの)をメモリ上に展開し、
そのテキストを読み込みたいと考えています。
これは可能でしょうか?
可能な場合、参考になるサイト等あればお教えください。
ActivePerl5.8.1で、モジュールの追加なしで考えています。
(Archive::Zipを使い、ファイルに出力すれば読み込めることはわかりました。)
perlでファイルマッピングできればと思いましたが、見つけられず。
0279デフォルトの名無しさん
2007/08/28(火) 15:42:51zipコマンド群を呼べばいいじゃん。
0280デフォルトの名無しさん
2007/08/28(火) 17:10:19Zip 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.
0281デフォルトの名無しさん
2007/08/28(火) 20:08:02POD読め。もしくは、ソース読め。
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' );
0282デフォルトの名無しさん
2007/08/28(火) 22:23:47できました!ありがとうゴザイマス。
0283デフォルトの名無しさん
2007/08/28(火) 22:38:31たぶん単純すぎて誰も答えてくれかったんだろうけど、
明らかにこうでしょ。
>>273が珍回答だってのは初心者の俺でもわかるよ
$string =~ s/$pattern/'"'.$replace.'"'/ee;
0284デフォルトの名無しさん
2007/08/29(水) 00:57:00これが使えると思う
http://search.cpan.org/~dconway/Contextual-Return-v0.2.1/lib/Contextual/Return.pm
0285デフォルトの名無しさん
2007/08/30(木) 00:13:250286デフォルトの名無しさん
2007/08/30(木) 02:34:45というかperlで作ったプログラムをperl2exe.exeのようなものでコンパイルして、中身のコードを
見れないようにして人に売ったりしてる人っています?
なんか、perlつかってるひとって商売っ気ないというか、なんでもフリー精神がありそうで、そういうことは
禁止されてるのかなと思いまして。
0287デフォルトの名無しさん
2007/08/30(木) 03:08:21http://news4u.blog51.fc2.com/blog-entry-1497.html
0288デフォルトの名無しさん
2007/08/30(木) 03:14:29というのをコマンドラインからよくやるんだけど、
この「use LWP::Simple」の部分を省略する方法ってありますか?
0289デフォルトの名無しさん
2007/08/30(木) 03:16:260290デフォルトの名無しさん
2007/08/30(木) 03:23:32-Mを忘れてました。もうひとつ、-Mを省略する方法ってないですかね。
perlのaliasを設定するしかないのかな?
0291デフォルトの名無しさん
2007/08/30(木) 04:17:09爆笑した。この変な会社もやはり、コードの中身をあんまり見られたくないから
PARつかったんだろうね。でも簡単に見られるみたいだけど。
だけど、perlだからこそこの面白話がなりたってるね。
0292デフォルトの名無しさん
2007/08/30(木) 04:30:55やっぱり思い出すよな、それ(笑)
0293デフォルトの名無しさん
2007/08/30(木) 10:44:29もう秀丸には戻れない体になってしまいました。
0294デフォルトの名無しさん
2007/08/30(木) 12:54:02スゴス・・・
perl の正規表現の解説をググりまくって調べてたんですが、
/e についてはどこも”アッサリ”な説明しかなく
ましてや /ee なんてどこにも書いてませんでした。
みんな避けて通ってるみたい。
0295デフォルトの名無しさん
2007/08/30(木) 13:10:01それって、$replaceに"が入ってたらしなね?
0296デフォルトの名無しさん
2007/08/30(木) 13:10:59こういう人ってときどき出現するけど、なにかの精神病なのか?
0297デフォルトの名無しさん
2007/08/30(木) 13:31:370298デフォルトの名無しさん
2007/08/30(木) 13:38:16「e修飾子はevalするもので複数回指定可能」という説明だけで、evalを理解している
人にとって十分だからなぁ。
perlopのサンプルコードのコメントにさらっと書いてあるだけなので見落としやすい
というのはあるが。
# /e's can even nest; this will expand
# any embedded scalar variable (including lexicals) in $_
s/(\$\w+)/$1/eeg;
0299デフォルトの名無しさん
2007/08/30(木) 14:05:04いつもの子でしょ。
0300デフォルトの名無しさん
2007/08/30(木) 15:26:31なんなんだろうね、この流れも。
PAR使う理由はそこじゃないだろうに
0301デフォルトの名無しさん
2007/08/31(金) 00:18:32〜のみを引数として渡す、バッチファイル作れば?
0302デフォルトの名無しさん
2007/08/31(金) 00:19:33どうして perl スレはどこも皆キチガイばっかりなんだ?
0303デフォルトの名無しさん
2007/08/31(金) 00:33:02今日も粘着させて貰うので
宜しくお願いしますね
0304デフォルトの名無しさん
2007/08/31(金) 00:36:42ttp://www.websphinx.net/manken/hyen/photo/numata060814-b6.jpg
0305デフォルトの名無しさん
2007/08/31(金) 01:22:49配列は無いでしょうか? …sort関数で可能だったりしますか?
0306デフォルトの名無しさん
2007/08/31(金) 01:23:390307デフォルトの名無しさん
2007/08/31(金) 01:32:36alpha/boo/imac.jpg
beta/aipod/steve.numbers
cats/mycats.cwk
0308デフォルトの名無しさん
2007/08/31(金) 01:37:100309デフォルトの名無しさん
2007/08/31(金) 01:39:30alpha/fasdg/share.exe
alpha/fasdg/tesadf.txt
beta/aipod/steve.numbers
beta/aipod/winny.exe
cats/mycats.cwk
みたいなのを期待しているんじゃ(ry
0310デフォルトの名無しさん
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
0311デフォルトの名無しさん
2007/08/31(金) 01:48:000312デフォルトの名無しさん
2007/08/31(金) 01:48:070313デフォルトの名無しさん
2007/08/31(金) 01:50:51単純に言うなら欠くディレクトリの持ってるファイルを先に、
子になるディレクトリを後にして並べたいという感じです
0314デフォルトの名無しさん
2007/08/31(金) 01:52:08> use File::Sort
ありがとう 調べてみます
> 312
ありがとうございます。もうちょっと工夫してみます
0315デフォルトの名無しさん
2007/08/31(金) 02:20:28環境変数 PERL5OPT に設定しておく。
いらないときが面倒だけど。
0316デフォルトの名無しさん
2007/08/31(金) 02:52:080317デフォルトの名無しさん
2007/08/31(金) 04:11:47なにそのスパゲッテイコード。
0318デフォルトの名無しさん
2007/08/31(金) 07:42:200319デフォルトの名無しさん
2007/08/31(金) 08:08:450320デフォルトの名無しさん
2007/08/31(金) 08:22:160321305
2007/08/31(金) 09:13:26こ、これは! まさに望んでいたソートになりました。ありがとうございました
ワンライナーで書けちゃうんですねぇ… 勉強になりました
0322デフォルトの名無しさん
2007/08/31(金) 12:22:130323デフォルトの名無しさん
2007/08/31(金) 12:34:04きれいなシャチ泳ぎは美しいかもしらんが、>>316のコードは
お世辞にもきれいとは言えん。釣りで仕込んだのかもしれんが、無意味な無名配列作成とか。
同じ事を普通に書くと以下になる。
sort { ( $T{$a} ||= split m{/},$a ) <=> ( $T{$b} ||= split m{/},$b ) || $a cmp $b } @path
ただ「スパゲティ」とは別ものだ。
0324デフォルトの名無しさん
2007/08/31(金) 13:07:39なんていうかコードよりこのスタンスに美を感じるんだよね
やはり専門卒レベルには理解出来ない芸術なんだよ
0325316
2007/08/31(金) 13:12:43最初それで書いたんだけど
Use of implicit split to @_ is deprecated at - line 5.
Use of implicit split to @_ is deprecated at - line 5.
ってワーニングでるし思考停止しかけてたから無名配列作ったんだけど
0326デフォルトの名無しさん
2007/08/31(金) 14:02:31@pathの中に "/" が含まれていたらただのsortと同じになるので、
そんなのも考慮するなら、再帰的に作るしかない気がします。
0327デフォルトの名無しさん
2007/08/31(金) 17:08:25$cache{$a} ||= @_ = split m{/},$a
0328デフォルトの名無しさん
2007/08/31(金) 17:34:230329デフォルトの名無しさん
2007/08/31(金) 17:36:170330デフォルトの名無しさん
2007/08/31(金) 17:46:410331デフォルトの名無しさん
2007/08/31(金) 18:06:460332316
2007/08/31(金) 18:19:190333デフォルトの名無しさん
2007/08/31(金) 19:08:13Damian Conway www
0334デフォルトの名無しさん
2007/08/31(金) 22:38:16不可避なのだろうか?例えばc:/倉庫別棚卸し表のディレクトリーでPrint "hello!";の
1行からなるperlのプログラムを仮にa.plで保存する。そしてperl a.plを実行させる
と、No such file or directoryのエラーが出る。これをディレクトリーの名前を倉庫
別棚卸し表から倉庫別棚卸しに変更して上記のa.plを実行させると正常に動作する。
理由は、ディレクトリーの表のシフトJISの内部コードは955Cで最後の5Cは
アスキーの¥となっている。その為にエラーとなっているが、これを回避する方法は無
いのだろうか?
0335デフォルトの名無しさん
2007/08/31(金) 22:54:570336デフォルトの名無しさん
2007/09/01(土) 05:44:46きました。やはり、ディレクトリーの名前に\の5cが有るので、ディレクトリーをくっ
つけるしか他に方法は無いのでしょうか?
質問の趣旨としては、それ以外で解決方法は無いのだろうかと思っていましたので。
例えばPerlの起動オプション...etcです。調べた結果は、見つからなかった物でしたか
ら。本当に、そうなのかなあと思って質問しました。
本当に、perl a.plで動かす方法は無いのですね。どうも、有り難う御座いました。
0337デフォルトの名無しさん
2007/09/01(土) 06:39:070338デフォルトの名無しさん
2007/09/01(土) 08:16:370339デフォルトの名無しさん
2007/09/01(土) 10:15:130340デフォルトの名無しさん
2007/09/01(土) 10:16:23使い方、X,Y,Zに、pingを送りたいあて先の
IPアドレスを書く。
0341デフォルトの名無しさん
2007/09/01(土) 12:13:320342デフォルトの名無しさん
2007/09/01(土) 12:25:230343デフォルトの名無しさん
2007/09/01(土) 13:03:150344デフォルトの名無しさん
2007/09/01(土) 13:10:160345デフォルトの名無しさん
2007/09/01(土) 15:23:25それは複数じゃなくて全部じゃなかったっけ?
0346デフォルトの名無しさん
2007/09/01(土) 16:10:120347デフォルトの名無しさん
2007/09/01(土) 20:11:25ふぃぎゅあっと
0348デフォルトの名無しさん
2007/09/01(土) 22:53:34catalystのサンプルにそんなのがあったかも
0349337
2007/09/02(日) 01:37:14外出してて遅くなりましたが返信くださった方々、ありがとうございました。
ちょっと言葉足らずですみません。
”同時”というイメージとしては並行処理です。
Aが送り終わったらB、ではなく、(もちろん多少のタイムラグはあるでしょうが)プロセスを複数動かしつづける、って感じです。
0350デフォルトの名無しさん
2007/09/02(日) 01:57:29threadsとNet::Pingを組み合わせれば簡単に出来る
のではないでしょうか。両者共標準モジュールです。
0351デフォルトの名無しさん
2007/09/02(日) 02:11:280352デフォルトの名無しさん
2007/09/02(日) 02:22:390354348
2007/09/03(月) 22:59:090355デフォルトの名無しさん
2007/09/03(月) 23:11:29ヒント:なんかVIPの同盟国とかほざいてるから
http://live24.2ch.net/test/read.cgi/ootoko/1188634806/
0356デフォルトの名無しさん
2007/09/04(火) 12:47:41use strict, warningsは使わないよ
こんなの使って喜んでるうちは素人だね
0357デフォルトの名無しさん
2007/09/04(火) 14:32:03よろしければ理由をお聞かせ願えないでしょうか
0358デフォルトの名無しさん
2007/09/04(火) 14:39:26こんなの使
0359デフォルトの名無しさん
2007/09/04(火) 15:03:380360デフォルトの名無しさん
2007/09/04(火) 18:24:28Perlらしさが損なわれる。
かえってコードが汚くなる。
0361デフォルトの名無しさん
2007/09/04(火) 20:34:35/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0362デフォルトの名無しさん
2007/09/04(火) 21:29:15取り出して使ってるぜ普段
strict なんて使おうにもそもそも無えwww
0363デフォルトの名無しさん
2007/09/04(火) 22:46:400364デフォルトの名無しさん
2007/09/04(火) 22:55:37http://www.youtube.com/watch?v=KyLqUf4cdwc
これですか?w
0365デフォルトの名無しさん
2007/09/05(水) 02:05:56Pythonは3が@バージョンだけど出たネ
0366デフォルトの名無しさん
2007/09/05(水) 02:59:37同意。
仕事で共同作業とか大規模プログラミングなら使う価値があると思う。
でも個人向けその場限りプログラムには正直要らない。
Perlらしいあの腐った文化を殺している。
いかにソースコードをPerlっぽく腐らせるかワクワクする楽しみがない。
0367デフォルトの名無しさん
2007/09/05(水) 03:22:460368デフォルトの名無しさん
2007/09/05(水) 03:28:510369デフォルトの名無しさん
2007/09/05(水) 05:33:020370デフォルトの名無しさん
2007/09/05(水) 06:21:240371デフォルトの名無しさん
2007/09/05(水) 15:38:03WindowsXP + ActivePerl5.8.8の環境でTerm::ReadLineを使ったスクリプトを書いてるのですが
readlineでプロンプト中にファイルをコンソールにドラッグしてファイルのパスを入力したいのですが
ドラッグされたファイルのパスが半角文字のみで半角スペースがなければうまくいくのですが、
パスの中に半角スペースや全角文字が入ってるとBEEPが鳴って正常にコンソールに入力できてなくて困ってます。
回避方法 or 代わりの方法を教えてください m( _ _ )m
0372デフォルトの名無しさん
2007/09/05(水) 16:11:390373デフォルトの名無しさん
2007/09/05(水) 16:18:200374デフォルトの名無しさん
2007/09/05(水) 16:51:030376デフォルトの名無しさん
2007/09/05(水) 17:55:080377デフォルトの名無しさん
2007/09/05(水) 18:13:54教えてくれる暇な方いらっしゃいますか?
0378デフォルトの名無しさん
2007/09/05(水) 18:16:16いない
0379デフォルトの名無しさん
2007/09/05(水) 18:17:190380デフォルトの名無しさん
2007/09/05(水) 18:26:51そんなことは、Perl/CGIの入門ホームページを見れば、必ず書いてあるからだ。
0381デフォルトの名無しさん
2007/09/05(水) 18:29:150382デフォルトの名無しさん
2007/09/05(水) 18:32:450383デフォルトの名無しさん
2007/09/05(水) 18:43:270384デフォルトの名無しさん
2007/09/05(水) 19:17:24http://pc11.2ch.net/test/read.cgi/php/1157862828/364
0385デフォルトの名無しさん
2007/09/05(水) 19:59:280386デフォルトの名無しさん
2007/09/05(水) 21:48:060387デフォルトの名無しさん
2007/09/05(水) 21:53:20rootのWEBディレクトリに設置しているPerlを実行して一般ユーザーのディレクトリ(/home/user/public_html/)のパーミッションを変更するにはどうしたら良いのでしょうか?
また、サーバーをシャットダウンさせる方法も教えて頂けると幸いです。
0388デフォルトの名無しさん
2007/09/05(水) 21:57:280389デフォルトの名無しさん
2007/09/06(木) 00:21:00コマンドラインならsudo付けてやればよくね?
CGIなら、Apacheの実行ユーザーをrootにするとか。危険だけど。
0390デフォルトの名無しさん
2007/09/06(木) 00:53:48サンクス!
でもバッククォートじゃ動作しなかったし、Apacheの実行ユーザーをrootにするのはやっぱ危険だし、sudoつかってapacheに
shutdown -h nowを許可してみたけど、いざ動かしてみてもシャットダウンされない…
ちなみにソースはこんな感じ。
#!/usr/bin/perl
print `shutdown -h now`;
print "Content-type:text/html\n\n";
print "OK";
OKは表示されるんだけどねぇ…
0391デフォルトの名無しさん
2007/09/06(木) 01:09:52>#!/usr/bin/perl
#! sudo /usr/bin/perl
にしてみたら?
0392デフォルトの名無しさん
2007/09/06(木) 01:25:11500エラーとなってしまいました…。
0393デフォルトの名無しさん
2007/09/06(木) 03:10:04・apacheのプロセスでsudoやshutdownのPATHは通ってるか?
・sudoはapacheのプロセスから利用できる設定になってるか?
・sudoはapacheのプロセスからパスワードレスで利用できる設定になっているか?
を確認してみ。
あと重要な手がかりなので、実行したときのapacheのエラーログも確認し、報告しようね。
0394デフォルトの名無しさん
2007/09/06(木) 03:14:48shutdownのパスは通ってるの?
それから、こんなことしてもしSTDOUTに何か出力されたらServerErrorですぜ。
そもそもCGIでシャットダウンするのってどうよ。
0395393
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のプロセスのユーザー権限
0396デフォルトの名無しさん
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
もう何が何だか…
0397デフォルトの名無しさん
2007/09/06(木) 13:11:150398デフォルトの名無しさん
2007/09/06(木) 13:15:54うーん。SSHは勉強してないから敬遠していたけど、この機会に少し触ってみることにします。
みなさん協力ありがとうございました。
0399393
2007/09/06(木) 13:19:01/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
0400398
2007/09/06(木) 13:19:160401デフォルトの名無しさん
2007/09/06(木) 15:04:280402364
2007/09/06(木) 15:32:25if (!open
どういう意味ですか?
0403デフォルトの名無しさん
2007/09/06(木) 15:52:21>>8
http://www.site-cooler.com/kwl/perl/6.htm#6-1
http://www.site-cooler.com/kwl/perl/5.htm#5-5
http://www.site-cooler.com/kwl/perl/7.htm#7-1
0404デフォルトの名無しさん
2007/09/06(木) 22:40:19phpで外部のサイトやURLを取り込むには、includeなどを使いますが
cgi(perl)ではどのようにして外部ファイルを取り込むのでしょうか?
menu.cgiというテーブルタグで作ったコンテンツメニューを123.cgi(掲示板など)に読み込みたいのですが
検索をしてもうまくヒットしません。
アドバイスをお願いします><
0405デフォルトの名無しさん
2007/09/06(木) 23:29:58>>7を穴の開くほど読む
0406デフォルトの名無しさん
2007/09/06(木) 23:43:47理解できなかったので失礼します。
jsで読みこみます;;
0407デフォルトの名無しさん
2007/09/06(木) 23:52:52Perlの関数なんて大した数じゃないんだから一覧表でも見ろよ。
0408デフォルトの名無しさん
2007/09/07(金) 00:09:45何かあったのか?
ゆとりぐらいもとうぜ
0409デフォルトの名無しさん
2007/09/07(金) 00:30:230410デフォルトの名無しさん
2007/09/07(金) 08:48:470411デフォルトの名無しさん
2007/09/07(金) 09:21:16居るように見えるのだけど…
それも煽り目的で常駐してる…
0412デフォルトの名無しさん
2007/09/07(金) 11:53:030413デフォルトの名無しさん
2007/09/08(土) 08:19:22メニューを書いて呼びこむつもりでした
0414デフォルトの名無しさん
2007/09/08(土) 09:52:300415デフォルトの名無しさん
2007/09/08(土) 10:57:500416デフォルトの名無しさん
2007/09/08(土) 11:18:05PHPのincludeってローカルファイルだけじゃなくてHTTP経由でも取り込めるのな。
知らなかった。
http://us3.php.net/include/
Perlだと、ローカルファイルはrequireかuseで取り込めるけど、HTTP経由だとLWPで取得してevalするとかになるかな。
PHPのように組み込み関数で一発というわけにはいかない。
http://homepage3.nifty.com/hippo2000/perltips/LWP/UserAgent.html
0417デフォルトの名無しさん
2007/09/08(土) 11:19:130418デフォルトの名無しさん
2007/09/08(土) 11:28:290419デフォルトの名無しさん
2007/09/08(土) 11:41:04ありがとうございます
その回答が完璧です!
感謝してます
0420デフォルトの名無しさん
2007/09/08(土) 11:57:32ぐぐっても"perl __EOF__"じゃなにも出てこなかったので
0421デフォルトの名無しさん
2007/09/08(土) 12:07:03http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=zpV&q=perl+%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
0422デフォルトの名無しさん
2007/09/08(土) 12:08:52$string = '__EOF__';
こういうこと
__EOF__
0423デフォルトの名無しさん
2007/09/08(土) 12:12:140424デフォルトの名無しさん
2007/09/08(土) 12:26:12DATA __END__で検索しろ。
>>421-412
嘘を言うなよ。
0425デフォルトの名無しさん
2007/09/08(土) 12:35:30おいおい、、、__E「O」F__ と __E「N」D__を混乱するんじゃないよ。
普通の perl に __EOF__ なんてリテラルトークンなかったはずだけど?
Programming Perl に記載されてんのは以下。
__DATA__,
__END__,
__LINE__,
__PACKAGE__,
__FILE__
0426デフォルトの名無しさん
2007/09/08(土) 13:37:04> おいおい、、、__E「O」F__ と __E「N」D__を混乱するんじゃないよ。
怪奇なり
0427デフォルトの名無しさん
2007/09/08(土) 13:41:390428デフォルトの名無しさん
2007/09/08(土) 13:47:100429デフォルトの名無しさん
2007/09/08(土) 13:55:060430デフォルトの名無しさん
2007/09/08(土) 14:26:12$a = $a // $b;
とかsayを早く使いたいよ
0431デフォルトの名無しさん
2007/09/08(土) 15:49:13つまんねーネタ晒すくらいなら黙ってろ
0432デフォルトの名無しさん
2007/09/08(土) 15:55:07>$a = $a // $b;
一瞬、コメントアウトしてるのかと思ったwww
0433デフォルトの名無しさん
2007/09/08(土) 16:19:28おまえが死んだ頃に出るよ
0434デフォルトの名無しさん
2007/09/08(土) 16:20:18「お前がつまらないと思った」という事実の報告はそれよりもっとつまらないのに、
なんで自分にだけは書き込みを許してるの?w
0435デフォルトの名無しさん
2007/09/08(土) 16:23:320436デフォルトの名無しさん
2007/09/08(土) 16:31:370437デフォルトの名無しさん
2007/09/08(土) 19:41:560438デフォルトの名無しさん
2007/09/08(土) 20:01:040439デフォルトの名無しさん
2007/09/09(日) 03:37:410440デフォルトの名無しさん
2007/09/09(日) 15:28:520441デフォルトの名無しさん
2007/09/09(日) 20:08:030442デフォルトの名無しさん
2007/09/09(日) 20:14:470443デフォルトの名無しさん
2007/09/09(日) 21:13:28指定したトリップを検索できるプログラムはperlで書けますよね?
意味伝わってますか?(^_^;
0444デフォルトの名無しさん
2007/09/09(日) 21:27:29全く分からん。
どっか行け。
0445デフォルトの名無しさん
2007/09/09(日) 21:54:40出来る。
でも、取りあえずもうちょっと意味が通る文にしてくれ。
郵便番号トリップ検索でも行いたいのかしら。
0446デフォルトの名無しさん
2007/09/09(日) 22:34:18おまえは基礎からやり直せ
0447デフォルトの名無しさん
2007/09/09(日) 23:28:17すみません。
(;^-^)_旦""
>>445
あざすっ!
TripcodeExploreやtrip-mona等、トリップを解析するソフトウェアがあるのですが
それらは知ってますか?
0448デフォルトの名無しさん
2007/09/09(日) 23:33:590449デフォルトの名無しさん
2007/09/09(日) 23:48:220450デフォルトの名無しさん
2007/09/10(月) 06:17:48辞書を順番にトリップに変換して検索したいパターンにマッチするか試すだけだろ?
トリップへの変換方法は「perl crypt トリップ」あたりで検索。
0451デフォルトの名無しさん
2007/09/10(月) 08:12:27もっとわかりやすくおしえてくださいm(_ _)m
0452デフォルトの名無しさん
2007/09/10(月) 09:07:49なら、先ずはもっとわかりやすくしつもんしてくださいm(_ _)m
0453デフォルトの名無しさん
2007/09/10(月) 09:13:08わかる方おしえてくださいm(_ _)m
0454デフォルトの名無しさん
2007/09/10(月) 09:22:25どうやって、どこまで調べて、どこが分からなくて詰まったのかを説明すればいいじゃないですか(^_^;
荒らしなら他のスレに往って下さいm(_ _)m
0456デフォルトの名無しさん
2007/09/10(月) 09:25:32おまえ以外だれも理解できてる奴がいない状況で「十分わかりやすいんで」ってかなりな幸せ回路をおもちですね(^_^;
何を教えてほしいのかわからないのでおしえようがありません、荒らしはうざいのでさっさと消えてくださいm(_ _)m
0457デフォルトの名無しさん
2007/09/10(月) 09:36:12理解してレスした人が居る上でその発言かよ
よほどの脳無しだな
0458 ◆PQZNeK2U46
2007/09/10(月) 09:38:04トリップは以下のコードで生成されるらしいのですが、これに辞書からトリップを作る機能を付け加えるとなると、難しいですか?
$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";
0459デフォルトの名無しさん
2007/09/10(月) 09:41:11Perlができる人にとっては
0460デフォルトの名無しさん
2007/09/10(月) 10:11:090461デフォルトの名無しさん
2007/09/10(月) 10:22:06jperl でしたいことは 5.8 なら大抵自前で出来てしまうから。
0462デフォルトの名無しさん
2007/09/10(月) 12:12:44一分もしない内に書けるけどここは学ぶ気がある人のためのスレだから。
open while chomp print
0463デフォルトの名無しさん
2007/09/10(月) 12:14:47Shift_JISの問題は日本国内だけのローカルな話で需要として少ない上
本家がUTF-8に対応し更にShift_JISに限らずマルチバイト全般の処理方法を組み込んだから。
jperl自体、もともと需要が少なかったからしょうがないな
0464 ◆PQZNeK2U46
2007/09/10(月) 17:45:24あざすっ!
三つ目のchompがどう必要なのかわかりませぬ。。
分割文字列の削除?ですか?
0465デフォルトの名無しさん
2007/09/10(月) 18:30:060466デフォルトの名無しさん
2007/09/10(月) 20:50:48配列で特定の部分だけを$hairetu[3] = '';という風に「空で」はなく、
「未定義値」にすることはできないのでしょうか。
検索してできたもので
undef($hairetu[3]);などとやってみましたが上手くいきませんでした。
未定義値できる方法があったら教えてください。
よろしくお願いします。
0467デフォルトの名無しさん
2007/09/10(月) 20:59:26undefを代入したり、splice使う手もあるけど
0468デフォルトの名無しさん
2007/09/10(月) 21:01:26定義されてるかどうかはdefinedを使う
0469デフォルトの名無しさん
2007/09/10(月) 21:11:220470デフォルトの名無しさん
2007/09/10(月) 21:28:46>>468のdefinedを使ってみたら確かに偽になっていました。
最初から目的が未定義値にする、とだけ考えていたので
どうやら目的が違ったのかもしれません。一度、最初から考え直します。
>>467に書かれている代入とspliceというのも検索で調べてみようと思います。
返答ありがとうございました。
0471デフォルトの名無しさん
2007/09/11(火) 20:09:440472 ◆PQZNeK2U46
2007/09/11(火) 20:40:32返答次第じゃ、お前らを皆殺しにするCGIをケントに書いてもらいます。
宜しくお願いします。
0473 ◆PQZNeK2U46
2007/09/11(火) 20:44:52PHPに押されてすっかり息を潜めた古文を守る為ならば、悪魔に魂を注げる男だからね。
とりあえずお前らは俺に謝った方がいい。
そして例のプログラムを書くよろし。
0474デフォルトの名無しさん
2007/09/11(火) 20:53:150475 ◆PQZNeK2U46
2007/09/11(火) 20:54:00その間によく考えてください。
家族から先に殺すCGIをケントは知ってます。
ウェッブから殺す事が可能です。
俺の怒りがある値よりも大きい間、お前らと家族を探して
心臓麻痺で殺すプログラムです。
0476 ◆PQZNeK2U46
2007/09/11(火) 20:57:38日本語ぉk?
0477デフォルトの名無しさん
2007/09/11(火) 20:58:120478デフォルトの名無しさん
2007/09/11(火) 21:02:57って言ったくせに嘘つきー。
オレの家族さっき心臓麻痺で死んじゃったよ。
どうしてくれんだよ。
0479 ◆PQZNeK2U46
2007/09/11(火) 21:15:27PHPなら簡単にできますが、お前らの知っている古文では難しいですか?perlはもはや風前の灯
perlの事はケントとお前らに任せて
俺はPHPを勉強しています。
perlは勉強するつもりがないので、お前らの出番です教えてください。
どうせ暇でしょう?
0480デフォルトの名無しさん
2007/09/11(火) 21:20:100481デフォルトの名無しさん
2007/09/11(火) 21:22:46釣り場を変えてみたらどうですか?
0482 ◆PQZNeK2U46
2007/09/11(火) 21:35:22お前らは牛馬を屠殺したり革を鞣すプログラムでも作ってるよろし。
0483デフォルトの名無しさん
2007/09/11(火) 21:40:29みんな、スルーだ
0484 ◆PQZNeK2U46
2007/09/11(火) 22:02:03for($方針=教える;$方針>俺の理解;優しさ++){
if(俺の理解==お前らの知識){
System.out.print(゙ありがとゔ)
0485 ◆PQZNeK2U46
2007/09/11(火) 22:11:45俺本当はperlが好きです。でもPHPの方がもっと好きぃ。
見たでしょあの解読不能なプログラム。
俺はエスパーだからわかるけど、例のトリップのプログラムだけはわからない。
いじわるしないで教えてよ。ケントに言い付けるよ?
0486デフォルトの名無しさん
2007/09/11(火) 22:34:155.8に上げたら見える?
5.8だとどこまでという制限はあるんでしょうか?
2Gのままだと厳しい・・
お前蛇語のパームがそんなに好き?
めがねはいじわるじゃかるたねえ?
でしたらやるよ俺いやだから
とっとと帰ると意味分からない
0488デフォルトの名無しさん
2007/09/11(火) 23:23:51ほぼcryptしか意味なしてねーじゃねーかwwww
0489 ◆PQZNeK2U46
2007/09/12(水) 00:00:10perlしか能のないお前らが職と希望を無くして樹海行きのバスに乗る前に教えてよ。
PHPを勉強中の俺はお前らのこと忘れないよ。
いつか俺がPHPを極めたら、perlの人達を成仏させるプログラムを組むね。PHPでゲラ。
さて、そろそろ教えて。
0490デフォルトの名無しさん
2007/09/12(水) 00:32:520491デフォルトの名無しさん
2007/09/12(水) 00:36:45後の世の人に教えてもらったら?
0492デフォルトの名無しさん
2007/09/12(水) 03:15:38全力で構ってやるわド低能が
0493デフォルトの名無しさん
2007/09/12(水) 05:46:200494 ◆PQZNeK2U46
2007/09/12(水) 11:10:59perlの分際で金を取ろうなんて
ぶっちゃけ、おこがましいと思う。
いずれ僕がPHPを極めたら、僕のDeathScriptにケントの名前を書込みます。
そして人生をやり直せるCGIを書いてお金儲けをします。
perlの人間の長蛇の列ができる事でしょうね。
生まれ変わったらPHPを勉強してください。
能力次第では雇ってあげます。
0495デフォルトの名無しさん
2007/09/12(水) 13:31:540496デフォルトの名無しさん
2007/09/12(水) 13:40:500497デフォルトの名無しさん
2007/09/12(水) 13:44:00できるやつは普通に高い本とかがんがん買ってる
0498デフォルトの名無しさん
2007/09/12(水) 13:54:130499デフォルトの名無しさん
2007/09/12(水) 14:00:330500 ◆PQZNeK2U46
2007/09/12(水) 14:00:37perlにかける金はねーって事を言ってんだよ。
読解力のない奴だな。
プログラムが無理なのはお前だろ。
お前仕事できないだろ?
0501 ◆PQZNeK2U46
2007/09/12(水) 14:05:37お前ホントに馬鹿だろ?
今時perlの勉強に金かけてる奴は負け組だから。
perlに金使うぐらいならユニセフに寄付した方がマシですから。
0502 ◆PQZNeK2U46
2007/09/12(水) 14:17:01馬鹿だよね。お前らって。
もう終わりそうなperlのスレなんか立てて
perlに必死にしがみついてさ。
そんなにperlが好きなら運命を共にしなよ。
0503デフォルトの名無しさん
2007/09/12(水) 14:34:540504 ◆PQZNeK2U46
2007/09/12(水) 14:42:19perl勉強して人生挫折したカスに心配されたくない。
0505デフォルトの名無しさん
2007/09/12(水) 14:48:560506 ◆PQZNeK2U46
2007/09/12(水) 14:51:40先見力のある僕はPHP号に乗船します。
あと僕はJAVAも勉強します。お前らはせいぜいJAVAscriptでも勉強してろってこった。
0507 ◆PQZNeK2U46
2007/09/12(水) 14:54:510508デフォルトの名無しさん
2007/09/12(水) 14:56:030509デフォルトの名無しさん
2007/09/12(水) 15:00:380510デフォルトの名無しさん
2007/09/12(水) 15:42:100511デフォルトの名無しさん
2007/09/12(水) 15:45:260512デフォルトの名無しさん
2007/09/12(水) 15:49:560513 ◆PQZNeK2U46
2007/09/12(水) 15:56:070514デフォルトの名無しさん
2007/09/12(水) 16:47:41やあ、 ◆PQZNeK2U46 さん、こんばんわ。
今日も粘着させて頂きますので宜しくお願いしますね。
0515 ◆PQZNeK2U46
2007/09/12(水) 17:22:220516デフォルトの名無しさん
2007/09/12(水) 17:39:22心の中で応援しています!!
0517デフォルトの名無しさん
2007/09/12(水) 17:49:33さっさと巣に帰れ
まあ自分でプログラミングむいてないのは気づいてるようだが・・・
0518デフォルトの名無しさん
2007/09/12(水) 17:54:10ウェブサイトとか一通り呼んでからラクダ本とか読んでも知らなかったことだらけだよ。
0519 ◆PQZNeK2U46
2007/09/12(水) 18:02:17いや、勉強してますから。
高校の勉強と平行してやってます。
0520デフォルトの名無しさん
2007/09/12(水) 18:10:49プログラミングの勉強以前に
義務教育からやり直した方がいいと思いますよ
0521デフォルトの名無しさん
2007/09/12(水) 18:14:550522デフォルトの名無しさん
2007/09/12(水) 19:40:520523デフォルトの名無しさん
2007/09/12(水) 19:57:260524デフォルトの名無しさん
2007/09/12(水) 20:29:57環境依存。
5.6でも5.8でもファイルサイズは(statのst_sizeフィールドの大きさに応じて)
NV 又は IV で受けている。
実際の制限はconfigモジュールで確認するといいよ。
(fpossize lseeksize ivsize ivtype nvsize nvtype あたり)
0525 ◆PQZNeK2U46
2007/09/12(水) 22:43:19正解。
そう。環境依存だね。
0526デフォルトの名無しさん
2007/09/12(水) 22:53:300527デフォルトの名無しさん
2007/09/12(水) 23:27:29ありがとうございます。
環境はWindows2003なのですが、調べてみます。
0528デフォルトの名無しさん
2007/09/13(木) 00:16:12うんがんばれよ
多言語批判とかまだ早いから寄り道すんな
0529デフォルトの名無しさん
2007/09/13(木) 00:17:070530 ◆PQZNeK2U46
2007/09/13(木) 00:43:50return thx;
0531デフォルトの名無しさん
2007/09/13(木) 00:56:18perlの勉強をただで教えてもらえる方法を教えてやろか?
0532デフォルトの名無しさん
2007/09/13(木) 08:48:44尻を提供する。
ウホッ!
0533デフォルトの名無しさん
2007/09/13(木) 09:04:46525 名前: ◆PQZNeK2U46 [] 投稿日:2007/09/12(水) 22:43:19
>> 524
正解。
そう。環境依存だね。
0534デフォルトの名無しさん
2007/09/13(木) 09:26:220535デフォルトの名無しさん
2007/09/13(木) 09:59:47CGI
0536 ◆PQZNeK2U46
2007/09/13(木) 11:26:04教えてください!JAVAも教えてもらえますか?
0537デフォルトの名無しさん
2007/09/13(木) 11:43:450538デフォルトの名無しさん
2007/09/13(木) 11:47:140539デフォルトの名無しさん
2007/09/13(木) 12:12:49>>535
いえ、そうじゃなくて
MFCとかC#とかいろいろローカルなプログラムとして扱う方法で
bestなのも
http:://localhost:適当なポート
にcgiアクセスなのでしょうか?
そうするとPOPFileとかとぶつかってあんまり嬉しくないんです
0540デフォルトの名無しさん
2007/09/13(木) 12:24:120541デフォルトの名無しさん
2007/09/13(木) 12:32:55作る内容にもよるけど、GUI初心者が一番楽なのはCGIだと思うよ。
perl gui とかでググって、どんな方法があるのかくらいは調べたら?
0542デフォルトの名無しさん
2007/09/13(木) 12:38:020543デフォルトの名無しさん
2007/09/13(木) 12:43:530544デフォルトの名無しさん
2007/09/13(木) 12:47:250545 ◆PQZNeK2U46
2007/09/13(木) 12:58:38さもなくば、とほほの入れ知恵ですか?
真なら首謀者を殺します。
0546デフォルトの名無しさん
2007/09/13(木) 13:27:580547 ◆PQZNeK2U46
2007/09/13(木) 13:33:58本当にPHP大丈夫なのかな。心配になってきた。
PHPとmySQL勉強しとけば引く手数多だと高校の友達は言うが、誰の言葉の受け売りなんだろう。
やっぱり無難にJAVA勉強した方がいいのかな。
負けから色々学んだperl組のお前らはどう思いますか?
0548 ◆PQZNeK2U46
2007/09/13(木) 13:39:40PHP極めて就職した後に違う言語にその座を奪われて
俺みたいな童貞工房に馬鹿にされるの絶対嫌だ。
お前ら教えて。俺はどうしたらいい?
0549デフォルトの名無しさん
2007/09/13(木) 13:53:430550デフォルトの名無しさん
2007/09/13(木) 14:12:16勉強するんだ!!って意気込みよりも
コレを作りたい!っていうほうが向上すると思う。
0551デフォルトの名無しさん
2007/09/13(木) 14:21:51PHP と DB (初歩的な SQL 必須) とソケットが扱えないと引く手数多とはならない
殆どの言語の構文は模倣 (いいところ取り) なので、1つの言語をそこそこ覚えてれば順応はできるかと
C++ で Windows と Linux でのマルチプラットフォームで動くソフトが作れればかなり重宝される
0552デフォルトの名無しさん
2007/09/13(木) 14:26:22鯖アプリなら大抵はJavaやLL言語で用が足りるし
(会社によっては未だにTPモニタ+COBOLかもしれんが)
X用のクライアントアプリを今時業務で作ることなんてほとんどないと思ってたが
0553デフォルトの名無しさん
2007/09/13(木) 14:50:49テキスト処理 自然言語処理 Web系の充実は異常
要はアルゴリズムがインプリメントされていさえすれば
言語はなんでもいいんだからPerl最強と思ってしまう
c++のboostだってここまで充実してない
0554デフォルトの名無しさん
2007/09/13(木) 16:57:36建築現場で働くか、首吊るか、好きな方を選べ。
0555デフォルトの名無しさん
2007/09/13(木) 17:05:20オマエら釣られすぎ。
0556デフォルトの名無しさん
2007/09/13(木) 19:02:480557デフォルトの名無しさん
2007/09/13(木) 19:15:170558デフォルトの名無しさん
2007/09/13(木) 19:16:48テキスト処理ならわかるが、自然言語処理って何?
それって英語圏専用のテキスト処理技術じゃないの?
0559デフォルトの名無しさん
2007/09/13(木) 19:32:07よくあること。元々過疎スレなんだから、
一人で荒らしてグダグダにするのなんて
誰でも出来る簡単な事。それをたまたま今回
頭の悪い工房がやっただけでしょ。珍しくも無い。
0560 ◆PQZNeK2U46
2007/09/13(木) 19:32:34JAVAとPHPならどっち?
収入とか将来性とか。
JAVAのプログラマーだと月収50万円ぐらい稼げるって聞いたんだけど、
PHPでもそれぐらい稼げる?
関係ないけどケントはperlだけどケッコー儲けてるよね。
0561デフォルトの名無しさん
2007/09/13(木) 19:35:550562デフォルトの名無しさん
2007/09/13(木) 19:41:480563デフォルトの名無しさん
2007/09/13(木) 19:46:25まじめに質問するつもりなら他のスレで聞け
0564デフォルトの名無しさん
2007/09/13(木) 19:46:48釣りだから相手すんなよ。
0565デフォルトの名無しさん
2007/09/13(木) 20:03:260566デフォルトの名無しさん
2007/09/13(木) 20:31:180567デフォルトの名無しさん
2007/09/13(木) 21:57:040568 ◆PQZNeK2U46
2007/09/13(木) 22:25:41お前らがいつも会社でされてるみたいに。
0569デフォルトの名無しさん
2007/09/13(木) 22:35:52ほっとけば、小学生と同じで飽きるんだよ。
0570 ◆PQZNeK2U46
2007/09/13(木) 22:58:17お前と違ってプッゲラ
0571デフォルトの名無しさん
2007/09/13(木) 23:05:20POPFile(Perlだよね)は日本語でも動くけど?
0572 ◆PQZNeK2U46
2007/09/13(木) 23:06:45初めて聞いたよ。
「スルーできないのかね」でいいじゃん。アホですか?
いい歳して、渋谷の汚ギャルが使う様な訳のわからない言葉使うのやめたら?
だから仕事できないんだよお前は。馬鹿が。
死ね。
カス。
0573デフォルトの名無しさん
2007/09/13(木) 23:14:160574 ◆PQZNeK2U46
2007/09/13(木) 23:16:30同じネタずーっと引っ張って楽しんでるよ小学生は。
そのトンチンカンな例え話し、どうにかできないの?
嫌味のつもりで小学生って言葉を使ってる時点でお前もスルーできてないしな。
火事になっちゃえ。
0575デフォルトの名無しさん
2007/09/13(木) 23:16:49無知ってやだね。
0576デフォルトの名無しさん
2007/09/13(木) 23:17:293分で釣れた
0577デフォルトの名無しさん
2007/09/13(木) 23:21:42IEのCookiesのファイルはあるので、それが利用できると尚いいです
0578 ◆PQZNeK2U46
2007/09/13(木) 23:48:44「スルー力がないのかね」って大人ぶっておいて
結局自分自身がスルーできないアホが使う奥義。
0579デフォルトの名無しさん
2007/09/13(木) 23:57:44自重汁
0580デフォルトの名無しさん
2007/09/14(金) 00:04:25ベイジアンネットワークで解析
とかするのがほとんど既存パッケージでできるPerlは最強
形態素解析だけはnaistの某研究室からcで書いてあるのとってこないといけないけど
全部cでやろうと思ったら死ぬ
pythonとかその辺りどうなんだろ
0581デフォルトの名無しさん
2007/09/14(金) 00:34:49それ、もしかして自分はスルーできてるつもりだったりする?
そうやって自分じゃ抜け穴くぐって言うこと言ったつもりの間抜けな反応が
一番楽しいって気づこうよ。知的障害者クン。
0582デフォルトの名無しさん
2007/09/14(金) 01:41:48専門的なのはよく知らないけど、
個人的には、基本的な配列操作をもっと簡単にしてくれ、と思う。
0583デフォルトの名無しさん
2007/09/14(金) 08:57:23具体例を挙げてみて。
これをこうしろと。
0584デフォルトの名無しさん
2007/09/14(金) 09:03:31これ使えばいいんじゃね?
http://search.cpan.org/~gbarr/Scalar-List-Utils-1.19/lib/List/Util.pm
0585デフォルトの名無しさん
2007/09/14(金) 10:11:20LWP::UserAgent 使ったら簡単だった。
0586デフォルトの名無しさん
2007/09/14(金) 11:22:03ある項目がリストに含まれているか調べる
リストの最大値の項目を得る
2つのリストの共通集合をつくる
リストの重複を除いたリストをつくる
多次元リストをつくる
とか。
いや、perlでも出来るよ。
でも、何やらテクニックつかったり、他のモジュール使ったりとかでなく
基本の組み込み操作だけで簡単にさせてくれよ、って思う。
0587デフォルトの名無しさん
2007/09/14(金) 11:49:260588デフォルトの名無しさん
2007/09/14(金) 12:00:16C++なんかでもなら原則自分で作るの当たり前。
むしろ正規表現が普通に使える事が驚きっちゃあ驚きだわい。
0589デフォルトの名無しさん
2007/09/14(金) 12:30:27> むしろ正規表現が普通に使える事が驚きっちゃあ驚きだわい。
いやそこはsedやawkを受け継いでるんだから、当たり前だろう
0590デフォルトの名無しさん
2007/09/14(金) 13:28:330591デフォルトの名無しさん
2007/09/14(金) 13:42:04組み込み関数が少ないのがPerlのメリットだと思うんだぜ。
そういうのだったらPHPにでもRubyにでも行けばいいし><
0592デフォルトの名無しさん
2007/09/14(金) 14:59:400593デフォルトの名無しさん
2007/09/14(金) 15:01:350594デフォルトの名無しさん
2007/09/15(土) 06:21:10共同コーディングが
できるサイトってないの?
0595デフォルトの名無しさん
2007/09/15(土) 06:28:18sourceforge.net
0596デフォルトの名無しさん
2007/09/15(土) 07:25:58なんかやるなら誘って〜。
ネット上のみでそういうのやったこと無いから面白そうだわ。
既存のプロジェクトとかに入っていく勇気が無い。俺空気読めないから。
0597デフォルトの名無しさん
2007/09/15(土) 07:30:46今は停滞してるけど
0598デフォルトの名無しさん
2007/09/15(土) 07:54:16プロジェクトじゃねーわ
リアルタイムに共同コーディングって意味だわボケ
0599デフォルトの名無しさん
2007/09/15(土) 07:58:02で、具体的にはどういうもんなの?まさかエディタのバッファ共有とか?(笑)
0600デフォルトの名無しさん
2007/09/15(土) 15:11:59送信ポートは、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でも組んでみましたが、"不正なファイル記述子です"と送信できませんでした。
よろしくおねがいします。
0601デフォルトの名無しさん
2007/09/15(土) 15:15:02不特定多数のマシン上で動作する「BIOSの電源管理設定を設定を読込/設定変更可能なソフト」は
特殊な技術なく普通に作れるものなのでしょうか?
いかにも相性問題が発生しそうなテーマな気がするのですが、
BIOSの設定は一般の人では自力設定は難しくPCに詳しくない顧客でも扱えるような管理ソフトが欲しいのです。
お手数ですがご教授ください。
0602デフォルトの名無しさん
2007/09/15(土) 15:33:420604デフォルトの名無しさん
2007/09/15(土) 15:40:53>ド素人的質問
まったくその通り。
だから、出入りのゼロックスとか大塚商会さんにでも聞いてね。
0605デフォルトの名無しさん
2007/09/15(土) 17:13:12C/C++のプログラムでexit(255)で終わらせたプログラムを、
$ret = system("***");
で呼ぶと$retに65280(0xff00)が返るんだけど、256倍が返るの
仕様っすか??
0606デフォルトの名無しさん
2007/09/15(土) 17:27:31仕様らしい。ぐぐったら256で割れって書いてるところと
書いてないところがあった
0607デフォルトの名無しさん
2007/09/15(土) 17:43:55ってむずいっすかね。
587になる前は送信も普通に出来ていたのでちょい萎えなんですが・・・
0608デフォルトの名無しさん
2007/09/15(土) 19:34:260609デフォルトの名無しさん
2007/09/15(土) 20:23:46ってゆ〜か、逆にむかし、「マニュアルを見ろ」と言うとブチ切れるオッサンとかいた。
「わたしはホワイトカラーだ! バカにするな!」とかって。
0610デフォルトの名無しさん
2007/09/15(土) 20:35:000611デフォルトの名無しさん
2007/09/15(土) 21:03:050612デフォルトの名無しさん
2007/09/15(土) 21:04:550613デフォルトの名無しさん
2007/09/15(土) 21:28:55煽るくらいならスルーしろボケ。
0614デフォルトの名無しさん
2007/09/16(日) 00:34:49いろいろやってみましたがうまく行きません
my $cookie_jar = HTTP::Cookies->new(file => $cookie_file, autosave => 1, ignore_discard => 1);
のようにして作った時、cookie_jarはまだ空ですよね
ここに、idとパスワードを最初から入れておくにはどうしたらいいですか
0615デフォルトの名無しさん
2007/09/16(日) 00:59:31その状態でアクセスしているのに、idを送っていないのと同じ反応になります
#LWP-Cookies-1.0
Set-Cookie3: id=hane; pass=mogera
みたいな感じで書いてます
何がおかしいのでしょう
0616デフォルトの名無しさん
2007/09/16(日) 09:47:42,、'` ( ´∀`) ,、'`
'` ( ⊃ ⊂) '`
0617デフォルトの名無しさん
2007/09/16(日) 09:52:19http://coderepos.org/share/
0618デフォルトの名無しさん
2007/09/16(日) 22:46:32日本語読めないのか?
0619デフォルトの名無しさん
2007/09/16(日) 23:35:23スレ違いなので次の方質問をどうぞ。
0620デフォルトの名無しさん
2007/09/17(月) 01:13:47アドバイスをいただけるとうれしいです。
詳しい状況は以下↓
今までは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はどこのパスをいじればいいのかが分からないので試していません。
0621620
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/以下のモジュール全て使えるようにしたいのですが、
いい方法があったらおしえていください。
0622デフォルトの名無しさん
2007/09/17(月) 02:50:05~/.cpan/build/…はインストールされた場所ではなくて、CPANモジュールの作業ディレクトリではないのですか?
インストールしたのであれば、/usr/lib/perl5以下のモジュールを置くどこかにインストールされているはずです。
findで探してみては? みつかったら、その場所が@INCに含まれているか調べる。いなかったら、use libする。
0623デフォルトの名無しさん
2007/09/17(月) 02:51:23> 新たにインスコしたモジュール(Spreadsheet::WriteExcelとか)はホームディレクトリの下~/.cpan/build/というディレクトリ下にあります。
>
インストールとか言っているが、これはウソで、実はコピーしただけに1票
0624デフォルトの名無しさん
2007/09/17(月) 03:01:53もう一度インストールしてみるべし
0625620
2007/09/17(月) 03:30:23私の環境では/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],
※関係のなさそうなパラメータは除外しました
0626620
2007/09/17(月) 03:42:23いえ、cpanシェルで「install モジュール名」というコマンドを打ちました。
それ以外の操作はしていません。
>>624
こまんどを実行してみたところ
まず~/.cpan/build/Spreadsheet-WriteExcel-2.18という元々あったディレクトリに移動。
その後root権限でcpanシェルを抜けてbashに戻りました。
その後のインストールは/Users/ユーザ名/.cpan/.lockでロックされているようなので、できないようです。
0627デフォルトの名無しさん
2007/09/17(月) 05:29:43install 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
0628620
2007/09/17(月) 12:42:29無事解決しました、ありがとうございました。
いちおう状況報告です。
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はデフォルトで設定されているので設定の必要なし。
0629デフォルトの名無しさん
2007/09/17(月) 14:10:31このスレを見ている人はこんなスレも見ています。(ver 0.20)
会社で使えない奴、それはワタシ/アイツ [プログラマー]
entrance:ラウンジ[レス削除] [削除整理]
アップローダーを設置している人 Part19 [自宅サーバ]
なぜオブジェクト指向は普及しないのか 4 [プログラマー]
Perlコーディング初心者質問スレ Part 55 [WebProg]
登録装置にて、どうも頭の中が固まりきって、あひゃひゃになっております(呆)
-・-・ --・- -・-・ --・- -・-・ --・- -・-・ --・-
# 期限切れを排除して、重複するリモホ類を排除して、、、
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)
0631デフォルトの名無しさん
2007/09/17(月) 21:51:370632デフォルトの名無しさん
2007/09/17(月) 22:12:34少しぐらい問題切り分けてからこいよ。
0633デフォルトの名無しさん
2007/09/17(月) 22:37:26症状に関係あるかどうか知らないけど、
push @Deletelist, $_->[0] and $_->[1] = 'D' if $_->[1] == 0;
は
{ push @Deletelist, $_->[0]} and { $_->[1] = 'D' if $_->[1] == 0;}
という優先順位になるんじゃないかな。
0634デフォルトの名無しさん
2007/09/18(火) 10:10:16acceptから帰ってこない事があります。
ctrl-cを押すとacceptから復帰して正常に処理し始めます。
winxp上のactiveperlですが、考えられそうな原因が何か
分かりませんでしょうか。
0635 ◆PQZNeK2U46
2007/09/18(火) 15:15:47ちゃんと調べたのか?
馬鹿野郎。死ね。
なんだねその目は?
僕ですか?僕はこのスレのスレ主ですが何か?
0636デフォルトの名無しさん
2007/09/18(火) 15:26:09◆PQZNeK2U46 の素顔
http://internet.if.land.to/upload/src/img2763.jpg
0637デフォルトの名無しさん
2007/09/18(火) 15:38:31そして基本的に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も、今の俺も読めねえ。
0638637
2007/09/18(火) 15:57:52”エイリアス”と呼ばれるらしい。
引用:: Perlベストプラクティス 初版 p 125 上段
/$_は何かのコピーを次々に保持するものではない。
エイリアスを保持するのである。/
このエイリアスについて調べようとして、ググったんだがでてこなかった
もしかしたら { 翻訳上の都合 } なのかもしれないが、
なんかそれ系っぽい記事を知ってる人は申し訳ないがリンク恵んでください。
0639デフォルトの名無しさん
2007/09/18(火) 16:05:20しかも偉そうにwww
0640デフォルトの名無しさん
2007/09/18(火) 16:09:32>>637は何か私怨でもあるの?
とはいえ、>>630が$SIG{__WARN__}を使ってるとしたら、
中で$_を書き換えちゃってる可能性は否定できなかったりw
0641デフォルトの名無しさん
2007/09/18(火) 16:16:10それは$_の問題じゃなく++の問題。
>>633(演算子の優先順位)でFAだと思うがね。
0642デフォルトの名無しさん
2007/09/18(火) 16:19:55お前が理解できてないだけ。
普通に理解していれば発生するはずがない。
0643637
2007/09/18(火) 16:31:57さっき洗面台でコード吐いてきた。
>>641サンクス。勉強してくる。
>>639,642 人がここにいることが分かった。サンクス。
0644デフォルトの名無しさん
2007/09/18(火) 16:36:020645デフォルトの名無しさん
2007/09/18(火) 17:04:200646デフォルトの名無しさん
2007/09/18(火) 17:15:34>map { [ $_, (split /<>/) ] } # 一旦リファレンスに
ここが変わるだけだろ・・・
0647デフォルトの名無しさん
2007/09/18(火) 17:25:23可読性が無くなるなど本末転倒
0648デフォルトの名無しさん
2007/09/18(火) 17:44:150649デフォルトの名無しさん
2007/09/18(火) 20:32:19基本的にちゃんとプロジェクトとかに
残るコードはPerl風にしないほうがいいね。
逆に残らないだろうと思って書いたものも、
アテがはずれて残ってしまうことがあるんだけど。
0650デフォルトの名無しさん
2007/09/18(火) 23:54:05windowsだけでの実行を仮定するのであれば、shebang lineを書かなくてもOKですか?
0651デフォルトの名無しさん
2007/09/18(火) 23:59:47xml解析するモジュール使ってるんですけど、
値を取り出すときに、配列の時と、配列でない時と
別々に処理かかないといけないのでしょうか?
複数の<Item>がある場合、
$hoge = $tree->{Item}->[$i]->{Name}
一つしか<Item>がある時、
$hoge = {Item}->{Name}
今ぐぐったら、配列かどうかはチェック出来るんですね。
まだ、確かめてないけど。
やっぱ、別々に処理しないといけないのかなー。
if (ref($data) eq ‘ARRAY’) {
# 配列であった
}
else {
# 配列でなかった
}
0652デフォルトの名無しさん
2007/09/19(水) 00:03:05Win は関連付けで動くのでいらない
0653デフォルトの名無しさん
2007/09/19(水) 00:27:21ForceArray 辺り?
0654 ◆PQZNeK2U46
2007/09/19(水) 01:35:38本によってコードの書き方が全然違うし。疲れる。
rubyもこんなに難しいの?
変数宣言も突然型なしで出来るし。メチャクチャ。
こんなの扱ってるからお前ら馬鹿なんですね。
0655デフォルトの名無しさん
2007/09/19(水) 01:43:28やあ、 ◆PQZNeK2U46 さん、こんばんわ。
今日も粘着させて頂きますので宜しくお願いしますね。
0656デフォルトの名無しさん
2007/09/19(水) 02:39:27ストライクで御座います。
やっぱり、こういうのがあるんですよねー。
えっ、マニュアル嫁ってw
スミマセン以後気をつけます。
ありがとうございました。
0657 ◆PQZNeK2U46
2007/09/19(水) 02:43:02こんなところで鬱積したフラストレーションを爆発させてんじゃねーよ。
ノータリン。どうせ独身だろお前。人生オワトル。
0658 ◆PQZNeK2U46
2007/09/19(水) 02:48:40おい!こらテメーなんだそのザケた態度はよ。
すみませんって言葉はw付のおどけた態度で言う言葉じゃねーぞ?
実生活でも自分のミスを笑って済まそうとするアンポンタンか?
なめてんとブッ殺すぞ?
メガネ外せ。
0659 ◆PQZNeK2U46
2007/09/19(水) 02:53:55恥ずかしくないの?いい歳して訳のわからん言葉使ってよ。
なに?ストライクで御座いますって?
お前ラリッてんのか?
馬鹿ハゲ独身!ニートは死ね!
0660デフォルトの名無しさん
2007/09/19(水) 03:08:48全国のハゲに謝れ!
0661デフォルトの名無しさん
2007/09/19(水) 03:46:07荒らしとして規制議論にスレを立てて報告します。
適時掘られ、プロバイダから警告が来ると思います。
0662デフォルトの名無しさん
2007/09/19(水) 09:25:53Winで #! 書くのは -x 使うときと CGI 書くとき。
0663デフォルトの名無しさん
2007/09/19(水) 09:42:42オプションは見てくれるよ。ActivePerl の話だけど。
0664 ◆PQZNeK2U46
2007/09/19(水) 10:59:34>>661
殺す。
0665デフォルトの名無しさん
2007/09/19(水) 11:39:25if(/うんたら/) {
}
if(/かんたら/) {
}
awk みたいなコードだな
優先順位、、、うぅ、、、orz...
#エントリ数が14KもあるのでそろそろDBにする頃かしらと悩んでいる今日子の頃
0667デフォルトの名無しさん
2007/09/19(水) 21:41:20キリバンオメ
とりあえず、その削除されないという @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<><><>);
を食わせてみた限りでは、特におかしな結果にはならなかったよ。
0668デフォルトの名無しさん
2007/09/20(木) 09:47:04*.cgiファイルをCGIとして起動するように改造するにはどうしたらいいのでしょうか?
0669デフォルトの名無しさん
2007/09/20(木) 14:42:46ふつ〜
先行事例をしらべるんじゃね?
0670デフォルトの名無しさん
2007/09/20(木) 21:59:12> 残るコードはPerl風にしないほうがいいね。
なにその Perl 風って?
0671デフォルトの名無しさん
2007/09/20(木) 22:12:030672デフォルトの名無しさん
2007/09/20(木) 22:14:540673デフォルトの名無しさん
2007/09/20(木) 23:06:14print 0+$x, $x++;
print 1*$x, $x++;
0674デフォルトの名無しさん
2007/09/21(金) 16:44:25を実行すると、5.99999999999999 から結果がおかしくなるのはなぜですか?
0675デフォルトの名無しさん
2007/09/21(金) 16:58:43Eなんちゃらでしょ?
bigint だかなんだか忘れたけど、そんなモジュールを使ってみませう
0676デフォルトの名無しさん
2007/09/21(金) 17:13:08つ 丸め誤差
0677デフォルトの名無しさん
2007/09/21(金) 22:04:530678デフォルトの名無しさん
2007/09/22(土) 00:01:07結論から言えば、内部での数値の表現が2進数だから。
2進数で1/10(=0.1)を表現しようとすると無限小数になってしまう。
#10進数でも1/3を有限小数で表現できないのと同じ。
でも、コンピュータの演算器は限られた大きさのデータ(ここでは有限の桁数としとく)しか扱えない。
結果演算誤差が出る。
0679デフォルトの名無しさん
2007/09/22(土) 00:03:45小数化した時点で誤差が含まれるから、いつかはそうなる。
WebProgの質問スレにも同じ質問あったからそこを参考にするといいよ。
0680デフォルトの名無しさん
2007/09/22(土) 02:53:14sub func{
if(/文字列/){
・・・
}
}
という関数があって、文字列の部分だけ変えたのをいくつか作りたいんですが
関数の引数として渡す方法はないでしょうか。
今は1行だけ違うコピペ関数が多数並んでいます・・・。
0681デフォルトの名無しさん
2007/09/22(土) 02:57:250682デフォルトの名無しさん
2007/09/22(土) 03:27:05コピペってことは
sub func {
if(/文字列1|文字列2/){...}
}
で済む気がする。
funcを複数回呼ぶ必要があるなら
func() if /文字列1/;
func() if /文字列2/;
でもいいわけだし。
0683デフォルトの名無しさん
2007/09/22(土) 05:50:10その意味を画面の右側に
日本語で表示してくれる
エディターある?
0684デフォルトの名無しさん
2007/09/22(土) 07:38:200685デフォルトの名無しさん
2007/09/22(土) 09:40:490686デフォルトの名無しさん
2007/09/22(土) 14:00:23コードを書くにはどうしたらいいですか?
0687デフォルトの名無しさん
2007/09/22(土) 14:07:46そのなでしこで
CGIは作れるのかよ、、、、?
0688デフォルトの名無しさん
2007/09/22(土) 14:15:15コードを書くのはめんどいので、、、
#!/usr/bin/env perl
use Data::Dumper ;
$Data::Dumper::Deparse = 42 ;
my $hoge = sub { 42 } ;
print Dumper $hoge ;
とかじゃダメかい?
0689デフォルトの名無しさん
2007/09/22(土) 15:41:51print "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になる。
ただしレンタルサーバー上ではエラーだが、
自分のパソコンでやったらちゃんと表示される。
ソースにもし間違いがあったら
場所と対処法を具体的に指摘しろ。
0690デフォルトの名無しさん
2007/09/22(土) 15:54:18板違いだWebProg池
0691デフォルトの名無しさん
2007/09/22(土) 16:31:13/usr/local/bin/perlじゃなくて/usr/bin/perlだったりして
あとよくあるのが行末がCR+LFになってて、
/usr/local/bin/perlCRを探しに逝ってるとか
0692デフォルトの名無しさん
2007/09/22(土) 18:34:13全部間違い。出直せ、ボケ!
0693デフォルトの名無しさん
2007/09/22(土) 19:22:02>>692
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0694デフォルトの名無しさん
2007/09/22(土) 19:35:56Windows系サーバなら、CGI も組めそうじゃね?
あんまり現実的じゃないけどw
0695デフォルトの名無しさん
2007/09/22(土) 21:55:010696デフォルトの名無しさん
2007/09/22(土) 22:39:54組みたくないがw
0697デフォルトの名無しさん
2007/09/23(日) 00:53:34たしか Apache の CGI サンプルにあったはず
0698デフォルトの名無しさん
2007/09/23(日) 00:57:53なるほど、たしかに
0699デフォルトの名無しさん
2007/09/23(日) 03:47:49cgiファイルのパーミッションを
755にしたらそれで動いたぜ
そんなこと教科書には
どこにも一言も書いてなかった!
ローカルで動かす教科書だからかな?
サノバビーィーーーッチ!
0700デフォルトの名無しさん
2007/09/23(日) 06:18:39Perl Package Managerが起動しないんだ
サポートに聞いてみたけど「そんな事例無いからワカンネ」って言われて
ほぼ同じスペックの友達のパソでやってみたら普通に開いたし、ぐぐってもそんな事例やっぱないっぽくて
誰か原因わかる人いる?
0701デフォルトの名無しさん
2007/09/23(日) 06:48:360702デフォルトの名無しさん
2007/09/23(日) 10:31:08しかしどうせならBSD系なりLinux系なりで勉強したほうが良いと思うが。
どうしてもWindowsでなきゃ駄目というなら
Cygwinを構築してCygwin系Perlを使ったほうが良いぞ?
0703デフォルトの名無しさん
2007/09/23(日) 13:36:42どういうときに役に立つのかがイマイチわかりません。
アルパカ本には
「ライブラリなどコードの他の部分と共有できるようにする」と書かれてますが、どういう意味でしょうか?
0704デフォルトの名無しさん
2007/09/23(日) 14:12:420705703
2007/09/23(日) 15:18:25うーん、単にそれだけのことなのですか。。
アルパカ本の記述から察するに何か深いわけがありそうな気がしたんです。
0706デフォルトの名無しさん
2007/09/23(日) 16:03:24横レス。
章の始めでしかも「こんな節はなかったことにして次へ」って記述されてる
んだから気にしなくて良い。
8.1 は
「(従来の)型グロブでやろうとすると面倒でした」
って書いてあるだけだ。
0707703
2007/09/23(日) 17:46:130708デフォルトの名無しさん
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;"
0709デフォルトの名無しさん
2007/09/23(日) 19:04:49リファレンスなら
my $base={};
あと値がundefでいいなら
my $base = {};
@$h{@keys}=();
とかでもできる
0710デフォルトの名無しさん
2007/09/23(日) 19:08:41my @keys=@_;
no strict "refs";
my $base;
$base->{$_}=undef for @keys;
return $base;
}
$hash = create_hash('key1','key2');
%hash = %{create_hash('key1', 'key2')}
0711デフォルトの名無しさん
2007/09/23(日) 19:11:460712708
2007/09/23(日) 19:55:56だからno strict "refs";は要るのかなと判断しました。
>>709
my $base={}という宣言もありなんですね。
ありがとうございます。
>>710
create_hashでやろうとしたことは、与えられた名前とキーのハッシュを作ることなんです。
$nameという名前のハッシュを宣言しようとしてうまくいかなくなったんです。
0713708
2007/09/23(日) 20:00:30'hash', 'key1', 'key2'
を引数にすると
スコープがmainパッケージのレキシカル変数%hashで
%hash = (key1 => undef, key2 => undef);
となっているようなものを作ってくれるようなサブルーチンを作りたいんです。
分かりにくくてすみませんでした。
0714デフォルトの名無しさん
2007/09/23(日) 20:24:11その引数の'hash'は何に必要なんだか理解出来ん。
sub create_hash{ map { $_, undef } @_ ; }
とか709 の方法
sub create_hash{
my %h ;
@h{@_}=();
return %h ;
}
でええんちゃうん?
0715708
2007/09/23(日) 21:18:07ありがとうございます。
hashはハッシュの名前です。
%hashの名前に使われていることにご注目ください。
0716デフォルトの名無しさん
2007/09/23(日) 21:22:230717デフォルトの名無しさん
2007/09/23(日) 21:26:24708 で使われてないよ? 'hash'
0718デフォルトの名無しさん
2007/09/23(日) 21:40:16左辺を*$nameにしてハッシュリファレンスを代入したらいいんか?
なんに使うのかしらんけど・・・
0719708
2007/09/23(日) 22:03:22>>718 荒らしではなくて、シンボリックリファレンスが古いことも含めて
何も知らないまま我流で考えて行き詰まっていたんです。
鼻につく態度があったならごめんなさい。
何に使うかというと、サブルーチンだと呼び出すたびにハッシュの名前を用意をしないと
いけませんが、引数に指定できれば、
たくさんのハッシュを一挙に定義できると考えたんです。
0720デフォルトの名無しさん
2007/09/23(日) 22:07:44何が言いたいのか分からないけど、無名ハッシュとかで実現できない?
0721デフォルトの名無しさん
2007/09/23(日) 22:11:06「ハッシュの名前を用意」
せんでいいってんなもん。呼出元で違う名のhashにすりゃいいだけだろ。
>>714を使ったとして
my %hash1 = create_hash( 'key1', 'key2' );
my %hash2 = create_hash( 'keyB1', 'keyB2' );
すりゃいいだけの話だ。
0722708
2007/09/23(日) 22:26:36それだと希望する名前のハッシュにできませんよね。
例えば、ファイルに書かれた
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がハッシュの名前ではなくハッシュリファレンスの名前になってしまうので
予定外です。
0723708
2007/09/23(日) 22:28:28× ハッシュを定義しようと考えました。
○ ハッシュを定義できるようなサブルーチンを作ろうと考えました。
0724デフォルトの名無しさん
2007/09/23(日) 22:29:040725デフォルトの名無しさん
2007/09/23(日) 22:34:25再設計をおすすめします
0726デフォルトの名無しさん
2007/09/23(日) 22:36:500727708
2007/09/23(日) 22:40:58分かりました。周辺知識を得てからまたこの問題を考えます。
無知さを思い知りました。
0728デフォルトの名無しさん
2007/09/23(日) 23:32:47そういう時は「ハッシュのハッシュ」を使うと幸せになれる希ガス
0729デフォルトの名無しさん
2007/09/24(月) 04:04:50エラーメッセージは出てないのか?
あと、ユーザー名にマルチバイト文字(漢字とか)使ってない? もしそうなら
ACTIVEPERL_PPM_HOME って環境変数に適当なディレクトリを設定すりゃOK。
0730デフォルトの名無しさん
2007/09/24(月) 09:27:27@hash{hoge, huga, hugo} = (1, 20, 300);
みたいなことをハッシュリファレンスでやりたいんですけど
$hash = {};
$hash->{hoge, huga, hugo} = (1, 20, 300);
こういうコードじゃダメみたいなんですが、
どうすればいいんですか?
0731730
2007/09/24(月) 09:33:58いろいろ自分でデリファレンスあたりを考えてみたら
%$hashにとりあえずデリファレンスしてそこから上のコードを見ながら書きなおしたら
$hash = {};
@$hash->{hoge, huga, hugo} = (1, 20, 300);
こうなりました
スレ汚し申し訳ありませんでした
0732730
2007/09/24(月) 09:35:00@$hash{hoge, huga, hugo} = (1, 20, 300);
こうでした
どっちにしろすみませんでした
0733デフォルトの名無しさん
2007/09/24(月) 09:36:54$hash = {
hoge => 1,
huga => 20,
hugo => 300,
}
スライスでどーしてもやりたいってんなら
@{ $hash }{'hoge','huga','hugo'} = (1,2,300) ;
0734デフォルトの名無しさん
2007/09/24(月) 09:37:350735デフォルトの名無しさん
2007/09/24(月) 11:03:18これは大丈夫なのか?
0736デフォルトの名無しさん
2007/09/24(月) 11:39:370737sakura
2007/09/24(月) 13:29:42した@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);
0738デフォルトの名無しさん
2007/09/24(月) 14:25:59> my $date=$_;
> my @accident=();
は@journalと同じところで宣言すべき。
> elsif(/^$/){
> #データ作製
closeしてから処理すれば?
入力データからしてどこかのニュースサイトとかで使うのかな?
こわこわー
0739デフォルトの名無しさん
2007/09/24(月) 14:26:27use strict;
my @journal;
my $entry;
while(<DATA>) {
chomp;
if(/^\d/) {
$entry = {date => $_, accidents => []};
push @journal, $entry;
} elsif(/^ /) {
push @{$entry->{accidents}}, $' if $entry and $';
}
}
0740デフォルトの名無しさん
2007/09/24(月) 14:35:30とりあえず use strict; したらわかるんだけど
my @accident=(); はそのifの中のスコープでしか使えない。>>738の通り。
次に@journalにpushする時\@accidentを使うと同じ参照を何度もpushすることになるから
[@accident]でコピーの無名配列を作り直してpushする必要がある。
0741デフォルトの名無しさん
2007/09/24(月) 14:56:440742デフォルトの名無しさん
2007/09/24(月) 14:57:140743デフォルトの名無しさん
2007/09/24(月) 15:49:27macで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」は動くのでしょうか?
ご回答お願いします。
0744デフォルトの名無しさん
2007/09/24(月) 16:03:59PerlはLinuxでしか扱った事がないのだけども、
まずはそのhello.plファイルに実行権限があるか確認してみては如何?
0745デフォルトの名無しさん
2007/09/24(月) 16:16:50実行権限ですね。
ちょっと調べて確認してみます!
0746デフォルトの名無しさん
2007/09/24(月) 16:17:34本質的にperlの話とは関係ないが・・・
cd ~/Desktop
でそこへ移動してから
perl hello.pl
でOK。または、どこからでも
perl ~/Desktop/hello.pl
0747sakura
2007/09/24(月) 17:25:15早速の回答、有り難う御座います。以下の様に、判断しましたが間違っていないでしょ
うか?
日付の行は、まだ明細行は無いので$entryのリファレンスとしてはdateのみを格納し
て、accidentsは、無名の配列コンストラクタで領域のみを確保してリファレンスを格
納する。その$entryのリファレンスを@journalの最終的なリストに蓄積して行く。
明細の行で、accidentsは日付の時に取得したリファレンスを元にして$entryのリス
トを順次作製蓄積して行く。
と言う事で理解しましたが、これで良いですか?リファレンスは使った事が無いの
で、憶測で書いています。最後にprint for @journal;では
HASH(0x2754b4)HASH(0x18333fc)の値が表示されました。データとしては、日付は2件
有りますのできちんとリファレンスが出力されている様です。
しかし、今度は@journalの出力の方法が分かりません。申し訳有りませんが、
@journalを出力する方法をお教え願います。
0748デフォルトの名無しさん
2007/09/24(月) 17:37:41あってるよ。
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";
0749デフォルトの名無しさん
2007/09/24(月) 18:00:17@{$journal[0]{accidents}}
0750デフォルトの名無しさん
2007/09/24(月) 20:28:00出力というとちょっと違うけど、こうやってまずは構造を知るところから。
use Data::Dumper;
print Dumper \@journal;
0751デフォルトの名無しさん
2007/09/24(月) 20:34:31YAML使う方が分り易くはないか?
0752デフォルトの名無しさん
2007/09/24(月) 21:38:18リファレンスを使えるようにはなりました。
オブジェクトもCPAN moduleのコードを読むだけならできます。
書くのは無理ですが。
そこで次のステップに,と思うのですが、なかなか遅々として進めないでいます。
Web applicationを作りたいです。
CPAN moduleをあさったりしてますが、他にどんな勉強しかたがありますか?
オープンソースのWeb applicationから勉強するにはどうしたらいいですか?
良く分からないのですが、sf.netで十分ですか?
それから、いつも書くコードが数十行なので、大規模なアプリを作る基礎力がついていない
気がします。何か題材があればいいのですが、先輩方はどうやってPerl codingの題材を見つけて
こられたのですか?
0753デフォルトの名無しさん
2007/09/24(月) 21:41:22Perlのデータ構造を見るんだから、Data::Dumperのほうがいいと思う。
あれなら
$VAR1 = [
{'foo' => 'bar'},
{'hoge' => 'fuga'},
];
みたいに無名配列に無名ハッシュが入ってるって見てわかるし。
ある程度なれた人間がdebug printとして使うんならYAMLのほうがいいだろうけど。
0754デフォルトの名無しさん
2007/09/24(月) 21:55:33> 気がします。何か題材があればいいのですが、先輩方はどうやってPerl codingの題材を見つけて
> こられたのですか?
何か題材を決めて書いてみる。わたしゃ最近は新しい言語を学ぶ時は、
2-gramの全文検索システムを作ってみる。
0755752
2007/09/24(月) 22:07:26ちなみに、言語は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
0756デフォルトの名無しさん
2007/09/24(月) 22:07:39それを実現させる道具としてPerlを勉強すると、
モチベーションを保てるしなあ。
0757752
2007/09/24(月) 22:20:06目標イメージがどれだけ鮮明かと言われるとイメージ力が苦手なもので自信がないですが、
A4用紙30枚くらいは書ける自信ならあります。
つまり、具体的なビジネスのアイデアは一応あります。
これまでにないSNSを作ろうかと思っています。
これまでにあるSNSだと流行らないので、これまでにないものを、と。
ただ、computer初心者なので(いやマジで)、TCP/IP, UNIX, HTTP, とかも逐次知識補充していかないと
codingできないありさまで、いつになったら作れるのやらという感じです。
たとえていえば、目標はハッキリしているつもりだが、途中の階段が暗黒なんです。
困りました。
だから、最近はオープンソースのWeb applicationに興味もってます。
ただ、実際に公開されてるものは大規模で、初心者向きではないですよね。
何かお勧めありますか?
0758デフォルトの名無しさん
2007/09/24(月) 22:22:01エロパワーは偉大だ
0759デフォルトの名無しさん
2007/09/24(月) 22:23:240760752
2007/09/24(月) 22:26:03有益なアドバイスありがとうございます。
実はあるページ[1]をみてから、
エロサイトもいいかもと期待に股間をふくらませています。
儲けを狙うなら、エロですね!!!
エロパワーは偉大。
脚注
[1] ゆーすけべー日記: エロサイトの管理人説
http://yusukebe.com/archives/07/09/04/114840.html
0761752
2007/09/24(月) 22:29:56mixiとは違って、はてなダイアリーのキーワードやamazonの「この商品を買った人はこの商品も買ってます」
みたく、関連する情報を自動提示してくれるSNSですね。
まあ、そうするための具体的なアイデアもあるわけですが。
mixiだと自分の周りの人だけで交友が閉じてしまうのが残念なところだと考えています。
0762sakura
2007/09/24(月) 22:30:45貴重な時間を割いて、回答して戴き有り難う御座います。今迄はリス
トやスカラーで用が足りていた物ですから、今回の様にリファレンス
を使わないといけないと言う物は、今迄は敬遠していました。
お陰で、少しは以前よりかは近くなった様な気がします。特に最後の
Data::Dumperは初めて使いました。大変参考になります。やはり、現
実の実務は、簡単な事でもデータ構造は複雑になりがちです。
今回は、実務では簡単な方で、まだ複雑な事は山の様にありますの
で、それに応用したいと思っています。どうも有り難う御座いまし
た。
0763デフォルトの名無しさん
2007/09/25(火) 03:25:42公共の場であんま膨らまさないようにな
0764752
2007/09/25(火) 17:35:33膨らまさないように気をつけます。
0765デフォルトの名無しさん
2007/09/25(火) 17:41:25オライリーの出してるPerl本なら駄本はないから、大きな本屋行って自分にあったのを買ってきたほうがいい。
0766デフォルトの名無しさん
2007/09/25(火) 18:21:24何か良い回避方法はないでしょうか?
HTML::Templateはループ回数が多くなると停止、Jcodeに至っては文字コードの変換さえ出来ませんでした。
jcode.plは使えるのですが。。PerlのVerは5.00503です。
0767デフォルトの名無しさん
2007/09/25(火) 18:30:31他のサーバに移る
0768デフォルトの名無しさん
2007/09/25(火) 18:31:180769デフォルトの名無しさん
2007/09/26(水) 00:21:02みたいな形でPerlでexpectファイルを実行してその結果を変数$EXPに入れてる
この.expファイルではTelnetで別マシンにログインしてそこで実行したコマンドと
その結果を全て変数内に入れるようにしてるんだけど
この.expファイルを全てNet::Telnetを使ってwaitforとprintで対話式に書いたPerlのファイルに書き直したい。
expectを使った場合は[user@domain] #なども含めてプロンプトで表示される内容全てが
返ってくるけどそれと同じようにNet::Telnetを使った場合でもログインからログアウトまでの
プロンプトの表示内容全てが返ってくるようにしたいんだけど何か簡単な書き方はない?
waitforの部分全てを変数に入れてprintしても全てが出されるわけじゃないしどうしたらいいか分からない。
0770デフォルトの名無しさん
2007/09/26(水) 01:06:26ビジネスのアイデアあるのに自分でコーディングするのはもったいない。
コーディングの得意な人に任せてビジネスに専念すべし。
0771デフォルトの名無しさん
2007/09/26(水) 02:09:25Catalyst でも使ってみるといいかも。
0772デフォルトの名無しさん
2007/09/26(水) 02:16:46自分でコーディングできるのに
他人にまかせるのはカネがもったいない。
自分でアイデアを出して
自分でコーディングしたほうがいい
0773デフォルトの名無しさん
2007/09/26(水) 05:17:05100 枚くらい書けないとだめじゃね?
0774デフォルトの名無しさん
2007/09/26(水) 06:19:02本当に優れたアイデアなら金なんて後でいくらでも回収できる。
機会損失がある方が勿体ない。自分でなんでもやるのはプログラマに見られる悪傾向。
0775デフォルトの名無しさん
2007/09/26(水) 06:51:29この辺じゃダメですか。
http://search.cpan.org/search?query=Expect
0776デフォルトの名無しさん
2007/09/26(水) 14:30:06今、Linuxで文字コード変換用の為にnkfを入れるか既に入っているPerlで済ませるか迷っているのですが。
0777デフォルトの名無しさん
2007/09/26(水) 15:29:37こういう人って、なにかの精神病なの?
0778デフォルトの名無しさん
2007/09/26(水) 15:38:590779デフォルトの名無しさん
2007/09/26(水) 15:41:28「自分で調べるなんてのは下等人種のやること」ってやつだろ。
0780デフォルトの名無しさん
2007/09/26(水) 16:05:00piconvよりもPerlのEncodeで正規表現とパイプさせれば一気に改行も出来るんじゃねえの?
0781776
2007/09/26(水) 16:07:58あるのでしょうかないのでしょうか?
0782デフォルトの名無しさん
2007/09/26(水) 16:20:58なければ自分で書き換えたバッチファイル作ればいいんじゃない?piconvt参考にしてさ。
Encodeモジュール知ってれば大した作業じゃないっしょ。
>>777は何が言いたいんだろ。それに合いの手を入れる>>779も。おまいらマジで病んでる。
0783デフォルトの名無しさん
2007/09/26(水) 16:21:46piconvを読めよ
0784デフォルトの名無しさん
2007/09/26(水) 16:31:54perl -pe 'BEGIN{binmode STDIN,":encoding(sjis):crlf";binmode STDOUT,":encoding(euc-jp)"}'
みたいにやることはたまにある。
0785デフォルトの名無しさん
2007/09/26(水) 16:49:25>:crlf
こんなもんあったのか。知らんかったよ。
0786776
2007/09/26(水) 17:01:57レスありがとうございます。
>>784さんのやり方で改行の変換も出来そうですね。
Encodeのperldocは一通り読んだつもりでしたけど、
encogingは見落としていました。
改行指定出来たんですね、これはとても助かります。
nkfはわざわざ入れなくても済みそうです。
0787デフォルトの名無しさん
2007/09/26(水) 19:03:470788デフォルトの名無しさん
2007/09/26(水) 23:38:05Expect.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での出力を分けたりできないの?
0789デフォルトの名無しさん
2007/09/27(木) 00:01:15例があるじゃん。マニュアル嫁。
# 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 ],
);
0790デフォルトの名無しさん
2007/09/27(木) 00:29:54おー出来た出来た
ありがとう
0791デフォルトの名無しさん
2007/09/28(金) 17:06:02できません。端末で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>
0792デフォルトの名無しさん
2007/09/28(金) 17:15:270793デフォルトの名無しさん
2007/09/28(金) 17:17:380794デフォルトの名無しさん
2007/09/28(金) 20:05:17Webminでも入れた方が幸せになれそうだが。
CGI プログラムからは適当なトリガファイルを触るだけにして、
そのファイルを監視して変化があればアクションを起こす root 権限
持ちのスクリプトをデーモンなり cron なりで動かすのが、
こういう場合の常套手段の一つ。
0795デフォルトの名無しさん
2007/09/29(土) 01:36:29perint "長州力発進!!\n"; が妙に気に入った
0796デフォルトの名無しさん
2007/09/29(土) 08:20:440797デフォルトの名無しさん
2007/09/29(土) 13:46:410798デフォルトの名無しさん
2007/09/30(日) 02:54:22\n(0x0A)を含む任意の2文字を表すエレガントな書き方教えて下さい。
jpegファイルのブロックヘッダーからブロック長を取り出すのに
苦し紛れに/^\xff(.)([\x00-\xFF][\x00-\xFF])(.)/とか書いて
unpack ('n', $2)としてるんですが、どうにもばばっちくてorz
0799デフォルトの名無しさん
2007/09/30(日) 02:59:32/s修飾子
perlre読んどけ。
0800デフォルトの名無しさん
2007/09/30(日) 03:10:02/^\xFF(.)(..)(.)/s
0801デフォルトの名無しさん
2007/09/30(日) 04:31:090802791
2007/10/01(月) 18:24:23起動させることに決めました。ところで質問なんですが、/etc/sudoersの設定の中でroot ALL=(ALL) ALL以外
の他に書き込めばいいんですよね?例えば、sudoでroot権限を与えたいユーザーをebizouとした場合、設定の中にebizou ALL=(ALL) ALL
と書きむのであっているでしょうか?また、httpd.confにUser apache,Group apacheと書かれているのですがこれにも/etc/sudoersの設定
に書き込まなければいけないのでしょうか?長文すいません。よろしくお願いします。
0803デフォルトの名無しさん
2007/10/01(月) 19:53:050804デフォルトの名無しさん
2007/10/02(火) 01:27:05括弧を省略できるとか、サブルーチンの呼出の&が抜ける
とか、今までやって来たプログラミング言語の常識が
全く通用しないので、色々と戸惑っているのですが、
こういうものは、なれるもんなんですかね?
0805デフォルトの名無しさん
2007/10/02(火) 01:37:53省略できるものは省略しない
あとは自由に書け
0806デフォルトの名無しさん
2007/10/02(火) 02:27:30慣れないよ。
0807804
2007/10/02(火) 03:36:09自分で書く場合は、もちろんそうしてますし
use strictもしてます。
ですが、人のかいたコードを読む場合、その人の考えで書いてるんで
私の考えが通用しません。
0808デフォルトの名無しさん
2007/10/02(火) 04:22:38文字列があり、各文字に対応する数字があるとします。
例:
文字列:ABCA
A=4
B=5
C=6
この場合に文字に対応する数字の合計を出したい場合、
(文字列の数字の合計=4+5+6+4=19)どうすればいいでしょうか?
書く前は「簡単にできるだろう」と思っていたのですが
いざ書こうとしたらどうやって書いたらいいか思いつきませんでした。
0809デフォルトの名無しさん
2007/10/02(火) 04:37:54$num{'A'} = 4
と言うようにハッシュに対応する数値を入れて、文字毎に数値を取り出して計算する
0810デフォルトの名無しさん
2007/10/02(火) 07:33:390811デフォルトの名無しさん
2007/10/02(火) 07:41:29文法は一つしかないんだから、全部覚えればいいだけの話だよ。
頭固すぎ
0812デフォルトの名無しさん
2007/10/02(火) 08:36:41仕事が嫌なら、地面で穴を掘っている周辺で腕をくるくる回す簡単なお仕事に
転職すればよろし。
0813デフォルトの名無しさん
2007/10/02(火) 10:00:47> こういうものは、なれるもんなんですかね?
慣れるか否かという点にもっとも大きく関係するファクターは、あなたの知的能力。
0814デフォルトの名無しさん
2007/10/02(火) 12:09:28Python やらないか?
0815デフォルトの名無しさん
2007/10/02(火) 12:20:150816デフォルトの名無しさん
2007/10/02(火) 15:29:52向いてないんじゃないかな・・・
0817デフォルトの名無しさん
2007/10/02(火) 15:44:38お前はなれないだろう。
0818デフォルトの名無しさん
2007/10/02(火) 20:43:134が実体?
0819デフォルトの名無しさん
2007/10/02(火) 21:13:270820デフォルトの名無しさん
2007/10/02(火) 22:22:30でHTMLタグの属性を取得を試みたのですがうまくいかねぇっす。
後方参照の否定マッチってどうやってやるの?
0821デフォルトの名無しさん
2007/10/02(火) 23:52:120822デフォルトの名無しさん
2007/10/02(火) 23:57:40HTML::Parserとか使えば?
0823デフォルトの名無しさん
2007/10/03(水) 00:20:23質問の仕方が悪かったです。
HTMLの話は抜きで正規表現で後方参照で否定マッチする方法はありますか?
#Web::ScraperやHTML::Parser、HTML::TreeBuilderの使用の検討はしましたが
#タグにidやclassが振ってなくて構造体でのスクレイピングが行いにくいので正規表現でやってます。
0824デフォルトの名無しさん
2007/10/03(水) 00:26:48じゃあかんの?
0825デフォルトの名無しさん
2007/10/03(水) 00:33:48HTMLならそれでOKっすね。
ありがとうございます。
後方参照の否定マッチってできないもんですかね?
0826デフォルトの名無しさん
2007/10/03(水) 00:39:070827デフォルトの名無しさん
2007/10/03(水) 18:13:570828デフォルトの名無しさん
2007/10/03(水) 21:24:25どうすればいいんでしょうか?
例えばフォームからSJISの「あ」という文字を取ると「82A0」
という文字列が取れるんですが
これを16進数の数値として扱って10進数に変換ってどうやればいいんでしょう?
ord関数使うのが一般的でしょうか?
0829デフォルトの名無しさん
2007/10/03(水) 21:52:57http://mikeneko.creator.club.ne.jp/~lab/perl/numerical_transform/
0830デフォルトの名無しさん
2007/10/03(水) 21:59:01ありがとうございます
バイナリ→10進数の変換でいけるのかな?
やってみます
0831デフォルトの名無しさん
2007/10/03(水) 22:21:22できませんでした…orz
そもそもポストで取ってるので
文字コードが文字列で入ってる状態です
「あ」で「%82%A0」です
この「%82%A0」を数値に変換したいんですが
どうすればいいんでしょ?
例えばCならintで宣言した変数にぶっこんだら勝手に数値として扱ってくれますが
perlだとどうすればいいのやら…
ためしに「%82%A0」+「%82%A0」みたいなことすると「%82%A0」は数字の1として扱われてるよう
「あ」でも「い」でも同じ数値の1
0832デフォルトの名無しさん
2007/10/03(水) 22:36:44$hoge="「%82%A0";
$hoge10=~ s/%//g;
$hoge100 = hex($hoge10);
%がよけいでした、これ抜いたら普通に16進数として扱ってくれました
0833デフォルトの名無しさん
2007/10/03(水) 23:07:110834デフォルトの名無しさん
2007/10/04(木) 01:07:590835デフォルトの名無しさん
2007/10/04(木) 08:09:09後方参照の否定マッチってできないもんですかね?
0836デフォルトの名無しさん
2007/10/04(木) 17:21:08Postgres のテーブル内に update という名のカラムがあるとまずいのでしょうか?
Column 'update' in My::Class::Hoge clashes with built-in method at 〜
カラム名を変えないとだめですか?
0837デフォルトの名無しさん
2007/10/04(木) 18:11:57カラム名変えてやってみろよクソが
0838デフォルトの名無しさん
2007/10/05(金) 09:38:35> Column 'update' in My::Class::Hoge clashes with built-in method at 〜
>
> カラム名を変えないとだめですか?
Class::DBI の _make_method から出てるエラーですね。
update メソッドなのか、カラム名から生成されたアクセサなのかわからなくなるので、
カラム名変えるべきなのかも。
0839デフォルトの名無しさん
2007/10/05(金) 16:27:46自分で気づいているなら、なぜ自分で試さない?
このスレの住人に試させてオイシイとこだけ持ていくつもりか?
0840デフォルトの名無しさん
2007/10/05(金) 16:45:17知っていたら教えていただけないでしょうか
例えばRGBの赤(ff0000)があるかどうか判断するような関数がないものでしょうか
0841デフォルトの名無しさん
2007/10/05(金) 16:51:380842デフォルトの名無しさん
2007/10/05(金) 16:54:06見つかった場合にその値が4バイト境界にまたがっていなければ (4の倍数で割れる位置にあれば) 指定色の発見
で良いかと思います。
パレットつきならパレットに対してサーチすりゃいいだけなので、その画像がフルカラーなのかパレット付きなのか
チェックするのが最初の手順ってことですかね
0844836
2007/10/05(金) 17:39:07既存のプログラムに影響があるので、できれば Postgres のテーブルの変更は
避けたかったのですが、やむを得ないようですね。
ご回答ありがとうございました。
0845デフォルトの名無しさん
2007/10/05(金) 18:18:090846デフォルトの名無しさん
2007/10/05(金) 20:21:07自作自演かっこ悪い
0847デフォルトの名無しさん
2007/10/05(金) 20:30:040848デフォルトの名無しさん
2007/10/05(金) 20:36:250849デフォルトの名無しさん
2007/10/05(金) 21:26:120850デフォルトの名無しさん
2007/10/05(金) 21:34:500851デフォルトの名無しさん
2007/10/05(金) 22:58:37http://search.cpan.org/~tmtm/Class-DBI-v3.0.17/lib/Class/DBI.pm#Changing_Your_Column_Accessor_Method_Names
0852デフォルトの名無しさん
2007/10/05(金) 23:03:49変な文字列が詰め込まれて帰ってくるんだけど
うちだけ?じかに値渡すとなんとも無いのだが。
0853デフォルトの名無しさん
2007/10/05(金) 23:10:20my $str = '';
ってやってるのと
my $str;
は中身違うよ
0854デフォルトの名無しさん
2007/10/05(金) 23:39:58もしかしたら途中でundef帰ってたかもしれない
ありがとう
0855デフォルトの名無しさん
2007/10/06(土) 00:03:18$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が
*******ファイルに保存される。
(************は例で実際にはこうは書いていないです)
0856デフォルトの名無しさん
2007/10/06(土) 00:11:13デバッグしろよ。
0857デフォルトの名無しさん
2007/10/06(土) 00:20:180858デフォルトの名無しさん
2007/10/06(土) 00:26:24gold じゃなくて silver に変えればいけると思います
…って書くと本当にやりそうだなこの人
0859デフォルトの名無しさん
2007/10/06(土) 07:51:530860デフォルトの名無しさん
2007/10/06(土) 08:46:02今では毎晩女の子とエッチな夜を過ごしています。
0862デフォルトの名無しさん
2007/10/06(土) 10:34:39こんなのカンタン。1行目に
$bankgold = 50000;
って書いてごらんよ。
>(※ここでは$bankgoldに50000が代入されているとする)
どこにも代入してないじゃん。
0863デフォルトの名無しさん
2007/10/06(土) 12:39:48ほっほんとうですか!?
親切にありがとうございます!!!
これでいいか?
>>862
ここでは代入してないけど、別ファイルで代入してるから、
一応、50000になっていると考えてくれ。
0864デフォルトの名無しさん
2007/10/06(土) 12:59:460865デフォルトの名無しさん
2007/10/06(土) 13:51:050866デフォルトの名無しさん
2007/10/06(土) 13:52:130867デフォルトの名無しさん
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);
}
0868デフォルトの名無しさん
2007/10/06(土) 13:54:43だがuse warningsもほしい。
0869デフォルトの名無しさん
2007/10/06(土) 14:06:560870デフォルトの名無しさん
2007/10/06(土) 19:42:2816bitの秘密鍵はどうやって作ればいいんだ?
だいたい、bitがどのくらいなのかもよく分からん俺なんだけど。
0871デフォルトの名無しさん
2007/10/06(土) 19:47:400872デフォルトの名無しさん
2007/10/06(土) 19:49:06ああ、ゴメン そう16byte
どうやって作るの?
0873デフォルトの名無しさん
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.
0874デフォルトの名無しさん
2007/10/06(土) 20:02:300875デフォルトの名無しさん
2007/10/06(土) 20:10:190876デフォルトの名無しさん
2007/10/06(土) 20:30:20kwsk please
0877デフォルトの名無しさん
2007/10/06(土) 20:33:26my $key = '';
for(my $i = 0; $i++; $i < 16){
$key .= pack("C", rand(256));
}
0878デフォルトの名無しさん
2007/10/06(土) 20:36:15if (open my $fh, '<', '/dev/urandom') { read($fh, $key, 16); }
0879デフォルトの名無しさん
2007/10/06(土) 21:12:25thx
どっちも、それぞれ書いて、$keyだけprintしてみたんだけど
877のは、何にもprintされなくて、878のは、文字化けっぽい(?とかが入ってる)のがprintされたよ・・・
どうしたら良いのか
0880デフォルトの名無しさん
2007/10/06(土) 21:21:20> どうしたら良いのか
勉強する。それしかない。
0881デフォルトの名無しさん
2007/10/06(土) 21:32:5216bytesがどんなものかだけ、教えてくれないか
0882デフォルトの名無しさん
2007/10/06(土) 21:39:010883デフォルトの名無しさん
2007/10/06(土) 21:48:080884デフォルトの名無しさん
2007/10/06(土) 21:55:37君の最後の一文「教えてくれないか」 が16bytesだ。さては狙ったな
0885デフォルトの名無しさん
2007/10/06(土) 22:09:50で、そうすると今度は
Error: block size must be 16 bytes.
ってエラーが・・・
0886デフォルトの名無しさん
2007/10/06(土) 22:12:590887デフォルトの名無しさん
2007/10/06(土) 23:03:400888デフォルトの名無しさん
2007/10/06(土) 23:08:52$plaintext = "A" x 0x10;
にしたらエラー出んだろ。
0889デフォルトの名無しさん
2007/10/07(日) 13:00:160890デフォルトの名無しさん
2007/10/07(日) 13:01:22なるほど、アルファベット16文字ならOKだな
んでも、これで、利用価値あるんだかどうなんだか
0891デフォルトの名無しさん
2007/10/07(日) 13:25:35/ニYニヽ
(ヽ /( ゚ )( ゚ )ヽ /)
(((i ) /::::⌒`´⌒::::\ ( i))) でっていうwwwwwwww
/∠_| ,-)___(-, |_ゝ \
( ___、 |-┬-| ,__ )
| `ー'´ /´
| /
0892デフォルトの名無しさん
2007/10/07(日) 13:28:13WebProgのPerlスレに統合しちゃった方がいいと思うよ。
0893デフォルトの名無しさん
2007/10/07(日) 13:33:020894デフォルトの名無しさん
2007/10/07(日) 14:03:06回答者も、どうでもいいことで揚げ足取ってたり
問題解決にも何にもなってない返答して得意になってる奴の返答が多かったりで
昔と比べるとかなり程度が低くなってるのは否めないな、
というのがROMってる俺の感想。
0895デフォルトの名無しさん
2007/10/07(日) 14:23:490896デフォルトの名無しさん
2007/10/07(日) 14:37:250897デフォルトの名無しさん
2007/10/07(日) 14:42:000898デフォルトの名無しさん
2007/10/07(日) 14:53:19あなたの知性を貸してください
0899デフォルトの名無しさん
2007/10/07(日) 15:27:16質問者が多過ぎるのが問題。
0900デフォルトの名無しさん
2007/10/07(日) 16:59:59【Perl上級者コーナーPart01】
http://pc11.2ch.net/test/read.cgi/php/1024741312/l50
0901デフォルトの名無しさん
2007/10/07(日) 18:40:010902デフォルトの名無しさん
2007/10/07(日) 20:17:10Gmailのfeedの認証はBASICだとダメなの?
LWP::UserAgentで、BASIC認証してみたけどエラーが返ってきた。
0903デフォルトの名無しさん
2007/10/08(月) 00:17:150904デフォルトの名無しさん
2007/10/08(月) 01:28:480905デフォルトの名無しさん
2007/10/08(月) 01:46:410906デフォルトの名無しさん
2007/10/08(月) 05:23:45裸の王様がいっぱい居そうなスレだなww
0907デフォルトの名無しさん
2007/10/08(月) 06:26:430908デフォルトの名無しさん
2007/10/08(月) 07:44:100909デフォルトの名無しさん
2007/10/08(月) 11:24:030910デフォルトの名無しさん
2007/10/08(月) 11:43:300911デフォルトの名無しさん
2007/10/08(月) 21:01:290912デフォルトの名無しさん
2007/10/08(月) 21:07:10/;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;ヽ.
/;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;ヽ.
/;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ.
i;:;:;:;:;:/ノ-'-''~ヽ;:;:;ヽ'''-ヽ、;:;:;:;:;|
{;:;:;:;:ノ■■■ ■■■ヽ;:;:;}
ヽ;:;{ _ _ |;:;:{
};:;|三/ ●),. 、(● ヽ三 |〈
ヽ| ~ ゙='~/:::ヾ='~゙ | }
{ |∫ ∴ (,.、::,. ) ∵ |/
ゝ::●. ...:人:人:::..... ...!
{;;ヽ:.:.:.:.:.:.:.<Ξ>:.::.:.:.:.:.:.:/;} <perl と CGI の区別がつかないヤツ必死だな
/ ヽ:.:.:.:.::.:.:.:.:.:.:.:.:.:.:/ \
/ |ヽ:.:.:.:.:.:.:.:.:.:/| \
ヽ ̄ ̄ ̄ /
ヽ___/
0913デフォルトの名無しさん
2007/10/08(月) 23:04:06JavaやRubyはC/C++から呼び出すことができますが、Perlも
できればいいなと思いまして。
0914デフォルトの名無しさん
2007/10/08(月) 23:34:01http://search.cpan.org/~nwclark/perl-5.8.8/pod/perlcall.pod
0915デフォルトの名無しさん
2007/10/08(月) 23:58:02thx
今夜は眠れ無そうw
0916デフォルトの名無しさん
2007/10/09(火) 14:31:24Windows でActivePerl を使っているなら、PerlEzを使う.
0917デフォルトの名無しさん
2007/10/10(水) 04:15:33どういうコードをすればいいでしょうか?
perlcall prlembedのドキュメントではとくにモジュールやサブルーチンの場所を記述していない?ようでしたが、
libフォルダのどこのモジュールを使う、というふうに指定するのはどうするのでしょう?
0918デフォルトの名無しさん
2007/10/10(水) 15:04:43スレタイ100回読んでこい
0919デフォルトの名無しさん
2007/10/10(水) 16:22:07www.yahoo.co.jp:[0], 84 bytes, 18.1 ms (18.1 avg, 0% loss)の始めの18.1だけ抜き出したいです。
substrコマンドを使ったんですが、これだとURLの数がかわると変なところを抜き出してしまいます。
例えばbytes,より前を切り取り、ms ( も切り取る方法ってありますか?
0920デフォルトの名無しさん
2007/10/10(水) 16:24:05正規表現
0921デフォルトの名無しさん
2007/10/10(水) 17:00:33ありがとうございます!
やってみます!
0922デフォルトの名無しさん
2007/10/10(水) 17:07:15OSは何使ってんの?WindowsのActive Perl なら、簡単にできるけど、
UNIXはいじったことないから知らん。
0923デフォルトの名無しさん
2007/10/10(水) 19:28:290925デフォルトの名無しさん
2007/10/11(木) 11:01:34やっぱりそうか。あのね、他人のアドバイスをないがしろにしていると、
誰にも相手をしてもらえなくなるよ。
>Windows でActivePerl を使っているなら、PerlEzを使う.
と>>916 で言われたなら、PerlEzのドキュメントぐらい読んでみたらどうなのさ。
次の質問は、それからだ。
0926デフォルトの名無しさん
2007/10/11(木) 13:00:230927デフォルトの名無しさん
2007/10/11(木) 20:22:10超初心者なんですけど、100から300までの整数で、素数じゃないならその数字を、素数なら数字の代わりにPrimeと表示したいんですけど全然わからないんで教えてください
0928デフォルトの名無しさん
2007/10/11(木) 20:26:000929デフォルトの名無しさん
2007/10/11(木) 20:35:580930デフォルトの名無しさん
2007/10/11(木) 20:48:32Perlの宿題スレがなかったもんでレスしました
0931デフォルトの名無しさん
2007/10/11(木) 20:54:30それをそのままコードにしろよ
0932デフォルトの名無しさん
2007/10/11(木) 21:00:250933デフォルトの名無しさん
2007/10/11(木) 21:13:07いいじゃん。2重ループで終了
0934デフォルトの名無しさん
2007/10/11(木) 21:37:560935デフォルトの名無しさん
2007/10/11(木) 21:54:55>>932
これで大丈夫だぞ。
$,=" ";
print grep{ (1 x $_) =~ /^(11+)\1+$/ or $_ = "Prime"} (100..300);
0936デフォルトの名無しさん
2007/10/11(木) 23:03:13ありがとうございました!
0937デフォルトの名無しさん
2007/10/11(木) 23:47:060938デフォルトの名無しさん
2007/10/11(木) 23:59:340939デフォルトの名無しさん
2007/10/12(金) 00:49:140940デフォルトの名無しさん
2007/10/12(金) 01:01:160941デフォルトの名無しさん
2007/10/12(金) 01:07:560942デフォルトの名無しさん
2007/10/12(金) 01:09:190943デフォルトの名無しさん
2007/10/12(金) 01:17:55誰か解説して
0944デフォルトの名無しさん
2007/10/12(金) 02:47:130945デフォルトの名無しさん
2007/10/12(金) 02:50:50e.g. $_ == 9 なら '111111111'
2. その文字列と同じ長さの文字列を、「ある長さの文字列」を
繰り返すだけで作れるか = 割り切れるかどうか調べる。
e.g. '111111111' =~ /^(11+)\1+$/ は
(11+) が '111' に、\1+ が '111''111' にマッチした時点で真
3. 割り切れなければ (マッチ演算子が偽を返せば) 素数なので
$_ に 'Prime' を代入
「抽出」や「除外」ではなく「変換」という行為が求められている場面で
grep を使ったり、ブロック中で $_ を変更している辺りは「黒」だと思う。
0946デフォルトの名無しさん
2007/10/12(金) 07:08:140947デフォルトの名無しさん
2007/10/12(金) 11:24:570948デフォルトの名無しさん
2007/10/12(金) 11:43:02use Safe意外に何か良い方法あるでしょうか?
0949デフォルトの名無しさん
2007/10/12(金) 11:44:44意外→以外
0950デフォルトの名無しさん
2007/10/12(金) 13:23:22セキュリティを重視するなら、共有レンタルサーバと同じ方法をとることも考えられる。
具体的にどうすればいいのかはWeb板で。
0951デフォルトの名無しさん
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/
0952デフォルトの名無しさん
2007/10/12(金) 22:59:210953デフォルトの名無しさん
2007/10/13(土) 00:46:33バッチファイルからwperl実行すると
wperl以降のバッチファイルの行が
実行されないのですが
どうすれば回避できるでしょうか
0954デフォルトの名無しさん
2007/10/13(土) 13:49:19start wperl......
0955デフォルトの名無しさん
2007/10/13(土) 13:55:07さてはバッチコマンドに call があるの知らないな?
0956デフォルトの名無しさん
2007/10/13(土) 18:07:13すいません、DOSコマンドは並べ立てる程度しか分からないのでorz
当てずっぽうにcmdとか試してみたのですがうまくいかなくて、
無理やりperl側からcmdプロセスを潰してました・・
これでバッチファイルだけできれいにできそうです。ありがとー
0957デフォルトの名無しさん
2007/10/14(日) 00:00:55すべての要素に初期値として1を入れたいのですが
一番簡単な(できれば早い)コードはどういうのでしょう?
$a[$_] = 1 for (0..99);
↑これだと遅いですよね?
0958デフォルトの名無しさん
2007/10/14(日) 00:08:110959デフォルトの名無しさん
2007/10/14(日) 00:28:350960デフォルトの名無しさん
2007/10/14(日) 00:33:500961デフォルトの名無しさん
2007/10/14(日) 18:59:57$ 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)
0962デフォルトの名無しさん
2007/10/14(日) 20:43:38あたまたりてる?
0963デフォルトの名無しさん
2007/10/14(日) 21:02:500964デフォルトの名無しさん
2007/10/14(日) 23:47:40追試。
#!/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)
0965デフォルトの名無しさん
2007/10/15(月) 00:00:530966デフォルトの名無しさん
2007/10/15(月) 00:50:19追試ありがとうございます
Map2とMap4は、自分の環境で試してみると
それでも1.5倍ほどの差がありました
ブロックの有無だけで何故これだけの差がでるのか不思議ですね
0967デフォルトの名無しさん
2007/10/15(月) 13:12:32HTML版みたいなのってありますか?
HTML::Parserを中心にCPANを色々
探したのですが分からず…もしかして
HTMLは厳格な構造ではないので、
そういうのは無理なのでしょうか?
0968デフォルトの名無しさん
2007/10/15(月) 14:23:50ようはデータの構造体に変換したいってことよね?
HTML::TreeBuilderじゃだめ?
0969デフォルトの名無しさん
2007/10/15(月) 14:56:48それのソースを眺めてみるのも手かもしれない
0970デフォルトの名無しさん
2007/10/15(月) 15:13:05ありがとうございます。HTML::TreeBuilderを見て、
HTML::Elementの関数を調べてみたのですが
XMLinみたいに綺麗なリファレンスを返してくれる
関数は自分では見つけられませんでした(英語も読めません)
お手数をお掛けしますが関数名等を教えて頂けると助かります。
>>969
ちょっとこの量のソースを読むには
気が滅入ります…すみません
0971デフォルトの名無しさん
2007/10/15(月) 15:38:54もうちょい頑張れよwww
0972デフォルトの名無しさん
2007/10/15(月) 15:57:080973デフォルトの名無しさん
2007/10/15(月) 17:01:58$k = 0; ← こっちが前?
for ($i = 0; $i < 10; $i++) {
$k += $i;
}
print "こたえ=", $k, "\n"; ← こっちが前?
0974デフォルトの名無しさん
2007/10/15(月) 17:06:39↑ 後方 backward
$k = 0;
for ($i = 0; $i < 10; $i++) {
$k += $i;
}
print "こたえ=", $k, "\n";
↓ 前方 forward
0975デフォルトの名無しさん
2007/10/15(月) 17:10:52とか言ってみるテスト
0976デフォルトの名無しさん
2007/10/15(月) 17:51:340977デフォルトの名無しさん
2007/10/15(月) 19:11:54> プログラムの「前」ってどっちですか?
↑
前
後
↓
0978デフォルトの名無しさん
2007/10/15(月) 19:35:050979デフォルトの名無しさん
2007/10/15(月) 19:43:55前方参照ってどっち?
後方参照ってどっち?
0980デフォルトの名無しさん
2007/10/15(月) 20:02:21まだなんかあるだろ? それデータかなんか絡んでねーか?
0981デフォルトの名無しさん
2007/10/15(月) 20:15:29で、「前ってどっち?」と聞き返したら、
「そんな事も分からないのか?前は前だろが。分からなかったら小学校からやりなおしてこい」
・・・と怒られちゃいました。もう涙目デスorz
でもほんとうに分からないんです。前ってどっちなのか。
人間の「前」ならわかります。顔があるほうですよね?
Q「人間の「前」ってどっちですか?」 A「小出しにせずに全部書いてくれ!」
フツー、そんな会話は無いですよね。前は前だから。決まってるもん。
プログラムの「前」は決まっていないんですか?
0982デフォルトの名無しさん
2007/10/15(月) 20:21:250983デフォルトの名無しさん
2007/10/15(月) 20:24:30コンパイラは上から下へ読み勧めるから、
前方参照の前方はソースコードの下方向。
0984デフォルトの名無しさん
2007/10/15(月) 20:26:130985デフォルトの名無しさん
2007/10/15(月) 20:28:57うんこが出る穴のほうが後
0986デフォルトの名無しさん
2007/10/15(月) 20:30:27まえとあと 時間経過なので進行方向の逆がまえ
ソースの前を見ろとか言う場合は時間経過のほうだね普通
まだ通過してない部分が時間をさかのぼって手前に影響することはありえない
ていうかおれ釣られた?w
0987デフォルトの名無しさん
2007/10/15(月) 20:36:250988デフォルトの名無しさん
2007/10/15(月) 20:40:38気にせずソース全部見れば?
つーか「前は前だろうが」なんて答える上司もバカだな
普通に教えれりゃいいのに
0989デフォルトの名無しさん
2007/10/15(月) 20:42:54そんな事も分からないのか?前は前だろが。
0990デフォルトの名無しさん
2007/10/15(月) 20:45:120991デフォルトの名無しさん
2007/10/15(月) 21:10:000992デフォルトの名無しさん
2007/10/15(月) 21:13:120993デフォルトの名無しさん
2007/10/15(月) 21:14:36「あたま-しっぽ」「上-下」と呼称したりする。
0994デフォルトの名無しさん
2007/10/15(月) 21:14:39横書きの本をオマエは後ろ (下) から読むのか?
おまえ小学生からやり直せって
0995デフォルトの名無しさん
2007/10/15(月) 21:17:020996デフォルトの名無しさん
2007/10/15(月) 21:22:19モジュール
だよな
0997デフォルトの名無しさん
2007/10/15(月) 21:43:460998デフォルトの名無しさん
2007/10/15(月) 22:02:180999デフォルトの名無しさん
2007/10/15(月) 22:19:321000デフォルトの名無しさん
2007/10/15(月) 22:37:2910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。