Perl(Windowsで実行)の質問です。


Perlで外部コマンドを実行した際、その外部コマンドの終了を待たずに、
以降のコードを実行する方法はありますでしょうか。

たとえば、「test.pl」というプログラムに
exec( "notepad.exe" )
と記述し、これを実行した場合、
メモ帳が開くかと思いますが、メモ帳を閉じるまで、
test.pl自体が実行された状態にあります。

希望としては、メモ帳は開いたままだが、test.pl自体は、
終了するという動きにしたいと思っています。

お手数ですがご教授のほどよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2007/01/28 19:22:50
  • 終了:2007/01/28 20:46:37

ベストアンサー

id:seamlessbias No.2

seamlessbias回答回数16ベストアンサー獲得回数32007/01/28 20:19:23

ポイント80pt

system(1, 'notepad.exe');

これで望んだ動きになると思います。

この方法は確かWindows+ActivePerl限定だったかな。

id:noface

いけました!ありがとうございます!

2007/01/28 20:45:02

その他の回答(2件)

id:blueheaven No.1

blueheaven回答回数8ベストアンサー獲得回数12007/01/28 20:02:20

ポイント30pt

exec 関数に代えて system 関数を使ってみてください。

system( "notepad.exe" )

おそらくこれで制御が戻り、望んだ動きになると思います。

id:noface

ご回答ありがとうございます。

確かに、system関数をみるとそのような記述が見受けられますが、、

WindowsXP+ActivePerlで実行すると、メモ帳を閉じるまで後続のコードが実行されない状態です。

ActivePerlの仕様でしょうか?

2007/01/28 20:12:00
id:seamlessbias No.2

seamlessbias回答回数16ベストアンサー獲得回数32007/01/28 20:19:23ここでベストアンサー

ポイント80pt

system(1, 'notepad.exe');

これで望んだ動きになると思います。

この方法は確かWindows+ActivePerl限定だったかな。

id:noface

いけました!ありがとうございます!

2007/01/28 20:45:02
id:flashrod No.3

flashrod回答回数31ベストアンサー獲得回数32007/01/28 20:19:47

ポイント80pt

system("start notepad.exe")

で、どうですか。

id:noface

いけました!ありがとうございます!

2007/01/28 20:45:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません