将PERL字符串全停止拆分,并将这些元素用作变量



我有一个字符串,该字符串被完整的停止隔开,我想将分离的元素用作变量。

例如,如果我有

$string = "This.is.a.string";

当我说

print $1;

我希望它输出"此",或者打印$ 2会输出"是",等等。

我尝试了

$elements = split(/\./, $string);
print $1;

但是到目前为止没有运气。

有人有什么想法吗?

use strict;
use warnings;
my $string = "This.is.a.string";
my @output = split /./, $string;
print $output[0]; # this will print 'this' where $output[1] will print 'is'

,或者您甚至可以通过用空间替换点来打印并打印字符串。

use strict;
use warnings;
my $string = "This.is.a.string";
$string =~  s/./ /g;
print $string; # this will print 'This is a string'

在旁注上,只是向您展示您出错的地方。

split /\./, $string;

在两个前向斜线之间定义了一个拆分,但是需要通过后斜线来逃脱特殊的角色,您目前正在逃脱后斜线而不是点。应该是

split /./, $string;

其次,您尚未定义$ 1,因此它不知道$ 1是什么。如果您想在字符串中使用它,则需要告诉它$ 1是什么。

use strict;
use warnings;
my $string = "This.is.a.string";
my @output = split /./, $string;
$1 = $output[1];
print $1;

但这是不必要的,只是向您展示问题。

应该是:

@elements = split(/./, $string); print $elements[0];

@elements是一个数组, $elements[0]是该数组的第一个元素。

最新更新