トップページ⇒php
626コメント198KB

【Perl上級者コーナーPart01】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/22 19:21ID:V3u7Ppd0
勃っちゃた
022260303/06/21 00:59ID:???
>>221
たとえば?
0223nobodyさん03/06/21 01:04ID:???
215って本7だったのか。納得。
0224nobodyさん03/06/21 01:08ID:???
>>215
「パール」などと呼ぶウルトラ初心者は初心者スレでさえ珍しい。
0225本7 ◆uPD9aFm9hI 03/06/21 01:11ID:rO1nGhr1
>>223
違うよ

>>222
ソケットでデカいデータを受信中にヌラウザの更新したりとかを連続でやると
プロセスが残っったまま別スレッドを作りやがる。それが貯まってしまいに落ちる。
あとメモリじゃないけど排他制御の作業中に更新やら切断を頻繁に行うとロックファイ
ルが消しきれない。ただでさえ排他制御が自前なのにさらにロックファイルの鮮度を
調べる行程まで出てくる。結局PHPで書き直してこれ作った

http://2chlog.net
0226本7 ◆uPD9aFm9hI 03/06/21 01:14ID:???
>>224
違うの!?ずとパールだって思ってた。
確認の為すんませんが間違えてたら指摘してください。

Perl パール PHP ピーエイシピー CGI シージーアイ
2ch にちゃんねる 本7 ポンチー
Apache アパッチ  Windows ビルゲイツ
022760303/06/21 01:17ID:???
>>225
それって、単にそのプログラムのデータ構造とアルゴリズムを見直せば
解決するように思えるけど。。。
ヌラウザの更新時にはインタラプトなりのシグナル送ってる?
デッドロックが残るのはソース見ないとなんとも言えないよ。
0228nobodyさん03/06/21 01:27ID:???
>>227
いちいち相手にしなさんな
0229本7 ◆uPD9aFm9hI 03/06/21 02:08ID:???
>>227
ソケットはGETメソッドでプレーンテキストを読み込むだけ。
でも根本的にHTTPDとシームレスじゃないからどうしても突発的な処理の
中止が起こると幽霊プロセスになって残る。HTTPDの問題もあるけど。

ロック残りに関してはロックした瞬間に強制切断とか更新がかかるとどうしても
残る。自分でかけたロックファイル読んでるみたいね。Perlでは慣例的に行われ
るそういう例外処理も即時性が問われるプログラムで高効率化を計る際にボトル
ネックになってくる。
せめてPerlの様式でバイナリが吐けるコンパイラならこれからの優位性も出てくる
だろうけど。アプリ開発におけるVBとかと同じポジションになりつつあるんじゃない
のかな。ま、Perlをきちんと身につけてる人ならどんな言語でも対応出来るだろうけ
ど。私も随分お世話になった
0230nobodyさん03/06/21 03:01ID:???
>>229
君は自分の知識以外の技術は存在しないとでも思ってるのか?
0231本7 ◆uPD9aFm9hI 03/06/21 03:06ID:???
>>230
そんな事は思ってないよ。何か反論あるなら具体的な解決策を挙げてみてよ。
私は言語を変えるという解決策を取った
0232nobodyさん03/06/21 05:46ID:???
>>231
227でヒントをくれてるようだけど、再度。シグナルについてはスルーですか?
0233nobodyさん03/06/21 07:12ID:???
またこんなところで繁殖か。たいがいにせぇよ。
> そんな事は思ってないよ。何か反論あるなら具体的な解決策を挙げてみてよ。
相変わらず無限ループ。結局漏れの忠告は放置かよ。

世間一般的にこんな物腰の香具師に対して、まともな意見なんて述べようという気持ちは失せるけどな。
根本的に単純if構文のみの思考回路。ネスティングされたswitch case default構文なんて微塵も考えてもいないんだろうな。

