[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/06 15:43 / Filesize : 269 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 63箱目



1 名前:デフォルトの名無しさん [2014/02/19(水) 23:36:23.29 .net]
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: 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箱目
toro.2ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
toro.2ch.net/test/read.cgi/tech/1385039352/

301 名前:デフォルトの名無しさん mailto:sage [2016/07/16(土) 12:58:34.75 ID:STpjI2h3.net]
インコード
使ったソースは
ウンコード

302 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 01:45:28.71 ID:T2eP0LKz.net]
内部エンコードはperl独特だよね。
扱えれば入力と出力がどんなエンコードだろうが無双出来るけど

303 名前:デフォルトの名無しさん [2016/07/17(日) 09:40:41.84 ID:kAN9hSRv.net]
>>296
「Perl を愛する人にとっては」と前置きするのを忘れてるぞ。

304 名前:デフォルトの名無しさん [2016/07/17(日) 13:59:57.99 ID:D/SlpqZf.net]
まぁperlなんて使い物にならないでしょ

use utf8;付けたらそれまで文字化けしなかったUTF8の文字列が文字化けしたし

305 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 14:42:10.28 ID:F+fhoGjl.net]
なにその理論(笑)

まぁ使いにくいのは異論ないが

306 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 16:24:12.49 ID:Cv1W2kE4.net]
ではperlじゃないならなにがいいのかな。python?
rubyはパイプ記号が変なところで出てくるからちょっと違和感有り。

307 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 17:57:00.54 ID:PyzTEoPA.net]
= パイプ記号

308 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 17:57:53.58 ID:F+fhoGjl.net]
賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
自分で1からプログラミングしたら壊滅的な状況になると思う。

309 名前:デフォルトの名無しさん mailto:sage [2016/07/18(月) 02:39:59.89 ID:e41bhxXR.net]
でも、かつて壊滅的な状況じゃなかったよね?



310 名前:デフォルトの名無しさん mailto:sage [2016/07/18(月) 03:14:08.10 ID:GZVIgCur.net]
>賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
>自分で1からプログラミングしたら壊滅的な状況になると思う。

意味不明な言動をする気違い。

「賭けてもいいが、腹が痛くなるのを残飯のせいにしてるやつが、
自分で1から料理したら壊滅的な状況になると思う。」

と言ってるのと同等で意味不明。
気違い。

311 名前:デフォルトの名無しさん [2016/07/18(月) 07:46:08.11 ID:C0GpTohk.net]
自分で料理出来るのであれば、残飯なんて最初から食べないよ…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…

312 名前:デフォルトの名無しさん mailto:sage [2016/07/18(月) 08:14:55.04 ID:dOZOPpl8.net]
すくなくとも腹痛を人のせいにしなくてすむんじゃね?

313 名前:デフォルトの名無しさん mailto:sage [2016/07/18(月) 14:09:08.76 ID:UhcVRSnP.net]
高級料理も残せば残飯になるのさ。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。

314 名前:デフォルトの名無しさん mailto:sage [2016/07/19(火) 09:36:50.47 ID:BbD/ZGSl.net]
文字コードが分からないのをPerlのせいにしてるのは馬鹿の上限を突破してるが、
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが

315 名前:デフォルトの名無しさん [2016/07/19(火) 14:33:33.84 ID:kU2ISgr0.net]
どんなに文字コードを理解している人間でも文字をまともに扱えないピログラム言語の前では無力
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである

316 名前:デフォルトの名無しさん mailto:sage [2016/07/19(火) 15:10:05.04 ID:QuuYpuW+.net]
参考までに聞くけど、文字をまともに扱える言語って何?

317 名前:デフォルトの名無しさん mailto:sage [2016/07/19(火) 15:23:05.53 ID:BbD/ZGSl.net]
全行つっこみどころ満載なやつにかまってはいかん

318 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 17:32:04.55 ID:gGnx4FL9.net]
んで俺も文字をまともに扱える言語がなにか気になるわけだが
310とは別人

319 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 19:56:54.60 ID:lrew/2ZZ.net]
文字は知らんけど、
Perlってあらゆる面でPHPより劣ってるよな。



