ZetCode

Perl join 函数

最后修改于 2025 年 4 月 4 日

Perl 的 join 函数将列表元素合并成一个单独的字符串。它接受一个分隔符和一个列表,并返回连接后的结果。

joinsplit 的逆操作,对于字符串构建至关重要。它效率高,并且可以处理任何类似列表的数据。

基本的 join 用法

使用 join 最简单的方式是提供一个分隔符和一个数组。

basic.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my @words = ('apple', 'banana', 'cherry');
my $result = join(', ', @words);

print "Joined string: $result\n";

我们使用逗号和空格作为分隔符来连接三个水果。该函数将数组元素合并成一个字符串。

$ ./basic.pl
Joined string: apple, banana, cherry

使用空分隔符连接

空分隔符会在元素之间不添加任何字符地进行连接。

empty.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my @numbers = (1, 2, 3, 4);
my $combined = join('', @numbers);

print "Combined: $combined\n";
print "Length: ", length($combined), "\n";

这将数字直接连接在一起。结果是一个单独的数字字符串。

$ ./empty.pl
Combined: 1234
Length: 4

使用换行符连接

使用换行符作为分隔符可以从列表中创建多行字符串。

newlines.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my @lines = ('First line', 'Second line', 'Third line');
my $text = join("\n", @lines);

print "Result:\n$text\n";

每个数组元素都成为单独的一行。这对于文件输出非常有用。

$ ./newlines.pl
Result:
First line
Second line
Third line

连接哈希值

join 在提取哈希值后可以合并它们。

hash.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my %fruit_colors = (
    apple  => 'red',
    banana => 'yellow',
    grape  => 'purple'
);

my $color_list = join(', ', values %fruit_colors);
print "Fruit colors: $color_list\n";

我们使用 values 提取哈希值,然后将它们连接起来。值的顺序是不可预测的。

$ ./hash.pl
Fruit colors: yellow, red, purple

复杂分隔符

分隔符可以是多字符字符串,用于复杂的格式化。

complex.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my @items = ('CPU', 'RAM', 'SSD', 'GPU');
my $separator = " | ";
my $specs = join($separator, @items);

print "Computer specs:\n$specs\n";

带有空格的管道符分隔符可以创建易于阅读的列表。这在控制台输出中很常见。

$ ./complex.pl
Computer specs:
CPU | RAM | SSD | GPU

使用变量连接

变量既可以用作分隔符,也可以用作列表元素。

variables.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my $user = 'admin';
my $domain = 'example.com';
my $separator = '@';

my $email = join($separator, $user, $domain);
print "Email: $email\n";

我们通过连接用户名和域名来构建一个电子邮件地址。变量提供了灵活性。

$ ./variables.pl
Email: admin@example.com

连接 split 的结果

join 通常与 split 配对用于字符串处理。

splitjoin.pl
#!/usr/bin/perl

use strict;
use warnings;
use v5.34.0;

my $csv = "one,two,three,four";
my @parts = split(',', $csv);
my $new_csv = join(';', @parts);

print "Original: $csv\n";
print "Modified: $new_csv\n";

我们分割一个 CSV 字符串,然后用不同的分隔符重新连接。这在数据转换中很常见。

$ ./splitjoin.pl
Original: one,two,three,four
Modified: one;two;three;four

最佳实践

来源

Perl join 文档

本教程涵盖了 Perl 的 join 函数,并提供了实际示例,演示了它在字符串构建中的用法。

作者

我叫 Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了超过 1400 篇文章和 8 本电子书。我在教授编程方面有十多年的经验。

列出 所有 Perl 教程