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;
, но это необязательно, просто показывая вам проблему.
Почему вы ** хотите ** '$ 1' вместо элементов массива? – jm666