320 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 20:04:27.70 ID:y5BMpkOv.net]
PHPってHTML言語じゃないの?比較の対象にもならないと思うんだが。
rubyに負けてるというならまだわかるけど。

321 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 21:52:53.39 ID:gGnx4FL9.net]
PHPてあんた

322 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 23:37:17.38 ID:E+SEwayU.net]
>>316
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。

どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション

あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。

323 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 23:43:45.09 ID:lrew/2ZZ.net]
>PHPってHTML言語
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。

324 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 23:47:10.52 ID:E5afqhTD.net]
309ではないがC言語。もちろんPerlもだ。
ついでなんで
s/ピログラム言語/プログラム言語/;

325 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 23:55:15.99 ID:gGnx4FL9.net]
Cって純粋なC?
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。

326 名前:デフォルトの名無しさん mailto:sage [2016/07/20(水) 23:58:27.03 ID:gGnx4FL9.net]
>>318
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。

基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。

327 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 00:13:43.65 ID:qEfVH42B.net]
普通のunix処理系にperlは入ってるけどPHPは入ってないでしょ。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。

328 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 01:02:15.71 ID:eeWcI0WT.net]
PerlとPHPを比較するって事自体、CGIの定番としてPerlが使われはじめた15〜20年ぐらい前の話だから

329 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 02:09:41.10 ID:vaQfL518.net]
>>322
> その機能'(笑)はわざわざ書かなくてはならないことなの?

わざわざ書かないとわからないでしょ?w

これ以外に何が必要なんだい?
言ってみ。



330 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 02:18:26.64 ID:QEbE4SDT.net]
>>321
お前のいう文字は文字列のことか?

331 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 09:47:01.78 ID:oSsee0hG.net]
質問者が言う文字だ
質問じゃなくて子供の八つ当たりに見えたが

332 名前:デフォルトの名無しさん [2016/07/21(木) 10:12:11.24 ID:wN4yZ2B5.net]
普通のunix処理系wwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww

こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww

333 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 14:22:48.08 ID:+jQ9eKqj.net]
perl-5.24.0.tar.gz 開いて見てみたけど
ソースはC言語で書かれているんだよね

作った人は「自分で作って下さい」を実行したんだろうね

334 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 00:54:29.43 ID:ak+a/2Hs.net]
文字を扱うのは人間。Perlが扱っているのは文字コードな。

335 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 02:53:58.61 ID:jSbimIDf.net]
>>318
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ

336 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 03:14:36.53 ID:7iYsigKa.net]
> post/getがよしなにスーパーグローバル変数(笑)に入ったり
それは10年以上前の話だよw
知識止まってんなぁ。

337 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 03:31:19.54 ID:jSbimIDf.net]
>>332
お前の使ってるナウ(笑)なPHPはquerystringに値いれてもvar_dump($_GET)するとnullなの?
言語って10年経とうが根本的な部分はそうそう変わんないだぜ

338 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 04:41:07.53 ID:7iYsigKa.net]
>>333
Perlでは グローバル変数$ENVの$ENV{'QUERY_STRING'} に
querystringが入るけど、それと何が違うん?

339 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 09:01:23.54 ID:jSbimIDf.net]
>>334
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。



340 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 09:13:02.54 ID:7iYsigKa.net]
>>335
え?「思いつかない」ってだけ?w

341 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 09:14:42.73 ID:DCfhc9fh.net]
PHPの話してる時点でズレてるとは思わんのかね

342 名前:デフォルトの名無しさん [2016/07/22(金) 13:21:21.28 ID:9lWfzFCE.net]
いきなりなんの前触れもなかったし、何言ってんだ?と思ったら、PHPのdisりかよ。
知らんがな…

343 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 14:07:48.50 ID:jisYPSD0.net]
>セットしてるだけ
だけw

344 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 14:50:50.79 ID:jisYPSD0.net]
言い訳が苦しくなってくると、最後に「だけ」を付加するPerl厨
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨

ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明

どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ

345 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 19:55:10.85 ID:d984b3j7j]
Perlと同程度に時代遅れなPHPを出してくる辺りが面白い。
2chという時代遅れな掲示板に、これからも、ずっと変わらずに居て、PHPを推し続けるのだろうな。

