Perl データ型

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垂直タブ
\0nn8進表記で数値を作成する
\xnn16進表記で数値を作成する
\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
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です