Perl-データ型
Perlは緩く型付けされた言語であり、プログラムで使用するときにデータの型を指定する必要はありません。Perlインタープリターは、データ自体のコンテキストに基づいてタイプを選択します。
Perlには、3つの基本的なデータ型があります。スカラー、スカラーの配列、および連想配列とも呼ばれるスカラーのハッシュです。これらのデータ型について少し詳しく説明します。
シニア番号 | タイプと説明 |
---|---|
1 | Scalar スカラーは単純な変数です。それらの前にはドル記号($)が付いています。スカラーは、数値、文字列、または参照のいずれかです。参照は実際には変数のアドレスであり、これについては次の章で説明します。 |
2 | Arrays 配列は、0で始まる数値インデックスでアクセスするスカラーの順序付きリストです。これらの前には「アットマーク」(@)が付いています。 |
3 | Hashes ハッシュは、キーを添え字として使用してアクセスする、順序付けされていないキーと値のペアのセットです。それらの前にはパーセント記号(%)が付いています。 |
数値リテラル
Perlは、すべての数値を符号付き整数または倍精度浮動小数点値として内部に格納します。数値リテラルは、次の浮動小数点形式または整数形式のいずれかで指定されます-
タイプ | 値 |
---|---|
整数 | 1234 |
負の整数 | -100 |
浮動小数点 | 2000年 |
科学的記数法 | 16.12E14 |
16進数 | 0xffff |
オクタル | 0577 |
文字列リテラル
文字列は文字のシーケンスです。これらは通常、一重引用符( ')または二重引用符( ")で区切られた英数字の値であり、一重引用符で囲まれた文字列と二重引用符で囲まれた文字列を使用できるUNIXシェル引用符とほぼ同じように機能します。
二重引用符で囲まれた文字列リテラルでは変数の補間が可能ですが、一重引用符で囲まれた文字列ではできません。バックスラッシュが続く場合は特定の文字があり、特別な意味があり、改行(\ n)やタブ(\ t)のように表すために使用されます。
改行または次のエスケープシーケンスのいずれかを、二重引用符で囲まれた文字列に直接埋め込むことができます-
エスケープシーケンス | 意味 |
---|---|
\\ | バックスラッシュ |
\ ' | 一重引用符 |
\ " | 二重引用符 |
\ a | アラートまたはベル |
\ b | バックスペース |
\ f | フォームフィード |
\ n | 改行 |
\ r | キャリッジリターン |
\ t | 水平タブ |
\ v | 垂直タブ |
\ 0nn | 8進数形式の数値を作成します |
\ xnn | 16進数形式の数値を作成します |
\ cX | 文字を制御します。xは任意の文字です。 |
\ u | 次の文字を大文字に強制します |
\ l | 次の文字を強制的に小文字にする |
\ U | 後続のすべての文字を強制的に大文字にします |
\ L | 後続のすべての文字を強制的に小文字にします |
\ Q | 後続のすべての英数字以外の文字を円記号で囲みます |
\ E | \ U、\ L、または\ Qを終了します |
例
文字列が一重引用符と二重引用符でどのように動作するかをもう一度見てみましょう。ここでは、上記の表に記載されている文字列エスケープを使用し、スカラー変数を使用して文字列値を割り当てます。
#!/usr/bin/perl
# This is case of interpolation.
$str = "Welcome to \ntutorialspoint.com!";
print "$str\n";
# This is case of non-interpolation.
$str = 'Welcome to \ntutorialspoint.com!';
print "$str\n";
# Only W will become upper case.
$str = "\uwelcome to tutorialspoint.com!";
print "$str\n";
# Whole line will become capital.
$str = "\UWelcome to tutorialspoint.com!";
print "$str\n";
# A portion of line will become capital.
$str = "Welcome to \Ututorialspoint\E.com!";
print "$str\n";
# Backsalash non alpha-numeric including spaces.
$str = "\QWelcome to tutorialspoint's family";
print "$str\n";
これにより、次の結果が生成されます-
Welcome to
tutorialspoint.com!
Welcome to \ntutorialspoint.com!
Welcome to tutorialspoint.com!
WELCOME TO TUTORIALSPOINT.COM!
Welcome to TUTORIALSPOINT.com!
Welcome\ to\ tutorialspoint\'s\ family