[Perl][PHP]絵文字の変数を使う

Perlでは、use utf8;を宣言することで、ソースコードのコメント・文字列以外の部分に、UTF-8文字列を含めることができる。
UTF-8文字列には、通常プログラムを書く際に用いるASCII文字列(いわゆる半角英数字+半角記号)に加え、日本語の文字列や、絵文字まで含まれる。
以下のPerlプログラムは、正常に動作する。

#!/usr/bin/perl
use v5.12;
use warnings;
use utf8;
use Encode;
my $neko = 'cat';
my $猫 = 'cat';
$🐱 = 'cat';
# my $🐱 = 'cat'; だとCan't use global $🐱 in "my" というエラーになる
say $neko;
say $猫;
say encode('utf-8', $🐱);
# say $🐱; だと Wide character in print というエラーになる

ちなみに、PHPの場合:

<?php
$🐱 = 'cat';
echo $🐱, PHP_EOL;

PHPだと、設定でUTF-8を有効にしていれば、特に問題なく動く。
Perlの方は、バグなのか仕様なのか分からないけど、絵文字を使用すると予測不能な動きをする。

コメントを残す

コメントを残す