【モダン推奨】Perlについての質問箱 50箱目

レス数が1000を超えています。これ以上書き込みはできません。
2012/01/21(土) 10:56:39.03
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )

回答する際はモダンな方法でお願いします
(例 jcode.plではなくEncodeモジュールを使った方法)
理由はもう2012年です。いい加減2000年以前の方法はやめましょう。
最新のPerlを使うほうがかっこいいです。
いつまで勉強しないつもりですか?
過去にとらわれるのはもうやめです。進歩しませんよ。

このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。

http://www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2

▼ 前スレ
Perlについての質問箱 49箱目
http://toro.2ch.net/test/read.cgi/tech/1319953460/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り


2021/05/04(火) 07:28:36.10ID:2rafzDNd
ありがとう。たまたま Perl のソースコードをダウンロードしてあるから
INSTALL を読んでみたら (いや、先に読んどけという話だが)
C コンパイラがサポートしてなくても use64bitint というオプションを使えば
整数のサイズが 64 ビットになるらしい。
Debian のパッケージでもこれを使ってるようだ。

C コンパイラの仕様は Config モジュールで得られるから
それを使って環境に合わせた処理が可能になる場合もあるが
Linux の flock 構造体はメンバの順番すら保証されてないようだから無理そう。
2021/05/04(火) 11:47:57.60ID:2rafzDNd
間違えた。「C コンパイラが」じゃなくて「CPU が」だ。
Configure を見た限りでは、8 バイト整数の型として採用する優先順位は
int, long, long long, int64_t の順で
8 バイトの型が無ければ Configure が失敗するようだ。
あっても CPU が対応してなくてライブラリで実現してるような環境だと
速度のためにあえて使わないという選択もあるかと思うが
long が 8 バイトだと強制的に使わされるようだ。
試せる環境が無いから勘違いしてるかもしれないが。
969デフォルトの名無しさん
垢版 |
2021/05/04(火) 16:45:05.36ID:xGoTe+aq
さいですか
2021/05/04(火) 16:56:22.60ID:1LbVAR3E
きりんです
2021/05/04(火) 16:58:56.75ID:siU8Ev75
なんできりんなんだよ
そこはラクダだろ
2021/05/04(火) 17:08:17.38ID:FheU4VJA
でも象さんのほうがもっと好きです
2021/05/05(水) 15:08:24.73ID:CxAIF4J7
テーブルがあってインデックスで取り扱いたい
でもテーブルを作る時にカウンタとか意識したくない

配列なら
push @table, $data;
で済むけど、ハッシュにしたい
$table[$i]->data1 = $data1;
あるいは
$table->[$i]->data1 = $data1;

そんなことできたっけ
2021/05/05(水) 15:53:07.29ID:zZpLK+nt
日本語でおk
2021/05/05(水) 16:00:54.87ID:CxAIF4J7
全部一度に判ってるなら、無名ハッシュをpushすればいいんだけど
ちょびちょび追加していきたい
976デフォルトの名無しさん
垢版 |
2021/05/06(木) 21:44:26.70ID:ajjDZVcw
君が何をしたいのかよくわからない。
2021/05/06(木) 21:49:53.54ID:WUloT9c9
->data1は->{data1}の間違い
2021/05/16(日) 14:19:41.36ID:vhU8s59y
pontiffがprintfに見える
2021/05/24(月) 07:52:58.62ID:GjHEXSDD
親の方は無限ループにしておいて、適宜forkしてメインの処理をさせる
終わったら子はexitする

という作りで基本的にうまくいってるのに、たまに親が子だと思ってexitしとる
$pid = fork;
if (!$pid) {
exec($command);
exit;
}
この書き方に何か問題が?
980デフォルトの名無しさん
垢版 |
2021/05/24(月) 08:16:28.74ID:INcwcLMt
親プロセスがwait $pid しないとゾンビが蓄積される。
それが続くと0ではなくundefを返すと思う。思うとしか言えないのはperldocに書かれてないから。
defined $pid でundefと0を区別する必要あり。
$!にResource temporarily unavailableのようなエラーが渡されるのでたぶんそう。
なのでちゃんと親プロセスがwait $pidすれば回避できる。
981デフォルトの名無しさん
垢版 |
2021/05/24(月) 08:19:17.40ID:INcwcLMt
訂正。
perldoc -f forkにfork失敗時にundefを返すことが書かれてたわ
2021/05/24(月) 08:22:50.85ID:GjHEXSDD
やっぱり失敗してるんだよな
リトライするように直して試してみてるとこ

