That is not what the original code snippet does (it does in fact count the string length .. hence the variable named $string_length). If you pasted the code into your editor you could see if there was a space in the regex or not (not). Your code to count words, however, not only isn't -w compliant (implicit split to @_), it can very easily give wrong results:
$ths = ' this is a string'; $i = split(/\s/,$ths); print "$i\n";
If you want to split a string on whitespace, use the special case of split(" ", $ths) which splits on multiple whitespace and ignores any leading null field (see: perlfunc:split for details).
$_ = ' this is a string'; my @words = split " "; print scalar @words, "\n"; # or you could go for this version :-) $_ = ' this is a string'; my $words =()= /(\S+)/g; print $words, "\n";
In reply to Re: Re: How NOT to do it
by danger
in thread How NOT to do it
by jlawrenc
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |