Perl-scalars

提供:Dev Guides
移動先:案内検索

Perl-スカラー

スカラーは、単一のデータ単位です。 そのデータは、整数、浮動小数点、文字、文字列、段落、またはWebページ全体です。

これはスカラー変数を使用した簡単な例です-

#!/usr/bin/perl

$age = 25;             # An integer assignment
$name = "John Paul";   # A string
$salary = 1445.50;     # A floating point

print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";

これは、次の結果を生成します-

Age = 25
Name = John Paul
Salary = 1445.5

数値スカラー

ほとんどの場合、スカラーは数値または文字列です。 次の例は、数値スカラーのさまざまなタイプの使用方法を示しています-

#!/usr/bin/perl

$integer = 200;
$negative = -300;
$floating = 200.340;
$bigfloat = -1.2E-23;

# 377 octal, same as 255 decimal
$octal = 0377;

# FF hex, also 255 decimal
$hexa = 0xff;

print "integer = $integer\n";
print "negative = $negative\n";
print "floating = $floating\n";
print "bigfloat = $bigfloat\n";
print "octal = $octal\n";
print "hexa = $hexa\n";

これは、次の結果を生成します-

integer = 200
negative = -300
floating = 200.34
bigfloat = -1.2e-23
octal = 255
hexa = 255

ストリングスカラー

次の例は、さまざまなタイプの文字列スカラーの使用法を示しています。 一重引用符で囲まれた文字列と二重引用符で囲まれた文字列の違いに注意してください-

#!/usr/bin/perl

$var = "This is string scalar!";
$quote = 'I m inside single quote - $var';
$double = "This is inside single quote - $var";

$escape = "This example of escape -\tHello, World!";

print "var = $var\n";
print "quote = $quote\n";
print "double = $double\n";
print "escape = $escape\n";

これは、次の結果を生成します-

var = This is string scalar!
quote = I m inside single quote - $var
double = This is inside single quote - This is string scalar!
escape = This example of escape -       Hello, World

スカラー操作

Perlで利用可能なさまざまな演算子の詳細については別の章で説明しますが、ここではいくつかの数値操作と文字列操作をリストします。

#!/usr/bin/perl

$str = "hello" . "world";       # Concatenates strings.
$num = 5 + 10;                  # adds two numbers.
$mul = 4 * 5;                   # multiplies two numbers.
$mix = $str . $num;             # concatenates string and number.

print "str = $str\n";
print "num = $num\n";
print "mul = $mul\n";
print "mix = $mix\n";

これは、次の結果を生成します-

str = helloworld
num = 15
mul = 20
mix = helloworld15

複数行の文字列

あなたのプログラムに複数行の文字列を導入したい場合は、以下のように標準の一重引用符を使用できます-

#!/usr/bin/perl

$string = 'This is
a multiline
string';

print "$string\n";

これは、次の結果を生成します-

This is
a multiline
string

以下のように「here」ドキュメント構文を使用して、複数行を保存または印刷できます-

#!/usr/bin/perl

print <<EOF;
This is
a multiline
string
EOF

これも同じ結果を生成します-

This is
a multiline
string

Vストリング

v1.20.300.4000形式のリテラルは、指定された序数の文字で構成される文字列として解析されます。 この形式はv-stringsとして知られています。

v-stringは、やや読みにくい補間形式 "\ x \ {1} \ x \ {14} \ x \ {12c} \ x \ {fa0}"を使用するのではなく、文字列を構築するための代替の読みやすい方法を提供します。

これらは、vで始まり、1つ以上のドット区切り要素が続くリテラルです。 たとえば-

#!/usr/bin/perl

$smile  = v9786;
$foo    = v102.111.111;
$martin = v77.97.114.116.105.110;

print "smile = $smile\n";
print "foo = $foo\n";
print "martin = $martin\n";

これも同じ結果を生成します-

smile = ☺
foo = foo
martin = Martin
Wide character in print at main.pl line 7.

特別なリテラル

これまでのところ、文字列スカラーとその連結と補間の操作についての感覚が必要です。 したがって、3つの特別なリテラルFILELINE、およびPACKAGEは、プログラムのその時点での現在のファイル名、行番号、およびパッケージ名を表します。

それらは個別のトークンとしてのみ使用でき、文字列に補間されません。 以下の例を確認してください-

#!/usr/bin/perl

print "File name ". __FILE__ . "\n";
print "Line Number " . __LINE__ ."\n";
print "Package " . __PACKAGE__ ."\n";

# they can not be interpolated
print "__FILE__ __LINE__ __PACKAGE__\n";

これは、次の結果を生成します-

File name hello.pl
Line Number 4
Package main
__FILE__ __LINE__ __PACKAGE__