in reply to Split using special charater data type scalar
$text =~ s/[\s|\n]*//g;
If we expand the \s (whitespace) character class we get:
$text =~ s/[ \t\n\r\f|\n]*//g;
So why are you including the \n (newline) character twice? And why are you including the | (vertical bar) character, which has nothing to do with whitespace? And matching zero characters is inefficient. What you probably want is:
$text =~ s/\s+//g;
$text =~ s/^[---]+//;
A character class ignores multiple identical characters so what you effectively have is:
$text =~ s/^[-]+//;
Which could be written more simply without the character class:
$text =~ s/^-+//;
|
---|
In Section
Seekers of Perl Wisdom