CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: http://kohada.2ch.net/php/)
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
荒らしはスルー推奨。
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。
www.perl.org/get.html
Download Latest Stable Source (5.18.2)
▼前スレ
Perlについての質問箱 61箱目
http://toro.2ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.2ch.net/test/read.cgi/tech/1385039352/
探検
Perlについての質問箱 63箱目
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/02/19(水) 23:36:23.29305デフォルトの名無しさん
2016/07/18(月) 07:46:08.11ID:C0GpTohk 自分で料理出来るのであれば、残飯なんて最初から食べないよ…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…
306デフォルトの名無しさん
2016/07/18(月) 08:14:55.04ID:dOZOPpl8 すくなくとも腹痛を人のせいにしなくてすむんじゃね?
307デフォルトの名無しさん
2016/07/18(月) 14:09:08.76ID:UhcVRSnP 高級料理も残せば残飯になるのさ。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。
308デフォルトの名無しさん
2016/07/19(火) 09:36:50.47ID:BbD/ZGSl 文字コードが分からないのをPerlのせいにしてるのは馬鹿の上限を突破してるが、
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが
309デフォルトの名無しさん
2016/07/19(火) 14:33:33.84ID:kU2ISgr0 どんなに文字コードを理解している人間でも文字をまともに扱えないピログラム言語の前では無力
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである
310デフォルトの名無しさん
2016/07/19(火) 15:10:05.04ID:QuuYpuW+ 参考までに聞くけど、文字をまともに扱える言語って何?
311デフォルトの名無しさん
2016/07/19(火) 15:23:05.53ID:BbD/ZGSl 全行つっこみどころ満載なやつにかまってはいかん
312デフォルトの名無しさん
2016/07/20(水) 17:32:04.55ID:gGnx4FL9 んで俺も文字をまともに扱える言語がなにか気になるわけだが
310とは別人
310とは別人
313デフォルトの名無しさん
2016/07/20(水) 19:56:54.60ID:lrew/2ZZ 文字は知らんけど、
Perlってあらゆる面でPHPより劣ってるよな。
Perlってあらゆる面でPHPより劣ってるよな。
314デフォルトの名無しさん
2016/07/20(水) 20:04:27.70ID:y5BMpkOv PHPってHTML言語じゃないの?比較の対象にもならないと思うんだが。
rubyに負けてるというならまだわかるけど。
rubyに負けてるというならまだわかるけど。
315デフォルトの名無しさん
2016/07/20(水) 21:52:53.39ID:gGnx4FL9 PHPてあんた
316デフォルトの名無しさん
2016/07/20(水) 23:37:17.38ID:E+SEwayU >>314
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。
どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション
あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。
どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション
あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。
317デフォルトの名無しさん
2016/07/20(水) 23:43:45.09ID:lrew/2ZZ >PHPってHTML言語
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。
318デフォルトの名無しさん
2016/07/20(水) 23:47:10.52ID:E5afqhTD 309ではないがC言語。もちろんPerlもだ。
ついでなんで
s/ピログラム言語/プログラム言語/;
ついでなんで
s/ピログラム言語/プログラム言語/;
319デフォルトの名無しさん
2016/07/20(水) 23:55:15.99ID:gGnx4FL9 Cって純粋なC?
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。
320デフォルトの名無しさん
2016/07/20(水) 23:58:27.03ID:gGnx4FL9 >>316
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。
基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。
基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。
321デフォルトの名無しさん
2016/07/21(木) 00:13:43.65ID:qEfVH42B 普通のunix処理系にperlは入ってるけどPHPは入ってないでしょ。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。
322デフォルトの名無しさん
2016/07/21(木) 01:02:15.71ID:eeWcI0WT PerlとPHPを比較するって事自体、CGIの定番としてPerlが使われはじめた15〜20年ぐらい前の話だから
323デフォルトの名無しさん
2016/07/21(木) 02:09:41.10ID:vaQfL518324デフォルトの名無しさん
2016/07/21(木) 02:18:26.64ID:QEbE4SDT >>319
お前のいう文字は文字列のことか?
お前のいう文字は文字列のことか?
325デフォルトの名無しさん
2016/07/21(木) 09:47:01.78ID:oSsee0hG 質問者が言う文字だ
質問じゃなくて子供の八つ当たりに見えたが
質問じゃなくて子供の八つ当たりに見えたが
326デフォルトの名無しさん
2016/07/21(木) 10:12:11.24ID:wN4yZ2B5 普通のunix処理系wwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww
こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww
こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww
327デフォルトの名無しさん
2016/07/21(木) 14:22:48.08ID:+jQ9eKqj perl-5.24.0.tar.gz 開いて見てみたけど
ソースはC言語で書かれているんだよね
作った人は「自分で作って下さい」を実行したんだろうね
ソースはC言語で書かれているんだよね
作った人は「自分で作って下さい」を実行したんだろうね
328デフォルトの名無しさん
2016/07/22(金) 00:54:29.43ID:ak+a/2Hs 文字を扱うのは人間。Perlが扱っているのは文字コードな。
329デフォルトの名無しさん
2016/07/22(金) 02:53:58.61ID:jSbimIDf >>316
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ
330デフォルトの名無しさん
2016/07/22(金) 03:14:36.53ID:7iYsigKa > post/getがよしなにスーパーグローバル変数(笑)に入ったり
それは10年以上前の話だよw
知識止まってんなぁ。
それは10年以上前の話だよw
知識止まってんなぁ。
331デフォルトの名無しさん
2016/07/22(金) 03:31:19.54ID:jSbimIDf332デフォルトの名無しさん
2016/07/22(金) 04:41:07.53ID:7iYsigKa333デフォルトの名無しさん
2016/07/22(金) 09:01:23.54ID:jSbimIDf >>332
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。
334デフォルトの名無しさん
2016/07/22(金) 09:13:02.54ID:7iYsigKa >>333
え?「思いつかない」ってだけ?w
え?「思いつかない」ってだけ?w
335デフォルトの名無しさん
2016/07/22(金) 09:14:42.73ID:DCfhc9fh PHPの話してる時点でズレてるとは思わんのかね
336デフォルトの名無しさん
2016/07/22(金) 13:21:21.28ID:9lWfzFCE いきなりなんの前触れもなかったし、何言ってんだ?と思ったら、PHPのdisりかよ。
知らんがな…
知らんがな…
337デフォルトの名無しさん
2016/07/22(金) 14:07:48.50ID:jisYPSD0 >セットしてるだけ
だけw
だけw
338デフォルトの名無しさん
2016/07/22(金) 14:50:50.79ID:jisYPSD0 言い訳が苦しくなってくると、最後に「だけ」を付加するPerl厨
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨
ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明
どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨
ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明
どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ
339デフォルトの名無しさん
2016/07/22(金) 22:02:06.14ID:ZdAo90QB 今時仕事にも趣味にも役に立たないPHP選ぶバカはいないだろ
340デフォルトの名無しさん
2016/07/22(金) 23:10:31.36ID:jSbimIDf >>334
php以外の該当する言語を一つあげるだけで完全に論破できるチャンスだよ!
php以外の該当する言語を一つあげるだけで完全に論破できるチャンスだよ!
341デフォルトの名無しさん
2016/07/22(金) 23:38:00.41ID:SRU6z2ZT はいはい。犯罪者予備軍ね。NGにしときますわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。
342デフォルトの名無しさん
2016/07/23(土) 01:01:50.42ID:tWjtYIW6 >>340
逆だろ?
PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。
PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?
逆だろ?
PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。
PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?
343デフォルトの名無しさん
2016/07/23(土) 02:01:49.49ID:bOUqJlZz そろそろ邪魔くさくなったから消えてほしい
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね
344デフォルトの名無しさん
2016/07/23(土) 02:30:45.09ID:Z+5onCph 嫌なら見なければいいのに
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。
345デフォルトの名無しさん
2016/07/23(土) 08:35:47.91ID:rC+TU0A1 他プロセスでファイルをopenしているときにそのファイルをrenameしようとすると
renameできないみたいだけどうまくrenameする方法は?
renameできないみたいだけどうまくrenameする方法は?
346デフォルトの名無しさん
2016/07/23(土) 10:06:58.15ID:I+uJVTmO close
347デフォルトの名無しさん
2016/07/23(土) 11:14:44.62ID:rC+TU0A1 >>346
それだとopenとcloseする間にrenameが割り込むとだめ
そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロセスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
それだとopenとcloseする間にrenameが割り込むとだめ
そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロセスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
348デフォルトの名無しさん
2016/07/23(土) 11:20:06.22ID:I+uJVTmO 前提条件が変わってますけど
349デフォルトの名無しさん
2016/07/23(土) 15:21:23.54ID:bOUqJlZz 他のプロセスってなに?
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる
350デフォルトの名無しさん
2016/07/23(土) 19:27:38.24ID:IQFGkMCr 後方参照で教えていただきたいことがあります。
A 80 90
(空白の部分はタブかスペース)
と書いてあるファイルの80とか90の部分を書き換えたいのです。
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$2$3$4$5/' file で
マッチした部分を参照できるのはわかっているのですが、この場合$3の「80」を「1」にするには
どのような方法をとればよいでしょうか?
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$21$4$5/' file とすると
$21と解釈されるようで結果がA 90となってしまいます。
A 80 90
(空白の部分はタブかスペース)
と書いてあるファイルの80とか90の部分を書き換えたいのです。
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$2$3$4$5/' file で
マッチした部分を参照できるのはわかっているのですが、この場合$3の「80」を「1」にするには
どのような方法をとればよいでしょうか?
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$21$4$5/' file とすると
$21と解釈されるようで結果がA 90となってしまいます。
351デフォルトの名無しさん
2016/07/23(土) 19:32:51.24ID:sc8oJJPG シェルスクリプトと同じで、{} で変数名を明治する。
/${1}${2}1${4}${5}/
/${1}${2}1${4}${5}/
352デフォルトの名無しさん
2016/07/23(土) 19:41:00.25ID:IQFGkMCr353デフォルトの名無しさん
2016/07/23(土) 20:22:22.12ID:rC+TU0A1 >>349
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました
354デフォルトの名無しさん
2016/07/23(土) 20:22:25.35ID:erGYoQ8z スクリプトを動かすときは、「動きますように」と昭和する。
355デフォルトの名無しさん
2016/07/23(土) 20:41:29.11ID:KzTkH9Ph 自分で考えているというのは大変良いことだと思うけど、聞きたいことがあるなら
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。
356デフォルトの名無しさん
2016/07/23(土) 22:25:30.57ID:rC+TU0A1 a
357デフォルトの名無しさん
2016/07/23(土) 22:36:22.09ID:rC+TU0A1 なんか書き込こもうとするとエラーが出て書き込めないわ
358デフォルトの名無しさん
2016/07/23(土) 22:48:53.55ID:rC+TU0A1 ようするに
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);
てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);
てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと
359デフォルトの名無しさん
2016/07/23(土) 22:51:17.71ID:rC+TU0A1 同時実行って言ったけど先にてすと1の方を起動して5秒以内にてすと2を起動です
360デフォルトの名無しさん
2016/07/23(土) 23:18:44.54ID:eYAwBGPh 他のプロセスが開いているファイルを、更新できるわけないだろ
2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない
2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない
361デフォルトの名無しさん
2016/07/23(土) 23:40:01.25ID:sc8oJJPG >他のプロセスが開いているファイルを、更新できるわけないだろ
何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ for i in 1 2 3 4 5 ; do
> perl -le 'open my $f, q{>>}, q{foo.txt} ; print $f q{foo} ; sleep 2' &
> done
$ cat foo.txt
foo
foo
foo
foo
foo
何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ for i in 1 2 3 4 5 ; do
> perl -le 'open my $f, q{>>}, q{foo.txt} ; print $f q{foo} ; sleep 2' &
> done
$ cat foo.txt
foo
foo
foo
foo
foo
362デフォルトの名無しさん
2016/07/23(土) 23:51:16.68ID:tWjtYIW6363デフォルトの名無しさん
2016/07/23(土) 23:55:37.22ID:sc8oJJPG364デフォルトの名無しさん
2016/07/24(日) 00:40:44.17ID:9mJaMPLw 更新できるのは、同一プロセス内のマルチスレッドだろ
だから、マルチスレッド・プログラミングは難しい
だから、マルチスレッド・プログラミングは難しい
365デフォルトの名無しさん
2016/07/24(日) 01:05:08.31ID:IyAH6Xir ファイイルロックのモードは2より5のノンブロッキングの方が軽いですか?
366デフォルトの名無しさん
2016/07/24(日) 01:16:29.25ID:p8SJSbCV367デフォルトの名無しさん
2016/07/24(日) 02:10:22.95ID:8SIezcUV 上の2行は頭いいように見えたが
下の2行でホントに頭が悪い人だと思った。
誹謗癖はやめようね。嫌われるよ。というかすでに嫌われてると思うけど。
下の2行でホントに頭が悪い人だと思った。
誹謗癖はやめようね。嫌われるよ。というかすでに嫌われてると思うけど。
368デフォルトの名無しさん
2016/07/24(日) 02:12:06.72ID:p8SJSbCV >>367
正しいのか間違っているのかをいえよ。
正しいのか間違っているのかをいえよ。
369デフォルトの名無しさん
2016/07/24(日) 03:52:51.83ID:9mJaMPLw ノンブロッキングは、Node.js などが並行処理で、リクエストを受け付ける場合に使う。
こういうのは、プロ中のプロが使うもので、プログラムも順序通りには進まないから、
プログラミングが極めて難しい(イベントドリブン)
初心者は、ブロッキングを使え。
プログラムは一本道で、順序通りに進む
こういうのは、プロ中のプロが使うもので、プログラムも順序通りには進まないから、
プログラミングが極めて難しい(イベントドリブン)
初心者は、ブロッキングを使え。
プログラムは一本道で、順序通りに進む
370デフォルトの名無しさん
2016/07/24(日) 04:07:39.30ID:p8SJSbCV ※ただしマルチタスクOSじゃない場合に限る
371355
2016/07/24(日) 10:28:35.84ID:K5Ja97DP >>358
少なくとも Linux では問題なく rename できるよ。
rename できないというのはシステムコールのマニュアルに書いてあるの?
テストのやり方に問題は無かったの? こんなふうに同期させた方がいいと思うんだけど。
https://ideone.com/639PgP
少なくとも Linux では問題なく rename できるよ。
rename できないというのはシステムコールのマニュアルに書いてあるの?
テストのやり方に問題は無かったの? こんなふうに同期させた方がいいと思うんだけど。
https://ideone.com/639PgP
372デフォルトの名無しさん
2016/07/24(日) 22:44:38.60ID:IyAH6Xir このようにflockをネストするのは問題ありますか?
open(IN, "< $datafile");
flock(IN, 1);
open(IN2, "< $datafile2");
flock(IN2, 1);
close(IN2);
close(IN);
open(IN, "< $datafile");
flock(IN, 1);
open(IN2, "< $datafile2");
flock(IN2, 1);
close(IN2);
close(IN);
373デフォルトの名無しさん
2016/07/25(月) 18:20:04.46ID:tVy4ghQr >>371
windows環境だけどopen中のファイルのrenameはできなかった
例えばtestディレクトリがあって、プロセスAでtestディレクトリにあるファイルのrenameやファイルの作成、
プロセスBでtestディレクトリを削除するとした場合
testディレクトリにファイルが残っているとrmdirが成功しないのでtestディレクトリを削除できない
unlinkでtestディレクトリのファイルを全て削除してからtestディレクトリを削除しようとしても
その間にプロセスAでファイルが作成された場合ディレクトリを削除できない
だからディレクトリそのものをロックしたいっていうこと
windows環境だけどopen中のファイルのrenameはできなかった
例えばtestディレクトリがあって、プロセスAでtestディレクトリにあるファイルのrenameやファイルの作成、
プロセスBでtestディレクトリを削除するとした場合
testディレクトリにファイルが残っているとrmdirが成功しないのでtestディレクトリを削除できない
unlinkでtestディレクトリのファイルを全て削除してからtestディレクトリを削除しようとしても
その間にプロセスAでファイルが作成された場合ディレクトリを削除できない
だからディレクトリそのものをロックしたいっていうこと
374デフォルトの名無しさん
2016/07/26(火) 08:16:09.27ID:Yl3q3y9J >>372
問題ない
問題ない
375デフォルトの名無しさん
2016/07/26(火) 13:18:10.17ID:0CGOQrnU >>373
そういうことを先に書いてくれないと……
そうか、Windows ではできないのか……
プロセスAの処理が終わるまでプロセスBを待たせておきたいということなら
普通に mkdir でどうでしょう。可搬性も高い排他制御の定番です。
そういうことを先に書いてくれないと……
そうか、Windows ではできないのか……
プロセスAの処理が終わるまでプロセスBを待たせておきたいということなら
普通に mkdir でどうでしょう。可搬性も高い排他制御の定番です。
376デフォルトの名無しさん
2016/07/26(火) 13:54:47.54ID:M5KaPrwS377デフォルトの名無しさん
2016/07/26(火) 18:01:31.91ID:0CGOQrnU 何が目的でそのための何をしている状況なのかというのがいまだに理解できないんだけど、
そもそもそんな状況にしないやり方を考えた方がいいのかもしれない。
どうしても排他制御が必要なら例えばデータベースを使うというのは Windows でも出きると思う。
Windows のことは知らないからこれ以上はお役に立てそうに無い。
そもそもそんな状況にしないやり方を考えた方がいいのかもしれない。
どうしても排他制御が必要なら例えばデータベースを使うというのは Windows でも出きると思う。
Windows のことは知らないからこれ以上はお役に立てそうに無い。
378デフォルトの名無しさん
2016/07/27(水) 02:23:44.17ID:8IadtePG 簡単に言うとディレクトリをmkdirで削除したいけど
削除しようとしている間にディレクトリ内にファイルを作られるとmkdirできなくて削除できないので
ディレクトリ内にファイル作成もディレクトリ内のファイル読み込みも禁止にしたかったってこと
削除しようとしている間にディレクトリ内にファイルを作られるとmkdirできなくて削除できないので
ディレクトリ内にファイル作成もディレクトリ内のファイル読み込みも禁止にしたかったってこと
379デフォルトの名無しさん
2016/07/27(水) 02:26:13.90ID:8IadtePG mkdirじゃなくてrmdirだ
380デフォルトの名無しさん
2016/07/27(水) 08:10:16.74ID:yPkdt5ig 任意のプロセスがアクセスできるディレクトリを削除したいという要求自体が間違っている
381デフォルトの名無しさん
2016/07/27(水) 08:32:01.24ID:8IadtePG >>380
bbsディレクトリの中に各掲示板ごとのディレクトリがあって、さらにその中にログファイルや掲示板設定ファイルがある
削除したい掲示板は各掲示板のディレクトリごとに削除するしかないのでどうしても任意のプロセスがアクセスできる
ディレクトリを削除するしかない
test1掲示板の場合
ファイルはbbs/test1/logfile.datとbbs/test1/settei.datがあって
掲示板を削除する場合はまずこの2つのファイルを削除してtest1ディレクトリを削除するということです
bbsディレクトリの中に各掲示板ごとのディレクトリがあって、さらにその中にログファイルや掲示板設定ファイルがある
削除したい掲示板は各掲示板のディレクトリごとに削除するしかないのでどうしても任意のプロセスがアクセスできる
ディレクトリを削除するしかない
test1掲示板の場合
ファイルはbbs/test1/logfile.datとbbs/test1/settei.datがあって
掲示板を削除する場合はまずこの2つのファイルを削除してtest1ディレクトリを削除するということです
382デフォルトの名無しさん
2016/07/27(水) 09:49:12.77ID:uNHlpX2c その掲示板とやらのディレクトリは本当に、自分のプロセスだけでなく任意のプロセスからもアクセスできるのか?
であれば、ディレクトリのパーミッションが間違っている。自分のプロセス以外のアクセスを禁止せよ。
自分のプロセスしかアクセスできない前提であれば、好きなように自分で排他制御を行えばよい。例えば>>375のように。
であれば、ディレクトリのパーミッションが間違っている。自分のプロセス以外のアクセスを禁止せよ。
自分のプロセスしかアクセスできない前提であれば、好きなように自分で排他制御を行えばよい。例えば>>375のように。
383デフォルトの名無しさん
2016/07/27(水) 15:57:37.43ID:8IadtePG >>382
普通の掲示板やで
普通掲示板は誰でも観覧と書き込みができるので任意のプロセスからでも読み書きできる
それとディレクトリの削除はブラウザからperlで書いたcgiを起動して削除するので
パーミッションでのオーナーとかの判別はできないんや
普通の掲示板やで
普通掲示板は誰でも観覧と書き込みができるので任意のプロセスからでも読み書きできる
それとディレクトリの削除はブラウザからperlで書いたcgiを起動して削除するので
パーミッションでのオーナーとかの判別はできないんや
384デフォルトの名無しさん
2016/07/27(水) 16:17:33.22ID:uNHlpX2c 掲示板のcgiが動いてるプロセスは掲示板を閲覧しているユーザとは関係なかろうが。
これ以上はperlの話ではなく、そのcgi固有の話だ。
ここでやる話ではない。
これ以上はperlの話ではなく、そのcgi固有の話だ。
ここでやる話ではない。
385デフォルトの名無しさん
2016/07/29(金) 21:21:45.34ID:kdSSWeOo my(@aaa);
@aaa = sort {$b <=> $a} @aaa;
このとき$a,$bをmy($a,$b)やlocal($a,$b);と宣言するとエラーになります
$a,$bはどのように宣言すればいいんですか?
@aaa = sort {$b <=> $a} @aaa;
このとき$a,$bをmy($a,$b)やlocal($a,$b);と宣言するとエラーになります
$a,$bはどのように宣言すればいいんですか?
386デフォルトの名無しさん
2016/07/29(金) 22:20:02.88ID:lqBNaMPB aとbはあらかじめ用意された特殊変数。
特殊変数は全部グローバル変数
特殊変数は全部グローバル変数
387デフォルトの名無しさん
2016/07/30(土) 00:48:59.27ID:pBzYHnSl388デフォルトの名無しさん
2016/07/30(土) 08:47:55.59ID:k05zeajW 1:投稿ファイルをロックして書き込み
2:投稿数ファイルをロックして書き込み
1の排他ロックが成功して2の排他ロックが失敗してタイムアウトになり書き込みできなかった場合
投稿数が実際の投稿より少なくなりが整合性がとれなくなる
この場合下記のようにまとめてロックするのが普通?
まとめ排他ロック
1の処理
2の処理
ロック解除
2:投稿数ファイルをロックして書き込み
1の排他ロックが成功して2の排他ロックが失敗してタイムアウトになり書き込みできなかった場合
投稿数が実際の投稿より少なくなりが整合性がとれなくなる
この場合下記のようにまとめてロックするのが普通?
まとめ排他ロック
1の処理
2の処理
ロック解除
389デフォルトの名無しさん
2016/07/30(土) 09:56:42.41ID:0Jkia02i390デフォルトの名無しさん
2016/07/31(日) 09:21:12.12ID:9W15s1XM 1:投稿ファイルをロック
2:投稿数ファイルをロック
3:投稿ファイルを書き込み
4:投稿数ファイルを書き込み
5:投稿ファイルをアンロック
6:投稿数ファイルをアンロック
2:投稿数ファイルをロック
3:投稿ファイルを書き込み
4:投稿数ファイルを書き込み
5:投稿ファイルをアンロック
6:投稿数ファイルをアンロック
391デフォルトの名無しさん
2016/07/31(日) 14:54:33.71ID:V3GimjB6 PostgreSQLのTIMESTAMP形式の文字列を秒数(Perlのtime関数で取得したような状態)に直す関数教えて
392デフォルトの名無しさん
2016/08/02(火) 23:49:48.17ID:C1WIu1+e use DateTime::Format::Pg;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;
393デフォルトの名無しさん
2016/08/05(金) 00:01:27.27ID:RLQt/Rjs >>390
それだとロックの間に隙間ができる
それだとロックの間に隙間ができる
394デフォルトの名無しさん
2016/08/05(金) 00:02:57.68ID:RLQt/Rjs 実行時間が0.15秒から0.2秒のperlスクリプトは重い部類ですか?
395デフォルトの名無しさん
2016/08/05(金) 00:22:53.93ID:/+BaQz+x396デフォルトの名無しさん
2016/08/05(金) 09:40:54.31ID:rvcc+G4N 1:投稿数ファイルをロック
2:投稿数ファイルを書き込み
3:投稿数ファイルをアンロック
4:投稿ファイルをロック
5:投稿ファイルを書き込み
6:投稿ファイルをアンロック
じゃだめなのかな。
2:投稿数ファイルを書き込み
3:投稿数ファイルをアンロック
4:投稿ファイルをロック
5:投稿ファイルを書き込み
6:投稿ファイルをアンロック
じゃだめなのかな。
397デフォルトの名無しさん
2016/08/05(金) 09:49:56.50ID:iMQ1FKDS それ投稿数と投稿が連動してないやん
ロック
必要な書き込み全部
ロック解除
が普通
ロック
必要な書き込み全部
ロック解除
が普通
398デフォルトの名無しさん
2016/08/05(金) 17:58:59.50ID:rvcc+G4N それは「普通」というより「手抜き」だね。最初はそれでいいと思うけど。
399デフォルトの名無しさん
2016/08/05(金) 21:06:28.92ID:n2C4Ao5J400デフォルトの名無しさん
2016/08/05(金) 21:06:53.73ID:n2C4Ao5J >>396
だめ。それはバグ。
だめ。それはバグ。
401デフォルトの名無しさん
2016/08/06(土) 00:52:14.83ID:aSfsFG4F402デフォルトの名無しさん
2016/08/06(土) 07:58:04.15ID:nmoqGXlF (書き込み時)
1:まとめロックようファイルを作る
2:まとめロック用ファイルを排他ロックする
3:投稿ファイルにを投稿を書き込む
4:投稿数ファイルに投稿数を書き込む
5:まとめロックの解除
(観覧時)
1:まとめロック用ファイルを共有ロックする
2:投稿ファイルを読み込んで表示する
3;投稿数ファイルを読み込んで表示する
4:まとめロックを解除
これが正しい
1:まとめロックようファイルを作る
2:まとめロック用ファイルを排他ロックする
3:投稿ファイルにを投稿を書き込む
4:投稿数ファイルに投稿数を書き込む
5:まとめロックの解除
(観覧時)
1:まとめロック用ファイルを共有ロックする
2:投稿ファイルを読み込んで表示する
3;投稿数ファイルを読み込んで表示する
4:まとめロックを解除
これが正しい
403デフォルトの名無しさん
2016/08/09(火) 01:43:06.25ID:s2zPwIrc >>393
何のために数字が振ってあるのか分かる?
何のために数字が振ってあるのか分かる?
404デフォルトの名無しさん
2016/08/09(火) 02:52:34.66ID:d2ilw35z なんのため?
プロセス間の整合を取るのにプロセス内の順序は全く意味ない数字と思うけど。
うーん、なんのためだろ?教えてくれないかな?
プロセス間の整合を取るのにプロセス内の順序は全く意味ない数字と思うけど。
うーん、なんのためだろ?教えてくれないかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと3カ月… [BFU★]
- 【裁判】山上徹也被告の妹「この人は母のふりをした旧統一教会の信者だと思いました」「でも、母の形をしているから突き放せなかった」 [1ゲットロボ★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★5 [樽悶★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 高市コインまもなく158円 [931948549]
- 【パズドラ】パズル&ドラゴンズ総合雑談スレ🏡【山本大介】
- 【パズドラ】パズル&ドラゴンズ総合雑談スレ🏡【山本大介】
- 日本「中国のレアアースに71%依存してます。2024年のデータです」 ネトウヨ「え?youtube解説と違うんだけど」 [633746646]
- 🍣にゃっはろ🌸~スシろ~🏡
- 【悲報】山上の母親に統一協会を紹介したのは自民党員だった😨 [868050967]
