Perlは弱い型付けの言語であるため、変数で型を指定する必要はありません。Perlインタープリターは、コンテキストに基づいて対応する型を自動的に選択します。
Perlには、スカラー、配列、ハッシュの3つの基本的なデータ型があります。 次にはこれら3つのデータ型を説明します。
番号 | データ型と説明 |
1 | スカラー スカラーは、Perl言語で最も単純なデータ型です。 このデータ型の変数は、数値、文字列、浮動小数点数であることができ、厳密な区別はありません。 使用する場合には、変数名の前に$を追加して、それがスカラーであることを示します。 例えば: $mysecond=”123″; #文字列123 |
2 | 配列 配列変数は文字@で始まり、インデックスは0から始まります。例えば:@arr=(1,2,3) @arr=(1,2,3) |
3 | ハッシュ ハッシュは、key/valueのペアの順序付けられていない集合です。 キーを添え字として使用して、値を取得できます。 ハッシュ変数は文字%で始まります。 %h=(‘a’=>1,’b’=>2); |
目次
数値リテラル
整数
Perlはコンピューターの浮動小数点レジスタに整数を格納するため、実際には浮動小数点数として認められます。
ほとんどのコンピューターでは、浮動小数点レジスタは約16ビットの数値を格納でき、これより長い数値は破棄されます。 整数は、浮動小数点数の特例です。 整数変数と演算:
$x = 12345;
if (1217 + 116 == 1333) {
# 执行代码语句块
# コードブロックを実行します
}
8進数と16進数:8進数は0から始まり、16進数は0xから始まります。 例えば:
$var1 = 047; # 10進数で39に等しい
$var2 = 0x1f; # 10進数で31に等しい
浮動小数点数
浮動小数点データ:1.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03などです。
通常、浮動小数点レジスタは浮動小数点数を精確に格納できないため、エラーが発生します。演算と比較には特に注意してください。 インデックスの範囲は通常-309〜 +308です。
実例
!/usr/bin/perl
$value = 9.01e+21 + 0.01 - 9.01e+21;
print ("最初の値:", $value, "\n");
$value = 9.01e+21 - 9.01e+21 + 0.01;
print ("2番目の値:", $value, "\n");
上記のプログラムを実行した出力結果は次の通りです。
最初の値:0
2番目の値:0.01
文字列
Perlの文字列はスカラーで表され、定義方法はcと非常に似ていますが、Perlにある文字列は \0で終わりません。
Perlの二重引用符と一重引用符の違い:二重引用符は一部のエスケープ文字と変数を解析できますが、一重引用符は解析できず、そのままで出力します。
一重引用符を使用して複数行のテキストを定義できます。次には例を挙げます。
#!/usr/bin/perl
$var='これは
複数行の文字列テキスト
の例です';
print($var);
上記のプログラムを実行した出力結果は次の通りです。
これは
複数行の文字列テキスト
の例です
次のテーブルには、Perl言語で常用のいくつかのエスケープ文字を示します。
エスケープ文字 | 意味 |
\\ | バックスラッシュ |
\’ | 一重引用符 |
\” | 二重引用符 |
\a | ベル |
\b | バックスペース |
\f | フォームフィード |
\n | 改行(ラインフィード) |
\r | キャリッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
\0nn | 8進表記で数値を作成する |
\xnn | 16進表記で数値を作成する |
\cX | 制御文字、xは任意の文字にすることができる |
\u | 次の文字を強制的に大文字にする |
\l | 次の文字を強制的に小文字にする |
\U | すべての文字を強制的に大文字に変換する |
\L | すべての文字を強制的に小文字に変換する |
\Q | \Eまでの単語以外の文字(non-word)にバックスラッシュを追加する |
\E | \L、\U、\Qを終了する |
実例
次には、一重引用符と二重引用符、およびエスケープ文字の使用について具体的な例をご覧ください。
#!/usr/bin/perl
# 改行 \n 二重引用符内にある、有効
$str = "初心者チュートリアル \nwww.ceodata.com";
print "$str\n";
# 改行 \n 一重引用符内にある、無効
$str = '初心者チュートリアル \nwww.ceodata.com';
print "$str\n";
# Rのみが大文字に変換される
$str = "\uceodata";
print "$str\n";
# すべての文字は大文字に変換される
$str = "\Uceodata";
print "$str\n";
# 指定した部分は大文字に変換される
$str = "Welcome to \Uceodata\E.com!";
print "$str\n";
# \Eまでの単語以外の文字(non-word)にバックスラッシュを追加する
$str = "\QWelcome to ceodata's family";
print "$str\n";
上記のプログラムを実行した出力結果は次の通りです。
初心者チュートリアル
www.ceodata.com
初心者チュートリアル \nwww.ceodata.com
Ceodata
CEODATA
Welcome to CEODATA.com!
Welcome\ to\ coedata\'s\ family
コメントを残す