アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下を実行するとサブルーチン(&main)の出力データ(html)が「1」という拡張子無しのファイル名で出力されます。

{
local *STDOUT;
open STDOUT, '>', &main;
main(1);
close *STDOUT;
}

また、以下のように組むと「1」と「cgi.html」の2つが出力されます。

{
local *STDOUT;
open(STDOUT, '>', 'cgi.html');
open STDOUT, '>', &main;
main(1);
close *STDOUT;
}

ファイルを1つ(cgi.htmlだけ)出力する方法御存知方いらっしゃいましたら伝授願います。

A 回答 (1件)

open STDOUT, '>', &main;


は何を意図しているのですか?

「sub main を実行した戻り値をファイル名として書き出しモードでオープンする」
という命令になっていますから、sub main が 1を返していたら
前者は、「1」という拡張子無しのファイルが作られるのが「書いてある通りの正常な動作]ですし、
後者は、2回openを実行しているので、cgi.htmlと1が作られるのが「書いてある通りの正常な動作」です。

目的の1つだけにする方法は、当然「目的のファイルだけopenする」です。
ですが、「open STDOUT, '>', &main」の意図がわからないので、全体としてどう修正するべきか、についてはわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!