跳转到内容

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";
  • 尝试编写一个程序,用同一个 print 语句向几个人问好,但每次更改包含名字的变量。
  • 尝试编写一个程序,包含四个变量,两个人的名字和姓氏,并在他们结婚时打印名字的更改。
  • 尝试编写一个程序,将两个变量加在一起,存储到第三个变量中,并打印它们以及结果。
上一页:第一个程序 索引 下一页:字符串
华夏公益教科书