346 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 22:02:06.14 ID:ZdAo90QB.net]
今時仕事にも趣味にも役に立たないPHP選ぶバカはいないだろ

347 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 23:10:31.36 ID:jSbimIDf.net]
>>336
php以外の該当する言語を一つあげるだけで完全に論破できるチャンスだよ!

348 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 23:38:00.41 ID:SRU6z2ZT.net]
はいはい。犯罪者予備軍ね。NGにしときますわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。

349 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 01:01:50.42 ID:tWjtYIW6.net]
>>343
逆だろ?

PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。

PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?



350 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 02:01:49.49 ID:bOUqJlZz.net]
そろそろ邪魔くさくなったから消えてほしい
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね

351 名前:デフォルトの名無しさん [2016/07/23(土) 02:30:45.09 ID:Z+5onCph.net]
嫌なら見なければいいのに
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。

352 名前:デフォルトの名無しさん [2016/07/23(土) 08:35:47.91 ID:rC+TU0A1.net]
他プロセスでファイルをopenしているときにそのファイルをrenameしようとすると
renameできないみたいだけどうまくrenameする方法は?

353 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 10:06:58.15 ID:I+uJVTmO.net]
close

354 名前:デフォルトの名無しさん [2016/07/23(土) 11:14:44.62 ID:rC+TU0A1.net]
>>349
それだとopenとcloseする間にrenameが割り込むとだめ

そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロ

355 名前:Zスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
[]
[ここ壊れてます]

356 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 11:20:06.22 ID:I+uJVTmO.net]
前提条件が変わってますけど

357 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 15:21:23.54 ID:bOUqJlZz.net]
他のプロセスってなに?
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる

358 名前:デフォルトの名無しさん [2016/07/23(土) 19:27:38.24 ID:IQFGkMCr.net]
後方参照で教えていただきたいことがあります。
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となってしまいます。

359 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 19:32:51.24 ID:sc8oJJPG.net]
シェルスクリプトと同じで、{} で変数名を明治する。
/${1}${2}1${4}${5}/



360 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 19:41:00.25 ID:IQFGkMCr.net]
>>354
出来ました!!
{}で囲むのは思いつかなかったです。

361 名前:デフォルトの名無しさん [2016/07/23(土) 20:22:22.12 ID:rC+TU0A1.net]
>>352
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました

362 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 20:22:25.35 ID:erGYoQ8z.net]
スクリプトを動かすときは、「動きますように」と昭和する。

363 名前:デフォルトの名無しさん [2016/07/23(土) 20:41:29.11 ID:KzTkH9Ph.net]
自分で考えているというのは大変良いことだと思うけど、聞きたいことがあるなら
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。

364 名前:デフォルトの名無しさん [2016/07/23(土) 22:25:30.57 ID:rC+TU0A1.net]
a

365 名前:デフォルトの名無しさん [2016/07/23(土) 22:36:22.09 ID:rC+TU0A1.net]
なんか書き込こもうとするとエラーが出て書き込めないわ

366 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 22:48:53.55 ID:rC+TU0A1.net]
ようするに
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);


てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと

367 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 22:51:17.71 ID:rC+TU0A1.net]
同時実行って言ったけど先にてすと1の方を起動して5秒以内にてすと2を起動です

368 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 23:18:44.54 ID:eYAwBGPh.net]
他のプロセスが開いているファイルを、更新できるわけないだろ

2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない

369 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 23:40:01.25 ID:sc8oJJPG.net]
>他のプロセスが開いているファイルを、更新できるわけないだろ

何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ 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



370 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 23:51:16.68 ID:tWjtYIW6.net]
>>364
更新 ”できないようにする" から
ロックなんだよ。アホかw

371 名前:デフォルトの名無しさん mailto:sage [2016/07/23(土) 23:55:37.22 ID:sc8oJJPG.net]
>>365
ん?
(デフォの状態では)更新出来るから、
(更新出来ないようにするための)ファイルロックなぞの方法が開発されたんじゃねーの?

ってレスだったんだが、、、

372 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 00:40:44.17 ID:9mJaMPLw.net]
更新できるのは、同一プロセス内のマルチスレッドだろ

