Perlについての質問箱 28箱目
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2006/10/31(火) 14:52:21"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
http://www.perl.org/get.html
● 2006/10/31現在の最新版: 5.8.8
● 2006/10/31現在の開発版: 5.9.3
前スレ
Perlについての質問箱 27箱目
http://pc8.2ch.net/test/read.cgi/tech/1157874614/
リンク集は>>2-3
過去スレは>>4
0809デフォルトの名無しさん
2006/12/14(木) 22:16:350811デフォルトの名無しさん
2006/12/14(木) 22:25:47知らないで配列扱うとは・・・
0812デフォルトの名無しさん
2006/12/14(木) 22:51:010813デフォルトの名無しさん
2006/12/14(木) 23:06:09そんな余計なこと教えるなよ
0814デフォルトの名無しさん
2006/12/14(木) 23:30:23こんなんでわかるか?
print "$mon[0]\n";
print "$mon[1]\n";
print "$mon[2]\n";
print "$mon[9]\n";
0815デフォルトの名無しさん
2006/12/15(金) 09:39:41Devel::Sizeモジュールをインストールせず、同様のことは可能でしょうか?
自由にモジュールインストールできない環境なので、何か方法あれば教えてください
0816デフォルトの名無しさん
2006/12/15(金) 09:54:12内部APIを使わないなら無理。B::*使えば出来るかも知れんが、無謀だな。
そもそも何故メモリサイズを知ることが必要?
0817デフォルトの名無しさん
2006/12/15(金) 10:19:16簡単に言うと仕事で頼まれたからw
私もあまり意味はないと思うんですが、動作が遅いプログラムがあってその調査の一環
プログラム内部で、階層構造のリファレンスハッシュで画面出力用にデータを編集しているところが
かなりメモリを食ってるみたいで、具体的にどれくらいか調べたいと思いました
psで確認するとプログラムの使用メモリが多いけど、遅い原因はDBアクセス等の効率が悪いだけだと思ってます
Devel::Sizeを使用しないと非常に難しいと言うことはわかりました
ありがとうございます
0818デフォルトの名無しさん
2006/12/15(金) 10:22:55プログラム速度の測定なら、メモリ消費量を調べるよりDevel::DprofやDevel::Profile(標準じゃないがPurePerlだから使うのは簡単)で調べた方がいいと思うが。
0819デフォルトの名無しさん
2006/12/15(金) 10:40:46スクリプトが原因でスラッシングしているなら遅くはなるだろうけど
スラッシングしていないなら、メモリ使用量と動作が遅いはあんまり関係ないでしょ。
#少ないには越したことないけど;p
psはtelnetかsshでログインして確認したのですか?
サーバ上でシェルが使えるならコンパイラ使えればroot権限なくても
モジュールをコンパイルして使えますよ。
Devel::DprofやDevel::ProfileでプロファイルをとるかBenchmark, Time::HiResを使って
ボトルネックを探すほうがいいと重いますよ。
0820デフォルトの名無しさん
2006/12/15(金) 21:27:34かかる手間を考えると趣味専用になるが、移植性を無視すれば可能。
・リファレンスを文字列評価すればスカラーヘッダ構造体のアドレスがわかる
・unpackのPは特定アドレスからメモリの中身を読み出す事ができる
からね。
これ(PurePerlによる変数dumper)を書く事でPerlの変数に対する理解はすすむので、
話のネタとしては面白いかもしれない。
0821デフォルトの名無しさん
2006/12/16(土) 08:57:16こりゃおもしろいなあ。何か他に使い途ないかな?
0822デフォルトの名無しさん
2006/12/16(土) 09:46:46デバッグログに使用したいと思っております。
0823デフォルトの名無しさん
2006/12/16(土) 10:36:21宛先が自分のIP以外のUDPパケットを受信したいのですが、どうすれば良いのでしょうか
もしモジュールを使用する場合は標準モジュールの範囲内でお願いします
0824デフォルトの名無しさん
2006/12/16(土) 10:53:200825デフォルトの名無しさん
2006/12/16(土) 10:54:14アドレス欲しいなら数値評価のほうがよくね?
0826822
2006/12/16(土) 15:25:28__LINE__
__FILE__
__PACKAGE__
__END__
__DATA__
__FUNC__は無い認識でよろしいでしょうかorz
0827デフォルトの名無しさん
2006/12/16(土) 16:13:58なければ書いたらいいじゃない。
0828デフォルトの名無しさん
2006/12/16(土) 22:20:08Flashからcgiへ変数$nameを渡す実験をしているのですが、$nameを日本語にすると
すべて文字化けしてしまいます。手元にある入門書を参照したところ、jcode.plを使えばよいとあったので、
require 'cgi-lib.pl';
require 'jcode.pl';
&ReadParse(*name);
&jcode::convert(*name,'sjis');
print "$name";
としたのですが、まだ文字化けします。sjisにしてもeucにしても同じ結果です。
どうすればよいでしょうか。jcode.plが存在するディレクトリは確認しました。
0829デフォルトの名無しさん
2006/12/16(土) 22:37:14>>1 を読んで、WebProg板へどうぞ。
ちなみに cgi-lib.pl も jcode.pl も、もう古いです。入門書を変えましょう。
0830820
2006/12/16(土) 22:39:08何となく、数値評価だとdoubleとかintが面倒な気がして文字列から。
現行の5.8.8あたりならまだしも5.6とかになると、ちょっと迷わない?
(一応 5.6.0でも pack('I',$ref) だとdouble評価を経由しないけど)
0831デフォルトの名無しさん
2006/12/17(日) 04:18:030832デフォルトの名無しさん
2006/12/17(日) 17:21:310833デフォルトの名無しさん
2006/12/18(月) 00:49:22caller()
0834デフォルトの名無しさん
2006/12/18(月) 02:42:35これで表示を
222
とするにはどうすればいいでしょうか?
0835デフォルトの名無しさん
2006/12/18(月) 02:59:58ちゃんと基準を日本語で言ってくれないと意味違うの答えが複数ある。
文字列の一番最後なのか三番目なのか。$1に入れないといけないのか取り出せればいいのか。
とりあえずそのデータに対して動けばいいなら/(\d{3})$/とでもしとけ
0836デフォルトの名無しさん
2006/12/18(月) 03:25:33最後のものにマッチさせて、それを取り出したいってことです。
0837デフォルトの名無しさん
2006/12/18(月) 03:27:13こういう動作を一度にやりたいです。
0838デフォルトの名無しさん
2006/12/18(月) 03:50:580839デフォルトの名無しさん
2006/12/18(月) 08:19:06perl -le 'print + ( split /aaa/, "000aaa111aaa222")[0] '
perl -le 'print + ( "000aaa111aaa222" =~ /(\d{3})/ )'
perl -le 'print + ( unpack "A3", "000aaa111aaa222" ) '
perl -le 'print + ( substr "000aaa111aaa222" , 0, 3 )'
0840デフォルトの名無しさん
2006/12/18(月) 09:37:48つ perldoc -f pop
0841デフォルトの名無しさん
2006/12/18(月) 11:14:25例えば変換対象の内容をリストファイルと照らし合わせ
リストファイルの内容と一致した場合にファイルへ出力るすには
どうしたら良いでしょうか?
例えばリストファイルが
aaa
bbb
ccc
として、変換対象のファイルが
aaa test1
abc test2
bbb test3
だった場合は
aaa test1とbbb test3の抽出をしたいです。
openや関数を使ってみたけどうまくいかないので誰か教えてください。
0842デフォルトの名無しさん
2006/12/18(月) 11:34:56対象を1行ずつsplitして
0番目が連想配列に存在したら吐き出す
0843デフォルトの名無しさん
2006/12/18(月) 12:02:34>>837 訂正だ。
perl -le 'print + ( split /aaa/, "000aaa111aaa222")[-1] '
perl -le 'print + ( "000aaa111aaa222" =~ /.*(\d{3})$/ )'
perl -le 'print + ( unpack "A3" x 5, "000aaa111aaa222" )[-1] '
perl -le 'print + ( unpack "@*X3A3", "000aaa111aaa222" ) '
perl -le 'print + ( substr "000aaa111aaa222" , -3 )'
0844デフォルトの名無しさん
2006/12/18(月) 12:19:13func + (123) で func の返り値と123を加算してるのか、それとも func を 123 で呼び出してるのか
一瞬迷うのは僕だけですか><
0845デフォルトの名無しさん
2006/12/18(月) 13:51:07HTMLファイルからフォームで送られたデータを表示させるCGIです
require './cgi-lib.pl';
&ReadParse;
print <<'EOD1';
Content-type:text/html
<html>〜省略〜<table border=1>
EOD1
print "<tr><td>会社/自宅</td><td>$in{'addr'}</td></tr>\n";
〜FORMからのデータ表示繰り返し〜
print "<tr><td>メール配信</td><td>$in{'mailreq'}</td></tr>\n";
print <<'EOD2'; ←19行目。ここでエラーが出てる
</table><form action="register.cgi"><input type=submit value="登 録"></form></center></body></html>
EOD2
二回目の「print <<」を止めてprint文にすると上手くいくのですが、「print <<」が二回使えないという記述がないですし
参考書が間違ってるということにもなります。 すいませんが何が駄目なのか教えて頂けないでしょうか
0846デフォルトの名無しさん
2006/12/18(月) 13:53:41とりあえずエラー文を見せるんだ
0847デフォルトの名無しさん
2006/12/18(月) 14:01:57「絶対できる!自宅PCでCGIの実行環境を構築」というHPを参考に自分のPCでCGIを試せる様にしてます
でコマンドプロンプトで実行してみると下記のエラー文がでます。翻訳サイトで見ても意味が分りませんでした
D:\cgi>perl entry.cgi
Can't find string terminator "EOD2" anywhere before EOF at entry.cgi line 19.
0848デフォルトの名無しさん
2006/12/18(月) 14:04:310849デフォルトの名無しさん
2006/12/18(月) 14:10:27実際は全部に改行を入れています。問題の部分を正確にせずすいませんでした
print <<'EOD2';
</table>
<form action="register.cgi">
<input type=submit value="登 録">
</form>
</center>
</body>
</html>
EOD2
0850デフォルトの名無しさん
2006/12/18(月) 14:17:35あ、わかりました。識別子のことをよく理解してなかったみたいです
EOD2の後に改行を入れろ ということですね
ありがとうございます
0851デフォルトの名無しさん
2006/12/18(月) 16:51:46undef $1;としてみたんですが動きません……
0852デフォルトの名無しさん
2006/12/18(月) 16:57:080853デフォルトの名無しさん
2006/12/18(月) 17:00:25できれば質問に質問を返すのは控えてください。
0854デフォルトの名無しさん
2006/12/18(月) 17:04:090855デフォルトの名無しさん
2006/12/18(月) 17:06:05おまえには出来ない。
終了。
0856デフォルトの名無しさん
2006/12/18(月) 17:11:46どんな脳みそしてんだかさっぱりわかんねw
0857デフォルトの名無しさん
2006/12/18(月) 17:16:41人の属性について訊いているのではなく、Perlのできる・できないを訊いているのです。
もしかして、回答する知識がないのにしゃしゃり出ているのですか?
0858デフォルトの名無しさん
2006/12/18(月) 17:19:32同意ですね。
質問に質問を返す意味がさっぱりわかりません。
そして、その当然の「おかしさ」を指摘されてヒスを起こすのも更にわかりませんよね。
(回答者は理不尽に振る舞ってもいい、その理不尽を質問者は指摘せず享受せよ、
とでも勘違いしているのかもしれませんね。
でも回答者ですらないのですから、その発想は二重にナンセンスというべきでしょう)
0859デフォルトの名無しさん
2006/12/18(月) 17:24:27頭悪すぎるみたいだから説明してやる
>>856はおまえに言ってんだよ
質問する=教えを請う
質問者が理不尽なのに答える義理は無い
しね でおk?
0860デフォルトの名無しさん
2006/12/18(月) 17:31:07> >>856はおまえに言ってんだよ
でしょうねえ。
(それがわかっているから、色々と言葉を乗っけて
「それに該当するのはあっちだよ」と教えてあげているわけです)。
> 質問者が理不尽なのに
まったく理不尽ではないですね。どう理不尽だと思い込んでいるのでしょうか?
質問に質問を返してきた人間に「質問に質問を返されては困る」旨を伝えたことですか?
でも、質問に質問を返してきた人間は「回答者」ではないですから、
「質問者として回答者にどういう態度をとるべきか」というテーマで仮にあなたが
粘着したいのだとしても、>>852と>>853の関係にはまったく当てはまっていません。
なぜならこの2つのレスは、質問者と回答者の関係ではないからです。
0861デフォルトの名無しさん
2006/12/18(月) 17:38:110862デフォルトの名無しさん
2006/12/18(月) 17:40:25今回はちょっと時間があったので、どこがイタイのか丁寧に教えてあげましたが、
こんなことをする義理は無いですからねえ。
0863デフォルトの名無しさん
2006/12/18(月) 17:42:12さようなら。
0864デフォルトの名無しさん
2006/12/18(月) 17:42:46最初に答えた人も、$1を削除する以外の方法を提案するためだろうし
機能についてききたいだけならperldocで十分だし。
0865デフォルトの名無しさん
2006/12/18(月) 17:43:40質問者の態度ばかり注文つけるのはおかしいようです。次から気をつけて下さい。
0866デフォルトの名無しさん
2006/12/18(月) 17:49:44一連の「回答者でもないのに質問者に尊大な態度を取る人」がそんな感じですね。
回答するだけなら「できる・できない」で十分なのに、
その何倍もの文章を何のために書きに来たのかが「わからんなぁ」です。
答を知らない人=回答者になりようもない人、が、あたかも回答者候補であるかのように
装って「ただ尊大な態度を取りにきた」なら納得ですが。
0867デフォルトの名無しさん
2006/12/18(月) 17:53:08$<digits>
Contains the subpattern from the corresponding set of capturing
parentheses from the last pattern match, not counting patterns
matched in nested blocks that have been exited already.
(Mnemonic: like \digits.) These variables are all read-only
and dynamically scoped to the current BLOCK.
読み取り専用なので値は(パターンマッチの副作用以外では)勝手に変えられない。
当然undefで未定義値を設定することもできない。
無理にやろうとすると
Can't modify constant item in scalar assignment at ほげほげ
というエラーになるはずなので、エラーメッセージをperldiagで調べてもよい。
0868デフォルトの名無しさん
2006/12/18(月) 17:54:46どうもありがとうございます。
こんなに丁寧に教えて下さって恐縮です。
これを足場に、他にも頑張って色々調べてみますね。
0869デフォルトの名無しさん
2006/12/18(月) 17:57:160870デフォルトの名無しさん
2006/12/18(月) 17:58:16全くおかしくない
礼儀のないってない奴に答える義務はない
ここに居る人間は回答者ではなく、回答者になる可能性のある人たち
あるいは質問者になる可能性のある人たち
>できれば質問に質問を返すのは控えてください。
などという一文は回答してくれるかもしれない人に対して横柄に過ぎる
平等ではない
建前であっても立場をわきまえろ
>>867
答えるべきじゃないだろ・・・常識的に考えて・・・
0871デフォルトの名無しさん
2006/12/18(月) 18:07:02レス番の有無はあまり関係ないと思いますよ。
「誰にともなく言っているかのような」気持ちの悪い書き方を選んでいるレスには、
今回のように「ああ、あの人はそうですよね」という書き方で「本当にそれが当てはまる人」
のことに触れる――つまり「気持ち悪さが当人に跳ね返る」因果応報を狙うわけですが
(レス番を書かない人は往々にして、こちらが「対象をきっちりわかってあげる」と
「なんだ、自覚あるんだw」とか「被害妄想乙」という風に、スレをベトベトさせる方向に
頑張り出すので、スレのためにも「お前に言ってるんだよ」と言わせるよう「焙り出す」必要が
あるわけです)
もしレス番を指定してストレートに何かを言ってきたとしても、同じ内容を
「いいえ、それは○○のほうですね」というフォーマットで返すだけのことなわけですから、
認めるとか認めないとか、そういうのにはまるで関わってこないのではないでしょうか。
0872デフォルトの名無しさん
2006/12/18(月) 18:09:52できないということを知っただけではやりたかったことを
実現する助けにはならない。852の言うことに耳を貸して
こういうことがやりたいんだけどというのを説明していれば
より的確な助言が得られたかもしれないんだけどね。
0873デフォルトの名無しさん
2006/12/18(月) 18:10:360874デフォルトの名無しさん
2006/12/18(月) 18:10:49> 回答者になる可能性のある人たち
すべてが終わってから「可能性があったのだ」と言い張るのは実に便利だから
そのやり方に飛びつく気持ちはわかりますが、
「質問に質問を返す人」や、「質問に質問を返すのはいかがか」という意思表示を
自分が侮辱されたように思ってしまう「自分を質問に質問を返す人の同類に位置づけていて」
且つ「正論を言われるとムカついちゃう、ちょっと変な人」に、その可能性があるとは
思えませんね。そもそもちっとも横柄ではありませんし。
0875デフォルトの名無しさん
2006/12/18(月) 18:12:00そういう人って困りますよね。
0876デフォルトの名無しさん
2006/12/18(月) 18:19:320877デフォルトの名無しさん
2006/12/18(月) 18:24:28常識のある一社会人としてはこれ以上荒しにつきあうわけにもいかない
続きはVIPで。
0878VIPPER
2006/12/18(月) 18:31:14質問に質問で返されてブチ切れる理由が分かりません。
>>864,872のレスにもあるように、それは解決への良い手段だと思いますよ。
0879デフォルトの名無しさん
2006/12/18(月) 18:38:41自分の質問への回答だけが欲しいんなら他のはスルーしろよ。
0880デフォルトの名無しさん
2006/12/18(月) 18:40:120881デフォルトの名無しさん
2006/12/18(月) 19:00:05スレの主旨と違う議論は他でやるなりスルーしろ。
0882デフォルトの名無しさん
2006/12/18(月) 19:30:07誰もブチ切れちゃいないと思うぞ
0883デフォルトの名無しさん
2006/12/18(月) 20:12:37ってのを延々と慇懃無礼に続けてたわけね。
単純に興味があったから何でそんなことするのと聞いただけだろうに。
0884デフォルトの名無しさん
2006/12/18(月) 20:17:530885デフォルトの名無しさん
2006/12/18(月) 20:52:53質問の意味がわかれば、モアベターなアドバイスも出来るだろう?
まあ質問する側として礼儀もわきまえないような他力本願のカスに教えることなんぞない
0886デフォルトの名無しさん
2006/12/18(月) 21:08:47>>834を見て思ったのだけれど、
マッチ対象がもっと複雑なパターンだった場合は良い方法ある?
例えば
HOGE1a2bFUGA3c4d5!PIYO
こんな文字列があったときに、一番最後の
(?:[[:digit:]][[:alpha:]])+
な部分(上の文字列では3c4d)を取り出したいと言う場合とか。
.*で食わせるだけだと3cが引っかからなくなるし、後の部分を
[^[:digit:]]*$
のようにそれ以外の文字に限定することもできない気がする。
/gでマッチしてから最後を取り出すしかないかな
0887デフォルトの名無しさん
2006/12/18(月) 21:39:02こんなのはいかが?
/((?:[0-9][a-zA-Z])+)(?!.*[0-9][a-zA-Z])/
0888デフォルトの名無しさん
2006/12/18(月) 22:15:03おお、なるほど
否定先読みでそれ以降にそのパターンを含んでいなければ、とするのね。
これなら確かに大抵のパターンは/($regex)(?!.*$regex)/でできますね。
実際に書くときに使うかどうかは別問題だけれど勉強になりました。�d
0889822
2006/12/19(火) 01:25:09>>833
おお!こんなものがあったのですか!ありがとうございます
>>827
>なければ書いたらいいじゃない。
呼び元のサブルーチン名or現在のサブルーチン名を
取得する方法ってあるのでしょうか
もしありましたら教えてくださいm(_ _)m
0890デフォルトの名無しさん
2006/12/19(火) 01:42:12> 呼び元のサブルーチン名or現在のサブルーチン名を
> 取得する方法ってあるのでしょうか
(゚д゚)
だからcallerだって
sub __func__() { return +(caller(1))[3] }
0891822
2006/12/19(火) 02:26:24教えてくださいましてありがとうございました
自分乙 o...rz
0892デフォルトの名無しさん
2006/12/19(火) 02:55:51norの時は!( $boolean1 || $boolean2 )、
nandの時は!( $boolean1 && $boolean2 )と書かないといけないのでしょうか。
0893デフォルトの名無しさん
2006/12/19(火) 03:07:35修飾なしで他のファイルで使う方法はありませんか?
#コード
ファイル1 ourtest.pl
#start
use strict;
use b1;
package a;
our $x;
$x = 10;
#package b;
#print $x, "\n"; # パッケージaの$x
#同一ファイル内なら表示可能
b1::printit();
#end
ファイル2 b1.pm #実行時エラー
#start
package b1;
use strict;
sub printit {
print $x, "\n"; # パッケージaの$x
# print $main::x , "\n";なら表示可能
}
1;
#end
0894デフォルトの名無しさん
2006/12/19(火) 03:10:50メインパッケージの変数を他ファイルで使いたいのです
#コード
ファイル1 ourtest.pl
#start
use strict;
use b1;
our $x;
$x = 10;
#package b;
#print $x, "\n"; # パッケージmainの$x
#同一ファイル内なら表示可能
b1::printit();
#end
ファイル2 b1.pm #実行時エラー
#start
package b1;
use strict;
sub printit {
print $x, "\n"; #mainパッケージの$xを表示したい
# print $main::x , "\n";なら表示可能
}
1;
#end
0895デフォルトの名無しさん
2006/12/19(火) 03:27:17ド・モルガンの法則って知ってる?
!( $boolean1 || $boolean2 )は( !$boolean1 && !$boolean2 )と等価
!( $boolean1 && $boolean2 )は( !$boolean1 || !$boolean2 )と等価
まあ、「NOR演算子」や「NAND演算子」は用意されてない。
if文に関しての話ならばunlessを使うこともできる。
unless ( $boolean1 || $boolean2 )
unless ( $boolean1 && $boolean2 )
>>893-894
望む効果範囲はどこまでなの?
真のグローバル変数(=mainに細工をすると全てのパッケージから見える)にするのか
特定のモジュール(のour変数。以下同)とmainの変数を共有したいのか
特定のモジュールの特定の変数のみを共有したいのか
それだけ聞いた限りでは凄く変なことをしようとしているように見えるので、
もう一歩引いて何を目的としてそういうことをしようとしてるのか
説明したほうが良い答えが返ってくるかもしれないよ
0896893
2006/12/19(火) 03:38:55まさにこれです。
mainパッケージの変数を各種モジュールから自由に読み書きしたいのです。
>それだけ聞いた限りでは凄く変なことをしようとしているように見えるので、
>もう一歩引いて何を目的としてそういうことをしようとしてるのか
>説明したほうが良い答えが返ってくるかもしれないよ
元々一つの巨大なファイルのプログラムを分割したいと考えています。
module内からmainパッケージの変数にアクセスするときはmain::として書きたいのですが
元々のファイルが膨大な量なので、全てを変更する事は避けたいです。
0897893
2006/12/19(火) 03:43:44mainパッケージの変数を表示できるようになったのですが
簡単な方法が知りたいです。
#ファイル1
use strict;
use b1;
our $x = 10;
b1::printit();
#ファイル2
package b1;
use strict;
*x = *::x;
our $x;
sub printit {
print $x, "\n";
}
1;
0898デフォルトの名無しさん
2006/12/19(火) 06:45:37。oO(それモジュールにする意味あるのかな…) まあそれは置いておいて
とりあえず、Perlには元来グローバル変数は存在しない。
一箇所に仕掛けをしただけでグローバル変数を作るのは、
Perlはdirty hackが色々できる言語だから不可能とまでは言わないが、
かなり邪道な方法になると思う。
擬似グローバル変数を持つ専用のモジュールを作って、
必要な全てのモジュールからimportするってところでどうよ。
## GlobalVariables.pm
package GlobalVariables;
use base Exporter;
our @EXPORT = qw($x);
1;
## main.pl
use GlobalVariables;
use b1;
$x = 10;
b1::printit();
## b1.pm
package b1;
use GlobalVariables;
sub printit { print $x, "\n"; }
1;
こんなモジュールもあった。
http://search.cpan.org/~polettix/vars-global-v0.0.1/lib/vars/global.pm
0899デフォルトの名無しさん
2006/12/19(火) 10:49:590900デフォルトの名無しさん
2006/12/19(火) 11:14:400901デフォルトの名無しさん
2006/12/19(火) 11:15:09しかし、該当ページの tmp_web_sec_code に 証券コードを代入し、一件づつしか
登録できない。(どうやっていいのか良くわからない)
このページは、画面を見る限りでは、
10件づつ登録できるはずなんだけど、
どうしたらよいのかな?
全銘柄の約4000件登録するのに2時間30分かかりました。
並列処理にして、半分以下の時間に短縮できたけど、効率化できそうなので。。。
perlで使用しているモジュール
use Crypt::SSLeay;
use LWP::UserAgent;
use WWW::Mechanize;
以下の部分を効率化できる?
$class->submit_form(
form_name=> 'FORM',
fields=>{
'tmp_web_sec_code' => $stock_number,
},
button=> 'ACT_insertPfList',
);
0902デフォルトの名無しさん
2006/12/19(火) 11:31:55>>1
0903デフォルトの名無しさん
2006/12/19(火) 11:42:27それはその何とか証券側のインタフェース仕様がわからないという話なので、こっち側の
プログラムを何で書いたかにはよらない話だからスレ違い。
0905デフォルトの名無しさん
2006/12/19(火) 11:58:41学生は冬休みか。
0906デフォルトの名無しさん
2006/12/19(火) 12:43:00どうも。
演算子はないんすね。
そっちの法則の方も学校でやったような気はするんですが身についてなかったです。
ありがとうございました。
0907デフォルトの名無しさん
2006/12/19(火) 14:36:180908デフォルトの名無しさん
2006/12/19(火) 17:24:27ソフトバンクの3D携帯からのメールが来た時、
$MTBody = unmime( $$mail->parts(0)->bodyhandle->as_string )
の所で、
Can't call method "as_string" on an undefined value at 〜
なエラーが出ます。解決方法を教えてください。宜しくお願いします。
レス数が900を超えています。1000を超えると表示できなくなるよ。