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-Strings
形式为 v1.20.300.4000 的文字被解析为由具有指定序数的字符组成的字符串。 这种形式称为 v-strings。
v-string 提供了另一种更易读的方式来构造字符串,而不是使用可读性较差的插值形式"\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";
This will also produce the same result −
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__