人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

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

●質問者: noface
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:exe Perl test Windows コマンド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● blueheaven
●30ポイント

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

system( "notepad.exe" )

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

◎質問者からの返答

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

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

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

ActivePerlの仕様でしょうか?


2 ● seamlessbias
●80ポイント ベストアンサー

system(1, 'notepad.exe');

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

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

◎質問者からの返答

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


3 ● flashrod
●80ポイント

system("start notepad.exe")

で、どうですか。

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