STDIN
基本的に、これは、ユーザー入力を取得して構造化された XML ファイルに出力として書き込むという単純なことを達成しようとして、過去 30 分間 Google を使用してプログラミングを行った結果です。以下は私の醜いコードです:
#!/bin/perl
print "img URL = ? ";
$img = <>;
chomp($img);
print "filename = ? ";
$filename = <>;
chomp($filename);
# now write xml with inserted contents to a file:
open (CARDFILE, ">>$filename");
print CARDFILE "<card>\r\n";
print CARDFILE " <img>$img</img>\r\n";
print CARDFILE " <type>$type</type>\r\n";
print CARDFILE " <expansion>$expansion</expansion>\r\n";
print CARDFILE " <keyword>$keyword</keyword>\r\n";
print CARDFILE " <color>$color</color>\r\n";
print CARDFILE " <linkcolor>$linkcolor</linkcolor>\r\n";
print CARDFILE " <kickercolor>$kickercolor</kickercolor>\r\n";
print CARDFILE " <cost>$cost</cost>\r\n";
print CARDFILE " <strength>$strength</strength>\r\n";
print CARDFILE " <health>$health</health>\r\n";
print CARDFILE "</card>";
close (CARDFILE);
私は Perl を初めて使用しますが、コードの重大な問題のいくつかを知ることができました。
2 行を使用して最初に受信し
STDIN
、次にchomp()
それを受信して末尾のキャリッジ リターンを取り除きます。ワンライナーが必要ですか?「here-doc」を使用して複数行を一度にファイルに出力する方法がわかりません。
CARDFILE
ファイル ハンドルがなければ、 here-doc 構文を使用して、すべての文字列をSTDOUT
1 つの print ステートメントで出力できます。ここで、印刷関数を複数回呼び出す必要があります。これら
"\r\n"
の s について、別の関数を使用して、各行の後に手動で挿入することを忘れないようにする方法はありますか?