in reply to passing token output to a variable
The way you have it written, $cleaned just gets set to the # of substitutions that occurred. See this example:
One alternative for you would be:#!/usr/bin/env perl use strict; use warnings; use feature 'say'; my $string = "This is a string with variable numbers + of spaces."; say "original: $string"; my $number_of_substitutions = $string =~ s|\s{2,}| |g; say "cleaned: $string"; say "# of substitutions: $number_of_substitutions"; __END__ original: This is a string with variable numbers of + spaces. cleaned: This is a string with variable numbers of spaces. # of substitutions: 6
A second alternative, if you are using 5.14+, is non-destructive substitution (with the /r modifier):my $cleaned = $token->as_is; $cleaned =~ s/\s{2,}/ /g; # I took out the /s modifier. I thought it +was only for transliteration (e.g., $cleaned =~ tr/ //s).
my $cleaned = $token->as_is =~ s/\s{2,}/ /gr;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: passing token output to a variable
by SilverShadow (Initiate) on Jan 06, 2013 at 18:50 UTC | |
by SilverShadow (Initiate) on Jan 06, 2013 at 18:59 UTC |
In Section
Seekers of Perl Wisdom