print関数 - 文字列を出力する
文字列を出力するにはprint関数を使用します。
print "Hello World!";
文字列を変数に代入してからprint関数に渡すこともできます。実際にプログラムを書く場合は、この方法をお勧めします。ひとつの文字列を作成してからprint関数に渡す方法です。
my $message = "Hello World!"; print $message;
print関数にはリストや配列を渡すこともできます。文字列は連結されて出力されます。実際にプログラムを書く場合は、この方法よりも、上記の方法がお勧めです。
# リスト print "Hello", "World", "!"; # 配列 my @strings = ("Hello", "World", "!"); print @strings;
配列を一つの文字列に連結してから出力する方法
よく使うテクニックに、配列の文字列をカンマで連結して、最後に改行をつけて出力するというのがあります。
これはprint関数とjoin関数、文字列連結演算子を使ってきれいに書くことができます。
my @animals = ('Dog', 'Cat', 'Mouse'); print join(',', @animals) . "\n";
print関数のデフォルトの出力先は標準出力
print関数のデフォルトの出力先は、画面、すなわち標準出力です。標準出力については詳しい解説は以下の記事を参考にしてください。
print関数のデフォルトの出力先は、標準出力であり次の二つの書き方の意味は同じです。
print "Hello"; print STDOUT "Hello";
STDOUTの後ろにカンマがないことに注意してください。これは「間接オブジェクト構文」と呼ばれ次の記法と同じ意味を持ちます。
STDOUT->print("Hello");
print関数で出力先を指定する場合は、間接オブジェクト構文を使うことがPerlの慣習となっています。
ファイルハンドルを指定する
print関数の出力先をファイルに変えることもできます。その場合はopen関数でファイルを開いて、ファイルハンドルを作成し、そのファイルハンドルをprint関数で指定します。
my $file = "output.txt"; open my $fh, '>', $file or die "Can't open \"$file\": $!"; print $fh "Hello";
「output.txt」というファイルに「Hello」が出力されます。