printにファイルハンドルを渡すことでファイルに出力できる。
その後ろにはリストを指定するのだが、文字列も1つのリスト見なせるので、今回も1つの文字列だけ出力。
Perlの組み込み関数 print の翻訳 - perldoc.jp
print.plで、
#!/usr/bin/perl use strict; # 厳密な文法チェック. # ファイルのオープン my $ret = open(OUT, ">", "test.txt"); # "test.txt"を書き込みモードで開く.(ファイルハンドルはOUT.) if ($ret){ # trueの時. print(OUT, "ABCDE"); # OUTに"ABCDE"を出力. close(OUT); # OUTをクローズ. }
と書いて実行すると、
$ perl print.pl No comma allowed after filehandle at print.pl line 8. $
カンマはいらないと怒られる。
このように括弧もカンマも外してスペースだけにする。
$ perl print.pl $ cat test.txt ABCDE$
このように書き込まれる。
ハンドルを使う時のprintのこの挙動は不思議だ・・・。
Sample/perl/print/print_filehandle_list/src/print at master · bg1bgst333/Sample · GitHub