http://www.perlmonks.org?node_id=1011830


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:
#!/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
One alternative for you would be:
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).
A second alternative, if you are using 5.14+, is non-destructive substitution (with the /r modifier):
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
    Thank you frozenwithjoy, your code works perfect as a standalone code but when using it with my code it doesn't the script just return or exit to command prompt without giving any output, warnings or error messages!
      nevermind, fixed it..works now! Kind Regards