【Perl上級者コーナーPart01】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/22 19:21ID:V3u7Ppd00223nobodyさん
03/06/21 01:04ID:???0225本7 ◆uPD9aFm9hI
03/06/21 01:11ID:rO1nGhr1違うよ
>>222
ソケットでデカいデータを受信中にヌラウザの更新したりとかを連続でやると
プロセスが残っったまま別スレッドを作りやがる。それが貯まってしまいに落ちる。
あとメモリじゃないけど排他制御の作業中に更新やら切断を頻繁に行うとロックファイ
ルが消しきれない。ただでさえ排他制御が自前なのにさらにロックファイルの鮮度を
調べる行程まで出てくる。結局PHPで書き直してこれ作った
http://2chlog.net
0226本7 ◆uPD9aFm9hI
03/06/21 01:14ID:???違うの!?ずとパールだって思ってた。
確認の為すんませんが間違えてたら指摘してください。
Perl パール PHP ピーエイシピー CGI シージーアイ
2ch にちゃんねる 本7 ポンチー
Apache アパッチ Windows ビルゲイツ
0227603
03/06/21 01:17ID:???それって、単にそのプログラムのデータ構造とアルゴリズムを見直せば
解決するように思えるけど。。。
ヌラウザの更新時にはインタラプトなりのシグナル送ってる?
デッドロックが残るのはソース見ないとなんとも言えないよ。
0229本7 ◆uPD9aFm9hI
03/06/21 02:08ID:???ソケットはGETメソッドでプレーンテキストを読み込むだけ。
でも根本的にHTTPDとシームレスじゃないからどうしても突発的な処理の
中止が起こると幽霊プロセスになって残る。HTTPDの問題もあるけど。
ロック残りに関してはロックした瞬間に強制切断とか更新がかかるとどうしても
残る。自分でかけたロックファイル読んでるみたいね。Perlでは慣例的に行われ
るそういう例外処理も即時性が問われるプログラムで高効率化を計る際にボトル
ネックになってくる。
せめてPerlの様式でバイナリが吐けるコンパイラならこれからの優位性も出てくる
だろうけど。アプリ開発におけるVBとかと同じポジションになりつつあるんじゃない
のかな。ま、Perlをきちんと身につけてる人ならどんな言語でも対応出来るだろうけ
ど。私も随分お世話になった
0231本7 ◆uPD9aFm9hI
03/06/21 03:06ID:???そんな事は思ってないよ。何か反論あるなら具体的な解決策を挙げてみてよ。
私は言語を変えるという解決策を取った
0233nobodyさん
03/06/21 07:12ID:???> そんな事は思ってないよ。何か反論あるなら具体的な解決策を挙げてみてよ。
相変わらず無限ループ。結局漏れの忠告は放置かよ。
世間一般的にこんな物腰の香具師に対して、まともな意見なんて述べようという気持ちは失せるけどな。
根本的に単純if構文のみの思考回路。ネスティングされたswitch case default構文なんて微塵も考えてもいないんだろうな。
ここしばらくは心穏やかに眺めていたけれど、そろそろ我慢できなくなってきたらしい(w>漏れ
0234本7 ◆uPD9aFm9hI
03/06/21 08:04ID:???あまり使った事ないですけどそれも結局例外処理ですよね。時間を切り詰め
たいんで中断処理自体をしたくなかったんです。もしやるならスクリプトの冒頭
で -eとループ回数で確認する程度です。
0235本7 ◆uPD9aFm9hI
03/06/21 08:07ID:???0236nobodyさん
03/06/21 09:14ID:???ネタか? バカか?
PerlはPerlって書けばいいだろ?
それをわざわざ「パール」とかカタカナ表記すんのがウルトラ初心者だって言われてる原因だろうに。
あと、PERLとか全角で書くやつとかな。
0237本7 ◆uPD9aFm9hI
03/06/21 10:21ID:???0238nobodyさん
03/06/21 10:22ID:???0239nobodyさん
03/06/21 10:35ID:???0240nobodyさん
03/06/21 10:37ID:???0241215
03/06/21 13:11ID:j72t4+1Y寂れてると思ったんですが、結構書き込みがあるんですね。
それはそうと、どうですか?分かりませんか?
今は、IISでASP(ブイビースクリプト)にこの中間作業をさせてるんですが、
こんな感じ↓
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("a.exe -option ***.file")
このあと、oExecの標準出力プロパティをいじるんだけど。
パールならこの「exec」に相当するのは何かな〜?って思ったわけ。
この中間プログラムは、「a.exe」とユーザーのリクエストの中間で橋渡し役をするものなので、
リクエスト処理が必要になるため、パールの方が簡単です。
この「Exec」の部分が分かればね。
ヒントだけでも教えてください。後は調べるから。
あ、でも、最初から調べろ!って意見はパスね。
それなら、はじめから聞かないからね。親切に教えてほしいな。
そんじゃ、また来るから。よろしこ
0243nobodyさん
03/06/21 20:50ID:???読んだ感じ、お前のプログラムが糞である可能性が一番高いとしか言いようがない。
Perlほど実績がある言語にバグがあると主張するなら、
普通トレースなりして客観的な証拠出さないと相手にされないよ。
まあ、君みたいに、自分の思い通り行かないと、他に責任転嫁する人たくさん居るから慣れっこだけど。
0246本7 ◆uPD9aFm9hI
03/06/21 22:23ID:???0247nobodyさん
03/06/21 23:21ID:???普通は逆だと思うけれども。
0248本7 ◆uPD9aFm9hI
03/06/21 23:40ID:???も自明の理だよ。Perlに固執する理由がないと思う。
0249nobodyさん
03/06/21 23:47ID:???0250nobodyさん
03/06/21 23:52ID:???1を知って100を知った気になるあたり厨そのものだな。
0251本7 ◆uPD9aFm9hI
03/06/22 00:04ID:???0252本7 ◆uPD9aFm9hI
03/06/22 00:08ID:???思うが。CやDelphiに取って代わるバイナリCGIとして大手を振る事は出来る
んじゃないだろうか
0253本7 ◆uPD9aFm9hI
03/06/22 00:10ID:???0254nobodyさん
03/06/22 01:17ID:???まあ、もう一つ忠告をするなら、生半可な知識で物を語ると
笑われたりバカにされたり憐れみの目で見られたりすると言うことだな。
それを望んでいるのなら止めないが、
自分を他者に認めてもらいたくてそんなことをしているのだとしたら、やめた方がいい。いやマジで。
0255本7 ◆uPD9aFm9hI
03/06/22 01:19ID:???perl2exe落としてみた
0256nobodyさん
03/06/22 01:21ID:???そんな香具師がこのスレッドに光臨だとは。とほほ。。。
↓
じゃPerlの100を教えてくれませんか?
といってもPHPの100の方がありがたいけど。
↓
おめえなんかに教える気はない。さっさと消えうせろ。
↓
どいつもこいつも必死だな。一生Perl厨でいてろ。
↓
(放置)
↓
次はぃぬ板あたりに現れる。(w
と予言してみるテスト。
0257nobodyさん
03/06/22 01:23ID:???0258nobodyさん
03/06/22 01:27ID:???これまでの登場したスレッドの軌跡を見ればそれこそ「自明の理」だよね(w
それにまだ気が付かないでいるのか、薄々感じているのか、はたまた、それに快感を得ているのかは分からないけれども。
0259本7 ◆uPD9aFm9hI
03/06/22 01:35ID:???中に実行コンポ入れてるだけだからあまり変わりないのか。
ネイティブコ−ドが吐けなきゃ意味ないって事か。
0260nobodyさん
03/06/22 01:37ID:???> 次はぃぬ板あたりに現れる。(w
鯖管理初心者質問スレッド Part1
http://pc.2ch.net/test/read.cgi/linux/1025755159/571
これか?
0261nobodyさん
03/06/22 05:24ID:???物事を評価するときの器が狭い。
0262nobodyさん
03/06/22 09:13ID:???変なヤツがいてるスレはここですか?
0263nobodyさん
03/06/22 11:12ID:???0264215
03/06/22 11:47ID:5xGLq+ePとりあえず自分でも探してみますので、君たちの中に分かる人がいれば書き込んでみてください。
いまのところパールでなくても良いので、ぼちぼち探しながら、ときどきこのスレを覗きにきます。
ところで、パールの上級者とはどのような基準ですか?
パールのユーザーとして使用方法に精通しているということにおいて上級なのか
言語開発者の端くれとしてパールの設計に関して知識があることにおいて上級ですか?
このスレは、当然ユーザーとして使用方法に詳しい人たちが集まるスレだと思い、
質問してみましたが、皆さんも、やっぱり誰かに教えてもらったりして身に付けたんでしょ?
意地悪しないで、書き込んでみなさい。
たった、数行でしょ?
0265nobodyさん
03/06/22 11:51ID:???スレタイは、ネタだろ。
もし、スレタイを信じて、本当にここが上級者コーナーだと思ってたなら、
はっきりいって、迷惑なレベルの低い質問だな。
初心者スレへ行け。
0266nobodyさん
03/06/22 11:57ID:???0267nobodyさん
03/06/22 12:01ID:???0268nobodyさん
03/06/22 12:24ID:???あんなに長々とカキコする頭の悪さ・・・
0269さかなさかなさかな
03/06/22 14:58ID:???漏れは厨1からずっと独学ですが、この業界はそういう人が多いかと。
君の今後の人生のために調べ方を教えてあげよう。
http://www.google.co.jp/ にいって、
「Perl 外部プログラム」 と入力し、[google検索] ボタンを押してみよう。
以上。
0270nobodyさん
03/06/22 15:30ID:???真剣にアレの進入禁止方法を検討せねば。
0271nobodyさん
03/06/22 15:38ID:???0272nobodyさん
03/06/22 15:55ID:x5KXIh8E0273nobodyさん
03/06/22 16:19ID:???0274215
03/06/22 16:51ID:???0275nobodyさん
03/06/22 17:19ID:???0276nobodyさん
03/06/22 17:32ID:???だから「馬鹿にすれば答えを書くだろう」という厨房丸出しの思考をするのだろう。
残念ながら、君以外は答えを知ってることは明らかなので、知ってる事を証明するために書く必要はない。
おとなしく初心者スレで質問しときゃレス付いただろうに…
今からでも遅くないから初心者スレ逝きなさい。
と書くとこういう馬鹿は絶対に逝かない事もわかってて書いてみるテスト。
0277215
03/06/22 17:36ID:???お前らお行って腰!
0278nobodyさん
03/06/22 17:38ID:???> に仕事をさせて、その結果を受け取る
ここまで分かっていてどうしてあれを思い出さないかなぁ。釣りか?
0279nobodyさん
03/06/22 17:56ID:???0280nobodyさん
03/06/22 18:53ID:???encodingのバグ報告にでも使う?
つーても、この板じゃ5.8使ってるやつ少なそうだし。
0283nobodyさん
03/06/22 22:57ID:???0284215
03/06/22 23:50ID:5xGLq+eP>>269
グーぐるで探したことはあります。結果、「$a=system('a.exe ***.file')」
というのが有力ではないかと思ってますが、これでいけるということですか?
これでいい場合、$aに受け取るサイズに限度は無いのでしょうか?
数kByteから数MByteまで受け取る可能性があるんですが・・・
あと、これはブロッキング処理になるんでしょうか?
a.exeはそれなりの計算をするプログラムなので、結果は小出しになります。
$aは標準出力を受け取るのでブロッキング処理でないとこういう記述はできないと思いますが・・・
このことから、単純に「$a=system('a.exe ***.file')」ではうまくいかないような気がします。
これはASPでいうとRUNに当たるんじゃないかな?
標準出力じゃなくてプロセス結果を返すんじゃないの?
いまんとこ、これしか見つからなかったんだけど、別のほうほうがあるんでしょ?
ねぇ、早く教えなよ。やったことあるんでしょ?
まさか、駄レス並べて1000までいく気じゃないよね?
0286nobodyさん
03/06/23 00:46ID:???0288nobodyさん
03/06/23 07:54ID:???0289nobodyさん
03/06/23 13:20ID:???0290nobodyさん
03/06/23 22:24ID:???隔離スレにしたらどうだ?
0291本7 ◆uPD9aFm9hI
03/06/24 02:43ID:???0293nobodyさん
03/06/24 22:41ID:???0295名無しさん@Emacs
03/06/25 12:39ID:???>これでいい場合、$aに受け取るサイズに限度は無いのでしょうか?
>数kByteから数MByteまで受け取る可能性があるんですが・・・
どういう経緯でこういう発想に至ったのかを教えてくれ……
0296nobodyさん
03/06/25 21:45ID:???Perlの仕様を知っていればそもそもそんなアフォな質問は出ない。
これはつまり、貴様が初心者以下であることを物語っている。
よって、そんな貴様が上級者コーナーにいること自体が間違い。
0297nobodyさん
03/06/26 19:46ID:???system使うのにlist形式ではなく一文で書いてshに渡してる時点でヘタレ。
``すら知らない時点で(ry
openの使い方(open(FH,"$prog|"))を知らな(ry
>>295
そもそも何でこいつはsystemで起動したプログラムの出力を
取れると思ったのか、俺も興味ある。
0298nobodyさん
03/06/26 22:45ID:???0299nobodyさん
03/06/26 23:11ID:???0301nobodyさん
03/06/29 14:18ID:???0302山崎 渉
03/07/15 11:11ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0303山崎 渉
03/08/02 02:40ID:???( ^^ )< ぬるぽ(^^)
0304ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:25ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0305山崎 渉
03/08/15 22:52ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0306nobodyさん
03/08/19 00:03ID:9nwA90nBもう随分前の話だが。
0308nobodyさん
03/09/21 15:41ID:dsdmTr9D名前付きの引数でサブルーチンに配列を渡そうとしているのですがうまくいきません。
呼び出し側は
hoge = subsub(ItemCode=>1, ItemText=>'hogehoge', \@ItemValue);
受取側は
sub subsub()
{
my %args = (
ItemName=>0,
ItemText=>'',
ItemValue=>undef,
@_, );
としています。これで@$ItemValueとか$ItemValue->[0]という形で配列を使いたいのですが、配列の内容が取り出せません。
呼び出し側のItemValueには配列が入っていること、subsub側の引数には(正しいかどうかはともかく)リファレンスは代入されていることは
確認しましたが、これ以降どうしたらいいかわかりません。
何かご存知の方がいらっしゃればアドバイスをお願いいたします
0309308
03/09/21 15:42ID:dsdmTr9D呼び出し側に引数名書いてない(T_T)
0310308
03/09/21 15:43ID:dsdmTr9D呼び出し側を
hoge = subsub(ItemCode=>1, ItemText=>'hogehoge', ItemValue=>\@ItemValue);
と訂正してください。
0311308
03/09/21 16:00ID:dsdmTr9D後半も意味不明でしたね。受取側では
@$args{ItemValue}とか$args{ItemValue}->[0]という形で使えれば、に訂正してください。
ちなみにプロトタイプ宣言を試して見たのですが、やはりダメでした。
sub subsub($$\@)としても、$args{ItemValue}は空の配列のままです。
join(',',@_)ってして「ARRAY(0x833b5e4)」とか出てくるのは、一応リファレンスは入っているのですよね?
0312nobodyさん
03/09/21 16:15ID:???これなら
$args{'ItemValue'}->[0]
でできない?
0313nobodyさん
03/09/21 16:22ID:???煮詰まったときはお茶かコーヒーで一服どーぞ。
0314308
03/09/21 16:38ID:dsdmTr9D受け取った後、foreachで内容をチェックしていたのですが、
foreach @$args{ItemValue}では(エラーにはならないけど)×だったのです。
こういう使い方をするには
foreach @{ $args{ItemValue} }と書かなければならないのですね。
>312
>313
アドバイス、ありがとうございました
0315nobodyさん
03/09/21 20:51ID:dsdmTr9DCGI::new()で得たCGIハンドルから、postで与えられたパラメータを全て、名前毎に値を取り出すことは出来るのでしょうか?
……要するに、postで来たデータをgetのクエリー文字列に直したいのです(^^;
ただ、数が多いのとcheckBoxがらみで同じ名前で複数の値があるものがあるので、どうしたものかと考えているところです。
もしご経験のある方がおられましたらアドバイスをお願いします。
0316nobodyさん
03/09/21 21:26ID:OKDMwSn3史上最大よ!!!
100%来なさい!!!!
0317nobodyさん
03/09/21 22:19ID:???既に存在するキーならば、\tを付け加えてその値を付加してみるとか。
if (!defined %hash{$key}) { %hash{$key} .= "\t$value" ; }
みたいな。
1 つ 1 つの値を取り出すときには、split(/\t/,%hash{$key});
みたいな。
みたいな。
みたいな。
0318nobodyさん
03/09/21 22:27ID:???0319nobodyさん
03/09/21 22:29ID:???my $query = new CGI;
...
foreach($query->param){
print $_, " = ", join(',', $query->param($_)), "<br />\n";
}
こういうこと?
POST->GETへ直したいの意味がよく分からないけど。。
それから、質問はなるべくこちらへ。
Perl コーディング初心者質問コーナー Part28
http://pc2.2ch.net/test/read.cgi/php/1063562491/
0320nobodyさん
03/09/21 23:19ID:???{
0321nobodyさん
03/09/22 00:03ID:???$str = join('&', map { my $key = $_; map { join('=', $key, $_) } $query->param($_) } $query->param);
■ このスレッドは過去ログ倉庫に格納されています