1

HTML レポートを生成する perl コードがあります。プログラムの実行終了後、htmlファイルブラウザを起動したいです。

for (i<0; $i<$#files; $i++) {

   if (condition is met) {

       &sub_pass(prints to html file)

   }
   else {
       &sub_fail(prints to html file)
   }

 }

  my @url_report = "C://path/to/htmlfile/";
  system("explorer @url_report");

しかし、これはhtmlファイルを起動しません。for ループの前に System 関数を呼び出すと、ファイルが正常に開かれました。理由や解決策、どうすればそれを機能させることができますか?

4

3 に答える 3

4

explorerは Windows プログラムであり、使用するパス区切り文字について Perl ほど寛大ではありません。つまり、バックスラッシュを使用する必要があります。

my $url_report = "C:\\path\\to\\htmlfile\\";
system("explorer $url_report");
于 2013-06-17T21:19:16.460 に答える
0
"C://Users/path/output.html/"

する必要があります

"C:\\Users\\path\\output.html"

以下を受け入れることは可能ですがexplorer(カーネルが受け入れているため):

"C:/Users/path/output.html"

ユーザーが選択したブラウザを使用するとさらに良いでしょう:

my $url_report = "C:\\Users\\path\\output.html";
system(qq{start "" "$url_report"});
于 2013-06-17T23:09:56.543 に答える