use warnings;
use strict;
my $str1= "It is very very cold now\n";
my $str2 = $str1;
$str1 =~ s/(?<! ) (?! )//g;
print $str1;
$str2 =~ s/ (?! )//g;
print $str2;
which prints:
Itisvery verycoldnow
Itisvery verycoldnow
Which string is correct? The (?<! ) is a zero width look back negative assertion: it matches if there isn't a space before the current space being matched. The (?! ) is a zero width look ahead negative assertion: it matches if there isn't a space after the current space being matched. Together these ensure that only single spaces are matched: only match a space that doesn't have a space before it and doesn't have a space after it.
You should have a look at perlretut.
Perl is Huffman encoded by design.
|