だから、マルチスレッド・プログラミングは難しい

373 名前:デフォルトの名無しさん [2016/07/24(日) 01:05:08.31 ID:IyAH6Xir.net]
ファイイルロックのモードは2より5のノンブロッキングの方が軽いですか?

374 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 01:16:29.25 ID:p8SJSbCV.net]
>>368
軽いかどうかで決めるんじゃない。
それが必要かどうかで考えろ。

ホント頭が悪いやつは、軽いかどうかの基準しか
持ち合わせてないんだよな。

375 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 02:10:22.95 ID:8SIezcUV.net]
上の2行は頭いいように見えたが
下の2行でホントに頭が悪い人だと思った。
誹謗癖はやめようね。嫌われるよ。というかすでに嫌われてると思うけど。

376 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 02:12:06.72 ID:p8SJSbCV.net]
>>370
正しいのか間違っているのかをいえよ。

377 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 03:52:51.83 ID:9mJaMPLw.net]
ノンブロッキングは、Node.js などが並行処理で、リクエストを受け付ける場合に使う。
こういうのは、プロ中のプロが使うもので、プログラムも順序通りには進まないから、
プログラミングが極めて難しい(イベントドリブン)

初心者は、ブロッキングを使え。
プログラムは一本道で、順序通りに進む

378 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 04:07:39.30 ID:p8SJSbCV.net]
※ただしマルチタスクOSじゃない場合に限る

379 名前:355 [2016/07/24(日) 10:28:35.84 ID:K5Ja97DP.net]
>>361
少なくとも Linux では問題なく rename できるよ。
rename できないというのはシステムコールのマニュアルに書いてあるの?
テストのやり方に問題は無かったの? こんなふうに同期させた方がいいと思うんだけど。

https://ideone.com/639PgP



380 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 22:44:38.60 ID:IyAH6Xir.net]
このようにflockをネストするのは問題ありますか?

open(IN, "< $datafile");
flock(IN, 1);

open(IN2, "< $datafile2");
flock(IN2, 1);
close(IN2);

close(IN);

381 名前:デフォルトの名無しさん [2016/07/25(月) 18:20:04.46 ID:tVy4ghQr.net]
>>374
windows環境だけどopen中のファイルのrenameはできなかった

例えばtestディレクトリがあって、プロセスAでtestディレクトリにあるファイルのrenameやファイルの作成、
プロセスBでtestディレクトリを削除するとした場合
testディレクトリにファイルが残っているとrmdirが成功しないのでtestディレクトリを削除できない
unlinkでtestディレクトリのファイルを全て削除してからtestディレクトリを削除しようとしても
その間にプロセスAでファイルが作成された場合ディレクトリを削除できない
だからディレクトリそのものをロックしたいっていうこと

382 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 08:16:09.27 ID:Yl3q3y9J.net]
>>375
問題ない

383 名前:デフォルトの名無しさん [2016/07/26(火) 13:18:10.17 ID:0CGOQrnU.net]
>>376
そういうことを先に書いてくれないと……
そうか、Windows ではできないのか……
プロセスAの処理が終わるまでプロセスBを待たせておきたいということなら
普通に mkdir でどうでしょう。可搬性も高い排他制御の定番です。

384 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 13:54:47.54 ID:M5KaPrwS.net]
>>376
File::Path -> remove_tree

search.cpan.org/~riche/File-Path-2.12/lib/File/Path.pm

385 名前:デフォルトの名無しさん [2016/07/26(火) 18:01:31.91 ID:0CGOQrnU.net]
何が目的でそのための何をしている状況なのかというのがいまだに理解できないんだけど、
そもそもそんな状況にしないやり方を考えた方がいいのかもしれない。
どうしても排他制御が必要なら例えばデータベースを使うというのは Windows でも出きると思う。
Windows のことは知らないからこれ以上はお役に立てそうに無い。

386 名前:デフォルトの名無しさん [2016/07/27(水) 02:23:44.17 ID:8IadtePG.net]
簡単に言うとディレクトリをmkdirで削除したいけど
削除しようとしている間にディレクトリ内にファイルを作られるとmkdirできなくて削除できないので
ディレクトリ内にファイル作成もディレクトリ内のファイル読み込みも禁止にしたかったってこと

