数値リテラル - ソースコード上での数値の表現
ソースコード上での数値の表現を数値リテラルといいます。数値リテラルは次の表記が可能です。
整数
クオートやダブルクオートで囲まれていない数字は、Perlによって数値リテラルとして解釈されます。
my $num1 = 1; # 負の数 my $num2 = -1;
桁区切りの表現
数値リテラル中でアンダーバーが含まれていた場合は無視されます。1_000_000 と 1000000 という表記は等価です。アンダーバーは、大きな数値を読みやすくするために使用することができます。
# _ を桁区切りとして利用できる。 my $num3 = 1_000_000;
小数(浮動小数点)
.(ドット)が含まれると、小数として解釈されます。数学での表記と同じです。Perlの少数は倍精度浮動小数点です。
# 小数点 my $num4 = 1.33;
少数の指数表記
少数の数値の表現として指数表記を使うことができます。1.3E3 は、1300 と等価です。1.3E-3 は、0.0013 と等価です。
# 1.3 × 10の3乗 my $num5 = 1.3E3; # 1.3 × 10の-3乗 my $num6 = 1.3E-3;
2進数
0b を先頭につけると2進数で数値を指定できます。
my $num_bin = 0b1111;
8進数
0を先頭につけると8進数で数値を指定できる。
my $num_oct = 0777;
16進数
0x を先頭につけると16進数で数値を指定できる。
my $num_hex = 0xFFFF;
Perlにおける数値とは?
Perlにおける数値については以下で詳しく解説しています。
サンプルプログラム
数値リテラルを使ったサンプルプログラムです。
use strict; use warnings; my $num1 = 1; # 負の数 my $num2 = -1; # _ を桁区切りとして利用できる。 my $num3 = 1_000_000; # 小数 my $num4 = 1.33; # 少数の指数表記 1.3 × 10の3乗 my $num5 = 1.3E3; # 1.3 × 10の-3乗 my $num6 = 1.3E-3; print "\$num1 = $num1\n"; print "\$num2 = $num2\n"; print "\$num3 = $num3\n"; print "\$num4 = $num4\n"; print "\$num5 = $num5\n"; print "\$num6 = $num6\n";