Perl - 標量



標量是單個數據單元。該資料可能是整數、浮點數、字元、字串、段落或整個網頁。

以下是用標量變數的簡單示例:

#!/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-字串。

v-字串提供了一種替代且更易讀的構造字串的方法,而不是使用不太易讀的插值形式“\x{1}\x{14}\x{12c}\x{fa0}”。

它們是以 v 開頭,後跟一個或多個用點分隔的元素的任何字面量。例如:

#!/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.

特殊字面量

到目前為止,您一定對字串標量及其連線和插值操作有所瞭解。那麼讓我告訴您三個特殊字面量 __FILE__、__LINE__ 和 __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__
廣告