ここしばらくは心穏やかに眺めていたけれど、そろそろ我慢できなくなってきたらしい(w>漏れ
0234本7 ◆uPD9aFm9hI 03/06/21 08:04ID:???
>>232
あまり使った事ないですけどそれも結局例外処理ですよね。時間を切り詰め
たいんで中断処理自体をしたくなかったんです。もしやるならスクリプトの冒頭
で -eとループ回数で確認する程度です。
0235本7 ◆uPD9aFm9hI 03/06/21 08:07ID:???
でもシグナルで始末する方がいいかもしれないですね。
0236nobodyさん03/06/21 09:14ID:???
>>226
ネタか? バカか?
PerlはPerlって書けばいいだろ?
それをわざわざ「パール」とかカタカナ表記すんのがウルトラ初心者だって言われてる原因だろうに。
あと、PERLとか全角で書くやつとかな。
0237本7 ◆uPD9aFm9hI 03/06/21 10:21ID:???
その前に口から文字だす方法を教えてください
0238nobodyさん03/06/21 10:22ID:???
グジップ
0239nobodyさん03/06/21 10:35ID:???
なんでWeb関係の板のコテハンは揃いも揃ってヴァカばっかりなんだ?
0240nobodyさん03/06/21 10:37ID:???
逃げ口上だけは得意だな
024121503/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」の部分が分かればね。
ヒントだけでも教えてください。後は調べるから。

あ、でも、最初から調べろ!って意見はパスね。
それなら、はじめから聞かないからね。親切に教えてほしいな。

そんじゃ、また来るから。よろしこ
0242nobodyさん03/06/21 19:01ID:???
>>241
二度と来るな。死ね。
0243nobodyさん03/06/21 20:50ID:???
>>225
読んだ感じ、お前のプログラムが糞である可能性が一番高いとしか言いようがない。
Perlほど実績がある言語にバグがあると主張するなら、
普通トレースなりして客観的な証拠出さないと相手にされないよ。
まあ、君みたいに、自分の思い通り行かないと、他に責任転嫁する人たくさん居るから慣れっこだけど。
0244本7 ◆uPD9aFm9hI 03/06/21 21:30ID:???
>>243
その根拠は?
0245nobodyさん03/06/21 22:08ID:???
>>244
”その”は何を指してるのか不明。
マジ先に日本語勉強したほうがいいよ。
0246本7 ◆uPD9aFm9hI 03/06/21 22:23ID:???
骨のないヤツだ
0247nobodyさん03/06/21 23:21ID:???
自分の思うように動かないからPerlは糞なのかぁ・・・
普通は逆だと思うけれども。
0248本7 ◆uPD9aFm9hI 03/06/21 23:40ID:???
どんなものにも限界はある。これれからの可能性考えればPHPに移るの
も自明の理だよ。Perlに固執する理由がないと思う。
0249nobodyさん03/06/21 23:47ID:???
老人には厳しい様です。
0250nobodyさん03/06/21 23:52ID:???
まるでperlの限界を知っているような口調に笑った。
1を知って100を知った気になるあたり厨そのものだな。
0251本7 ◆uPD9aFm9hI 03/06/22 00:04ID:???
Perlで100を知る必要があるんだろうか
0252本7 ◆uPD9aFm9hI 03/06/22 00:08ID:???
Perlがコンパイラになって飛躍的な高速化が図れるなら生き残る道はあると
思うが。CやDelphiに取って代わるバイナリCGIとして大手を振る事は出来る
んじゃないだろうか
0253本7 ◆uPD9aFm9hI 03/06/22 00:10ID:???
コンパイラありますね
0254nobodyさん03/06/22 01:17ID:???
>>253
まあ、もう一つ忠告をするなら、生半可な知識で物を語ると
笑われたりバカにされたり憐れみの目で見られたりすると言うことだな。
それを望んでいるのなら止めないが、
自分を他者に認めてもらいたくてそんなことをしているのだとしたら、やめた方がいい。いやマジで。
0255本7 ◆uPD9aFm9hI 03/06/22 01:19ID:???
笑ってください。

perl2exe落としてみた
0256nobodyさん03/06/22 01:21ID:???
おそらくPerlを1しか知らないからいろいろと口走るんだろうな。
そんな香具師がこのスレッドに光臨だとは。とほほ。。。
↓
じゃPerlの100を教えてくれませんか?
といってもPHPの100の方がありがたいけど。
↓
おめえなんかに教える気はない。さっさと消えうせろ。
↓
どいつもこいつも必死だな。一生Perl厨でいてろ。
↓
(放置)
↓
次はぃぬ板あたりに現れる。(w

と予言してみるテスト。
0257nobodyさん03/06/22 01:23ID:???
おそらく説明書きも読まずにperl2exeを落としてきたんだろうな(w
0258nobodyさん03/06/22 01:27ID:???
>>254
これまでの登場したスレッドの軌跡を見ればそれこそ「自明の理」だよね(w
それにまだ気が付かないでいるのか、薄々感じているのか、はたまた、それに快感を得ているのかは分からないけれども。
0259本7 ◆uPD9aFm9hI 03/06/22 01:35ID:???
BBSのCGIでテストしたけど普通にPerl起動した方が早い気がした。
中に実行コンポ入れてるだけだからあまり変わりないのか。
ネイティブコ−ドが吐けなきゃ意味ないって事か。
0260nobodyさん03/06/22 01:37ID:???
>>256
> 次はぃぬ板あたりに現れる。(w

鯖管理初心者質問スレッド Part1
http://pc.2ch.net/test/read.cgi/linux/1025755159/571

これか?
0261nobodyさん03/06/22 05:24ID:???
本7は根本的に頭が悪いからな。
物事を評価するときの器が狭い。
0262nobodyさん03/06/22 09:13ID:???
Perl = CGIだけの言語と思ってる、
変なヤツがいてるスレはここですか?
0263nobodyさん03/06/22 11:12ID:???
このスレ進まないから「上級者本7を語るスレ」でもいいかもな
026421503/06/22 11:47ID:5xGLq+eP
えー、期待はしていなかったのですが、やっぱり質問に答えられる人はいないようですね。

とりあえず自分でも探してみますので、君たちの中に分かる人がいれば書き込んでみてください。

いまのところパールでなくても良いので、ぼちぼち探しながら、ときどきこのスレを覗きにきます。

ところで、パールの上級者とはどのような基準ですか?
パールのユーザーとして使用方法に精通しているということにおいて上級なのか
言語開発者の端くれとしてパールの設計に関して知識があることにおいて上級ですか?

このスレは、当然ユーザーとして使用方法に詳しい人たちが集まるスレだと思い、
質問してみましたが、皆さんも、やっぱり誰かに教えてもらったりして身に付けたんでしょ?

意地悪しないで、書き込んでみなさい。

たった、数行でしょ?
0265nobodyさん03/06/22 11:51ID:???
>>264
スレタイは、ネタだろ。
もし、スレタイを信じて、本当にここが上級者コーナーだと思ってたなら、
はっきりいって、迷惑なレベルの低い質問だな。

初心者スレへ行け。
0266nobodyさん03/06/22 11:57ID:???
たばこみたいなやつ。
0267nobodyさん03/06/22 12:01ID:???
つーか、煽れば聞き出せるだろうという頭の悪さが…
0268nobodyさん03/06/22 12:24ID:???
ほんと、質問のたった数行のコードさえ書けないくせに
あんなに長々とカキコする頭の悪さ・・・
0269さかなさかなさかな03/06/22 14:58ID:???
>>264
漏れは厨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:x5KXIh8E
215は釣りだろ。
0273nobodyさん03/06/22 16:19ID:???
釣りか天然か知らんが馬鹿であることに間違いあるまい。
027421503/06/22 16:51ID:???
ハァ?調子ノンな。お宅度もも。
0275nobodyさん03/06/22 17:19ID:???
↑厨房指数120
0276nobodyさん03/06/22 17:32ID:???
馬鹿は侮辱にとても敏感。だから馬鹿にされると黙ってられない。
だから「馬鹿にすれば答えを書くだろう」という厨房丸出しの思考をするのだろう。
残念ながら、君以外は答えを知ってることは明らかなので、知ってる事を証明するために書く必要はない。

おとなしく初心者スレで質問しときゃレス付いただろうに…
今からでも遅くないから初心者スレ逝きなさい。



と書くとこういう馬鹿は絶対に逝かない事もわかってて書いてみるテスト。
027721503/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使ってるやつ少なそうだし。
028121503/06/22 22:20ID:???
>>280
使ってます。




この板で、なんかゲームでも作ってみたいなぁ。
0282nobodyさん03/06/22 22:22ID:???
>>281
おっと間違えた。215じゃないよ。自演して遊ぼうとなんかしてないよ。
まちげぇた。
0283nobodyさん03/06/22 22:57ID:???
ま、あれを知らなくてもインストールなら猿でも出来るからな。(w
028421503/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までいく気じゃないよね?
0285nobodyさん03/06/22 23:57ID:???
>>284
駄質問を堂々とこんなスレでする君がいる限り1000も夢ではないぞ
0286nobodyさん03/06/23 00:46ID:???
馬鹿だからやっぱり出て行かないな。
0287nobodyさん03/06/23 07:29ID:???
>>284
バカすげー。
試すと言う言葉の意味を知らん。
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:???
PHPでいいよもう
0292nobodyさん03/06/24 17:25ID:???
>>291
うわ…ここにもいるよ。キモッ
0293nobodyさん03/06/24 22:41ID:???
(゚Д゚;≡゚д゚;)な、何がいるの?
0294nobodyさん03/06/25 08:36ID:???
>>293をさらしあげ
0295名無しさん@Emacs03/06/25 12:39ID:???
>>284

>これでいい場合、$aに受け取るサイズに限度は無いのでしょうか?
>数kByteから数MByteまで受け取る可能性があるんですが・・・

どういう経緯でこういう発想に至ったのかを教えてくれ……
0296nobodyさん03/06/25 21:45ID:???
>>284
Perlの仕様を知っていればそもそもそんなアフォな質問は出ない。
これはつまり、貴様が初心者以下であることを物語っている。
よって、そんな貴様が上級者コーナーにいること自体が間違い。
0297nobodyさん03/06/26 19:46ID:???
>>284
system使うのにlist形式ではなく一文で書いてshに渡してる時点でヘタレ。
``すら知らない時点で(ry
openの使い方(open(FH,"$prog|"))を知らな(ry

>>295
そもそも何でこいつはsystemで起動したプログラムの出力を
取れると思ったのか、俺も興味ある。
0298nobodyさん03/06/26 22:45ID:???
馬鹿だから
0299nobodyさん03/06/26 23:11ID:???
案外、本7だったりしてなw
0300nobodyさん03/06/26 23:19ID:???
>>299
アリエール漂白剤プラス。

300下t
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:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0306nobodyさん03/08/19 00:03ID:9nwA90nB
で、>>101は解決したのかね?
もう随分前の話だが。
0307nobodyさん03/08/19 12:40ID:???
>>306
ファイルアップロードが上級者向けの話題とは思えんなぁ。
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側の引数には(正しいかどうかはともかく)リファレンスは代入されていることは
確認しましたが、これ以降どうしたらいいかわかりません。

何かご存知の方がいらっしゃればアドバイスをお願いいたします
030930803/09/21 15:42ID:dsdmTr9D
……書き込んで解りました。
呼び出し側に引数名書いてない(T_T)
031030803/09/21 15:43ID:dsdmTr9D
……と思ったら、今書いてあるコードにはちゃんと書いてありました(^^;

呼び出し側を
hoge = subsub(ItemCode=>1, ItemText=>'hogehoge', ItemValue=>\@ItemValue);
と訂正してください。
031130803/09/21 16:00ID:dsdmTr9D
>>310
後半も意味不明でしたね。受取側では
@$args{ItemValue}とか$args{ItemValue}->[0]という形で使えれば、に訂正してください。

ちなみにプロトタイプ宣言を試して見たのですが、やはりダメでした。
sub subsub($$\@)としても、$args{ItemValue}は空の配列のままです。
join(',',@_)ってして「ARRAY(0x833b5e4)」とか出てくるのは、一応リファレンスは入っているのですよね?
0312nobodyさん03/09/21 16:15ID:???
>hoge = subsub(ItemCode=>1, ItemText=>'hogehoge', ItemValue=>\@ItemValue);
これなら
$args{'ItemValue'}->[0]
でできない?
0313nobodyさん03/09/21 16:22ID:???
一度、@ItemValueの中身を確認した方がいいかも。
煮詰まったときはお茶かコーヒーで一服どーぞ。
031430803/09/21 16:38ID:dsdmTr9D
解りました。引数まわりはあれでOKでした。

受け取った後、foreachで内容をチェックしていたのですが、
foreach @$args{ItemValue}では(エラーにはならないけど)×だったのです。
こういう使い方をするには
foreach @{ $args{ItemValue} }と書かなければならないのですね。


>312
>313
アドバイス、ありがとうございました
0315nobodyさん03/09/21 20:51ID:dsdmTr9D
何度も申し訳ありません(^^;

CGI::new()で得たCGIハンドルから、postで与えられたパラメータを全て、名前毎に値を取り出すことは出来るのでしょうか?
……要するに、postで来たデータをgetのクエリー文字列に直したいのです(^^;

ただ、数が多いのとcheckBoxがらみで同じ名前で複数の値があるものがあるので、どうしたものかと考えているところです。
もしご経験のある方がおられましたらアドバイスをお願いします。
0316nobodyさん03/09/21 21:26ID:OKDMwSn3
http://jbbs.shitaraba.com/computer/8727/
史上最大よ!!!
100%来なさい!!!!
0317nobodyさん03/09/21 22:19ID:???
>>315
既に存在するキーならば、\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:???
>>315
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:???
sub function}

{
0321nobodyさん03/09/22 00:03ID:???
なんとなくこれで良さそう。

$str = join('&', map { my $key = $_; map { join('=', $key, $_) } $query->param($_) } $query->param);
■ このスレッドは過去ログ倉庫に格納されています