跳转到内容

Perl 编程/基本变量

来自维基教科书,开放世界中的开放书籍
上一页:第一个程序 索引 下一页:字符串

在 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";
  • 尝试编写一个程序,该程序对几个人说 hello,每次都使用相同的 print 语句,但更改包含名字的变量。
  • 尝试编写一个程序,包含四个变量,两个人的姓和名,并在他们结婚时打印出名字的变化。
  • 尝试编写一个程序,将两个变量加在一起形成第三个变量,并打印它们和结果。
上一页:第一个程序 索引 下一页:字符串
华夏公益教科书