![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
別カテゴリにて質問を載せてしまったので、再度質問させていただきます。
今現在perlの勉強をしており、あるプログラム(Xとします)を作ろうと考えています。
Xの簡単な内容は、以下の通りです。
1.ファイル(Aとします)を別のテキストファイル(Bとします)を元に作成する→AをBを元に更に編集(作成したものをA'とします)→A''を作成→・・・・・・
2.(Aが作成されるのを待って)Aをあるプログラムにて実行→(A'が作成されるのを待って)A'をあるプログラムにて実行→・・・・・・
1.2.を並行して行う。(何並列にするかは、Xを実行時に決める)
例えば3並列にする場合は、Aを作成、A'を作成、Aを実行→A''を作成、A'''を作成、A'を実行→A''''を作成、A'''''を作成、A''を実行→・・・・・・という具合にしたいと考えています。
以上がXの内容なのですが、この並行して行うというのがなかなかできません。調べてみると、fork、threadなどの方法があるようですが、どうしても上手くいきません。助言をお願いします。可能であれば、簡単なサンプルコードなどを教えていただけたら幸いです。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
どことどこが並列になるか、ちょっとわかりずらいのです。
(というより、順列になっていて並列処理できないようにも見えるのですが)また、その「あるプログラム」とやらの素性もわからないし、「上手くいきません」の内容もわからないので、アドバイスのしようもありません。
Perlで悩んだら、マニュアル(perldoc)を読みましょう。日本語訳もされています。下手な解説書よりよっぽど詳しく書いてあります。
例えば、スレッドについてのチュートリアルがあります。
http://perldoc.jp/docs/perl/5.10.0/perlthrtut.pod
雑に言えば、「Perlの関数を複数同時に実行する仕組み」です。
forkは、雑に言えば「自分自身の分身を作る」ものです。
これはシステムコールを使ったもの(あるいはシミュレートしたもの)なので、どんな風に扱うかは、Unix系OSの解説を探すのがよいでしょう。
その「あるプログラム」がPerlのスクリプトだったら、関数の形にして、スレッドを使って並列処理するのがよいと思います。
その「あるプログラム」が通常の実行ファイルだったら、forkして子プロセス側でexec関数で切り替えるのがよいと思います。
# 私なら、Perlの勉強でなければ、バックグラウンドで実行するようなシェルスクリプトでも書きますけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) エクセルの大きなシートでグラフを見つける 4 2022/07/28 10:07
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(コンピューター・テクノロジー) Power Shellコマンドで作成日時を一括シフトする方法 3 2022/10/21 12:37
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロシージャの戻り値を取得す...
-
PerlとPHPのサーバーへの負担に...
-
Perlソースコードをコンパイル...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 『Call』で呼び出す...
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
VBAでoutlook365が起動しません。
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
ユーザーフォームに最小化・最...
-
VBでグローバル変数を宣言するには
-
'Range'メソッドは失敗しました
-
Excel VBAで、ユーザーフォーム...
-
サブルーチンを認識しません。
-
エクセルVBAでシートモジュール...
-
Excelシート内セル記述の違いに...
-
perl起動方法
-
【vba】フォームに書いてあ...
-
Excel VBA 定義されたプロージ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlソースコードをコンパイル...
-
プロシージャの戻り値を取得す...
-
system関数を使用してJava実行...
-
Perlで環境変数を設定するには
-
Perlのexitについて
-
Windows版Perlの標準入力&標準...
-
perl/tkを使って作ったGUIを実...
-
-i -e "s|^.|ok|" ./text どこ...
-
Perlでのプログラム実行方法
-
perlで 引数1を別リストの複数...
-
MediBang Paint Proについて
-
cgiを実行可能にするには
-
UNIX SUN Solarisで時間の演算
-
perlでコマンドプロンプト実行
-
テキストファイルに書き込めな...
-
pp (Perl Packager) で require...
-
Perl リスト内指定回数繰り返し
-
ActivePerlで#!/usr/bin/が無効
-
perlからcを呼び出す
-
CGI Chart::Gnuplotの使用法
おすすめ情報