文字列と数値の自動変換

使用される演算子の種類によって、その演算子に対象となる値を文字列と判別したり数値と判別したりします。

これはすごい。ちょっと慣れないけれど。


my ($var1, $var2, $var3,  $var4);
#「+」演算子の左辺は文字列の「3」だけど、自動的に数値の「3」と判断し演算
$var1 = "3" + 4;
#「.」演算子の右辺は数値の「4」ですが、自動的に文字列の「4」と判断し演算
$var2 = "3".4;
#「12」までを数値として判断
$var3 = "12ab34" * 5;
#数値として判断できないから「0」
$var4 = "abc" + 4;

print "\"3\" + 4 = $var1\n";
print "\"3\".4 = $var2\n";
print "\"12ab34\" * 5 = $var3\n";
print "\"abc\" + 4 = $var4\n";


結果↓

C:\Perl\src>perl string3.pl
Argument "12ab34" isn't numeric in multiplication (*) at string3.pl line 16.
Argument "abc" isn't numeric in addition (+) at string3.pl line 18.
"3" + 4 = 7
"3".4 = 34
"12ab34" * 5 = 60
"abc" + 4 = 4