どういう理由で失敗するんだ?
activeperl
2021/05/24(月) 13:11:06.83ID:SHUy6n38
windows版のforkもどきだからじゃないの?
984デフォルトの名無しさん
垢版 |
2021/05/24(月) 13:35:57.27ID:INcwcLMt
macOSでも起きるよ
2021/05/24(月) 13:56:03.81ID:GjHEXSDD
今たまたま何かのリソースが全部埋まってて、一瞬待ってくれたら準備できるよ
なんだったら、リトライは隠蔽してくれて良さそうなもんなのに
IO関係はみんなそうなってる
2021/05/24(月) 16:23:07.38ID:mQhym/iw
Perlはかなりの低レイヤーでも使われることがあるからな。
そんな冗長にはできんやろ。

そもそも、ぜんぜんwaitpid()しなかったらいずれ困るんだから、早くエラーになったほうがまし。
2021/05/25(火) 22:10:30.48ID:z8jztsTP
activeperlで
forkで返るpidがマイナスの値なんだけど、
Win32::Process::List で GetProcesses して得られるものとは別物なの?
2021/05/25(火) 22:38:53.48ID:/Axm+K1V
>>987
かもね。
聞く前にドキュメントを読め!

https://docs.activestate.com/activeperl/5.28/perl/perlfork.html
2021/05/25(火) 22:59:31.10ID:z8jztsTP
疑似プロセスIDは、OSのプロセスIDとは別物なのか

要は、forkで分岐したプロセスがまだ生きてるかどうか親から周期的に監視したいんだけど
waitすると親が止まってしまうのでどうしたもんか
2021/05/25(火) 23:54:54.75ID:/Axm+K1V
別スレッドでsystem()ではアカンのか?
2021/05/26(水) 07:17:11.86ID:niBt7hlg
スレッド使ったことない
2021/05/26(水) 08:32:40.50ID:VVGa10VW
perlのスレッドは標準IOやパイプの取り扱いが難しい、というか動きが怪しい
2021/05/26(水) 09:53:00.68ID:+WmbAELr
シェルスクリプトではkill -0 PIDでプロセスが生きてるか調べられる!
そういう用途にはシェルスクリプトを使うべき!
2021/05/26(水) 09:53:29.06ID:+WmbAELr
ユーチューバーのKENTとかも言ってる!
2021/05/26(水) 10:20:29.11ID:niBt7hlg
GetProcessesでpython.exeを見つければだいたい目的は達成するんだけど、
他に使ってる人がいると間違う
996デフォルトの名無しさん
垢版 |
2021/05/26(水) 10:37:03.92ID:VVGa10VW
実行バイナリやシェルコマンドをP言語スクリプトから呼び出すソリューションが最も汎用性が高い
古事記にもそう書いてある
2021/05/26(水) 10:40:21.49ID:+WmbAELr
そこもちゃんとユーチューバーのKANTのサロンで言ってる!って
語尾に付けないと
998デフォルトの名無しさん
垢版 |
2021/05/26(水) 10:48:36.67ID:VVGa10VW
このスレ、消費に9年以上かかってるとか盛者必衰の理をあらわしてて草
2021/05/26(水) 11:00:06.47ID:+WmbAELr
9年か・・・。Perlもずいぶんと長生きだね。

次スレ

【古典的モダン】Perlについての質問箱 51箱目
https://mevius.5ch.net/test/read.cgi/tech/1621994129/
1000デフォルトの名無しさん
垢版 |
2021/05/26(水) 11:35:56.72ID:a7TiWa6C
質問してもええか? ええのんか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 3413日 0時間 39分 17秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況