管理人は Perl もよく使うので、小技集をちょっと。
複数行をコメントにしたい場合には =pod を使って、次のように書きます。
=pod これはコメント。 =cut
複数行をそのままの形で、文字列として扱うには、ヒアドキュメントを使用します。
my $string = <<EOF; これは、ヒアドキュメントの 内容です。 EOF
EOF の部分は、対応していれば EOF に限らず、ABC など何でも OK です。
<< の右側にある EOF を "EOF" または 'EOF' とすることも可能です。
EOF または "EOF" では、ヒアドキュメントの中の変数が展開されます。逆に 'EOF' とすると、変数が展開されません。
日本語の文字列のマッチを使おうとしたら、"ソ"などの文字で引っかかって悲しい思いをした、などの対策としては、Perl の内部処理として utf8 を使うようにする必要があります。
いにしえの JCode は、もはや、さすがに古くなってしまったので、Encode 系のモジュールの使い方として、次のようにすると簡単、というメモを作ってみました。
・Windows では、プラットフォームの標準文字が shiftjis なので、ソースコードは shiftjis で書くのが簡単です。 このとき、Perl 内部の文字列比較などは utf8 で行いたいので、ソースコードの冒頭に次のように書くようにします。 use strict; # お決まりの安全策 use encoding 'shiftjis'; # ソースコード自体は shiftjis で書かれている。 use open IN => ":encoding(shiftjis)"; # Perl 外部からの入力は、shiftjis である。 use open OUT => ":encoding(shiftjis)"; # Perl 外部への出力は、shiftjis である。 use open ":std"; # 標準入出力も上記 IN/OUT に順ずる。 use Encode; # Perl 内部の utf8 と外部の型式間を変換するためのモジュール use Encode::JP; # 上記の日本語補助部分 ・ソースコードを utf8 で書くと言う方法もありますが、そのときには、冒頭に次のように書きます。どちらでもほぼ同じかと。 use strict; # お決まりの安全策 use utf8; # ソースコード自体は utf8 で書かれている。 use open IN => ":encoding(shiftjis)"; # Perl 外部からの入力は、shiftjis である。 use open OUT => ":encoding(shiftjis)"; # Perl 外部への出力は、shiftjis である。 use open ":std"; # 標準入出力も上記 IN/OUT に順ずる。 use Encode; # Perl 内部の utf8 と外部の型式間を変換するためのモジュール use Encode::JP; # 上記の日本語補助部分 ・上記で Eclipse と EPIC の組み合わせの環境でも、エラーが出ずに動作するようです。 ・ファイルをオープンする場合には、次のようにします。 my $OUTPUT = "漢字.txt"; open OUTPUT, encode('shiftjis', "<$OUTPUT"); # encode は、Perl 内部の utf8 型式から、指定の外部型式にエンコードする。 ・Web から読み込んだ euc-jp を内部の utf8 に変換するときには、次のようにします。 my $EucJpContent = $UserAgent->get($url); my $Utf8Content = decode('euc-jp", $EucJpContent); # decode は、外部の指定型式から、Perl 内部の utf8 型式にデコードする。
これで、少し快適になるかと。
もはや Perl では、変数名に日本語を使うことも可能ですが、Eclispe などのデバッガが対応していないので、まだ、ちょっと使えないってところでしょうか。