Perl标量用法

本文概述

  • Perl标量运算
  • Perl特殊文字
  • Perl字符串上下文
  • Perl undef
标量包含单个数据单位。它前面带有($)符号, 后跟字母, 数字和下划线。
标量可以包含数字, 浮点数, 字符或字符串。
我们可以通过两种方式定义标量。首先, 我们可以一起声明和分配值。其次, 我们将首先声明, 然后将值分配给标量。
【Perl标量用法】在下面的示例中, 我们将展示定义标量的两种方法。
例:
use strict; use warnings; use 5.010; #Declairing and assigning value togethermy $color = "Red"; say $color; #Declairing the variable first and then assigning valuemy $city; $city = "Delhi"; say $city;

输出
RedDelhi

Perl标量运算在此示例中, 我们将使用两个标量变量$ x和$ y执行不同的操作。在Perl中, 运算符告诉操作数如何表现。
例:
use strict; use warnings; use 5.010; my $x = 5; say $x; my $y = 3; say $y; say $x + $y; say $x . $y; say $x x $y;

输出
53853555

第一和第二输出分别是$ x和$ y的值。
(+)运算符只需将5和3相加即可得到8。
(。)是一个串联运算符, 它将输出5和3串联起来, 输出为53。
(x)是重复运算符, 它重复其左侧变量的次数与其右侧数字的次数相同。
Perl特殊文字Perl中有三种特殊文字:
__FILE__:代表当前文件名。
__LINE__:它代表当前的行号。
__PACKAGE__:它代表程序中当时的软件包名称。
例:
use strict; use warnings; use 5.010; #!/usr/bin/perlprint "File name ". __FILE__ . "\n"; print "Line Number " . __LINE__ ."\n"; print "Package " . __PACKAGE__ ."\n"; # they can?t be interpolatedprint "__FILE__ __LINE__ __PACKAGE__\n";

输出
File name hw.plLine Number 6Package main__FILE__ __LINE __ __PACKAGE

Perl字符串上下文Perl根据要求自动将字符串转换为数字, 并将数字转换为字符串。
例如, 5与” 5″ 相同, 5.123与” 5.123″ 相同。
但是, 如果字符串中的某些字符不是数字, 则它们在算术运算中的表现如何。让我们通过一个例子来看它。
例:
use strict; use warnings; use 5.010; my $x = "5"; my $y = "2cm"; say $x + $y; say $x . $y; say $x x $y;

输出
752cm55

在数字上下文中, Perl查看字符串的左侧, 并将其转换为数字。该字符成为变量的数值。在数字上下文(+)中, 给定的字符串” 2cm” 被视为数字2。
虽然, 它生成警告为
Argument "2cm" isn't numeric in addition (+) at hw.pl line 9.

这里发生的是, Perl不会将$ y转换为数值。它只是使用其数字部分, 即; 2。
Perl undef如果你不会在变量中定义任何内容, 则将其视为undef。在数字上下文中, 它充当0。在字符串上下文中, 它充当空字符串。
use strict; use warnings; use 5.010; my $x = "5"; my $y; say $x + $y; say $x . $y; say $x x $y; if (defined $y) {say "defined"; } else {say "NOT"; }

输出
Use of uninitialized value $y in addition (+) at hw.pl line 9.5Use of uninitialized value $y in concatenation (.) or string at hw.pl line 10.5Use of uninitialized value $y in repeat (x) at hw.pl line 11.NOT

    推荐阅读