Perl 编程/基本变量
外观
< Perl 编程
一位维基教科书用户建议将本书或章节与 Perl_Programming/标量变量 合并。 请在讨论页面上讨论是否应该进行合并。 |
在 Perl 中,有五种不同类型的变量,每种变量都用自己的标识符字符表示:标量 ($)、数组 (@)、哈希 (%)、子程序 (&) 和类型全局变量 (*)。我们首先介绍标量,因为它们最容易理解。
尽管名称很复杂,但标量变量只是一个存储值以便以后使用的方式。例如,考虑
#!/usr/bin/perl
print "Hello, John.\n";
如果我们想更改用户的名字,我们只需更改字符串即可。但是,如果这个程序有数百行,并且这个名字被使用了几次,那么试图在整个程序中找到这些字符串会比值得的麻烦更多。相反,通常使用变量来存储任何可能改变的值。
#!/usr/bin/perl
my $firstname = "John";
print "Hello, $firstname.\n";
这个新程序输出与上一个程序完全相同。这个程序有几个新东西,最明显的是这一行
- my $firstname = "John";
- my 告诉 perl 解释器给你一个新的变量。从技术上讲,这是可选的,但强烈推荐。
- $firstname 告诉 perl 解释器你想要一个名为 firstname 的标量变量
- = 告诉 perl 解释器将它右侧的值分配给左侧的变量
- "John" 告诉 perl 解释器,每当你使用 $firstname 时,你都希望它使用 字符串 John。
虽然使用变量来包含你编程的信息很好,但变量用于存储数据,这些数据可以在你的程序运行时改变,正如它们的名字所暗示的那样。
#!/usr/bin/perl
my $firstname = "Jonathan";
print "Hello, $firstname.\n";
$firstname = "John";
print "Goodbye, $firstname.\n";
你应该注意到,当我们更改$firstname的值时,我们不需要使用my运算符。这是因为我们已经告诉 perl 给我们这个变量,现在它是我们的,我们可以随心所欲地使用它。
现在,虽然字符串非常有用,但在计算机程序中也有数字的空间。标量变量可以包含数字或字符串。
#!/usr/bin/perl
my $age = 17;
print "Hello, $age year old.\n";
Perl 没有提供任何简单的方法来判断存储在标量变量中的信息类型。实际上,如果你给 Perl 一个字符串并要求它进行数字运算,Perl 会自动将字符串转换为数字;反之亦然。以下是一个例子
#!/usr/bin/perl
my $x = 10;
my $y = $x + 1;
print "Using a number $x + 1 = $y.\n";
$x = "10";
$y = $x + 1;
print "Using a string $x + 1 = $y.\n";
$x = "ten";
$y = $x + 1;
print "Using an English word, $x + 1 = $y.\n";
$x = "2ten";
$y = $x + 1;
print "Using a funny string, $x + 1 = $y.\n";
如果你运行这个程序,你可以看到前两个例子都将 11 存储到 $y 中。然而,Perl 不会将英文单词转换为数字,如果你给出一个像"ten"这样的字符串,它不会将其转换为 10,而是将其视为 0。最后一个例子表明它实际上试图将字符串理解为数字,并在遇到它不理解的东西时停止。
当然,可以在不将变量包含在字符串中的情况下输出变量。
#!/usr/bin/perl
my $forename = "John";
my $message = "Hello ";
print $message;
print ", ";
print $forename;
print "\n";
|