387 名前:デフォルトの名無しさん [2016/07/27(水) 02:26:13.90 ID:8IadtePG.net]
mkdirじゃなくてrmdirだ

388 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 08:10:16.74 ID:yPkdt5ig.net]
任意のプロセスがアクセスできるディレクトリを削除したいという要求自体が間違っている

389 名前:デフォルトの名無しさん [2016/07/27(水) 08:32:01.24 ID:8IadtePG.net]
>>383
bbsディレクトリの中に各掲示板ごとのディレクトリがあって、さらにその中にログファイルや掲示板設定ファイルがある
削除したい掲示板は各掲示板のディレクトリごとに削除するしかないのでどうしても任意のプロセスがアクセスできる
ディレクトリを削除するしかない

test1掲示板の場合
ファイルはbbs/test1/logfile.datとbbs/test1/settei.datがあって
掲示板を削除する場合はまずこの2つのファイルを削除してtest1ディレクトリを削除するということです



390 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 09:49:12.77 ID:uNHlpX2c.net]
その掲示板とやらのディレクトリは本当に、自分のプロセスだけでなく任意のプロセスからもアクセスできるのか?

であれば、ディレクトリのパーミッションが間違っている。自分のプロセス以外のアクセスを禁止せよ。

自分のプロセスしかアクセスできない前提であれば、好きなように自分で排他制御を行えばよい。例えば>>378のように。

391 名前:デフォルトの名無しさん [2016/07/27(水) 15:57:37.43 ID:8IadtePG.net]
>>385
普通の掲示板やで
普通掲示板は誰でも観覧と書き込みができるので任意のプロセスからでも読み書きできる
それとディレクトリの削除はブラウザからperlで書いたcgiを起動して削除するので
パーミッションでのオーナーとかの判別はできないんや

392 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 16:17:33.22 ID:uNHlpX2c.net]
掲示板のcgiが動いてるプロセスは掲示板を閲覧しているユーザとは関係なかろうが。
これ以上はperlの話ではなく、そのcgi固有の話だ。
ここでやる話ではない。

393 名前:デフォルトの名無しさん mailto:age [2016/07/29(金) 21:21:45.34 ID:kdSSWeOo.net]
my(@aaa);
@aaa = sort {$b <=> $a} @aaa;

このとき$a,$bをmy($a,$b)やlocal($a,$b);と宣言するとエラーになります
$a,$bはどのように宣言すればいいんですか?

394 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:20:02.88 ID:lqBNaMPB.net]
aとbはあらかじめ用意された特殊変数。
特殊変数は全部グローバル変数

395 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:48:59.27 ID:pBzYHnSl.net]
>>381
他のプロセスに使われる前にディレクトリ名をランダムな名前に変更
するとよい。変更後に rmdir する。

396 名前:デフォルトの名無しさん [2016/07/30(土) 08:47:55.59 ID:k05zeajW.net]
1:投稿ファイルをロックして書き込み
2:投稿数ファイルをロックして書き込み

1の排他ロックが成功して2の排他ロックが失敗してタイムアウトになり書き込みできなかった場合
投稿数が実際の投稿より少なくなりが整合性がとれなくなる
この場合下記のようにまとめてロックするのが普通?

まとめ排他ロック
1の処理
2の処理
ロック解除

397 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 09:56:42.41 ID:0Jkia02i.net]
>>391
そういう場合はまとめた単位でロックを取ることが多い
あるいはロールバックできるようにするしかないけど、それはたいてい難しい

398 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:21:12.12 ID:9W15s1XM.net]
1:投稿ファイルをロック
2:投稿数ファイルをロック
3:投稿ファイルを書き込み
4:投稿数ファイルを書き込み
5:投稿ファイルをアンロック
6:投稿数ファイルをアンロック

399 名前:デフォルトの名無しさん [2016/07/31(日) 14:54:33.71 ID:V3GimjB6.net]
PostgreSQLのTIMESTAMP形式の文字列を秒数(Perlのtime関数で取得したような状態)に直す関数教えて



400 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 23:49:48.17 ID:C1WIu1+e.net]
use DateTime::Format::Pg;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<269KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef