in reply to catching newlines from textarea input

You simply forgot to return $txt. A sub returns the result of the last statement by default, in your case this is the substitution. Try this instead:
#!/usr/local/bin/perl -w use strict; my $txt="This is a line\nThis is a line as well\n\nThis is the last li +ne\n"; print ubb_txt($txt); sub ubb_txt { my $txt = shift; return "" unless ( defined $txt); my ($nl)=$txt =~ m{(\cM?\cJ)}; $txt =~ s{$nl$nl}{</p><p>}gs if (defined $nl); $txt =~ s{$nl}{<br>}gs if (defined $nl); return $txt; } __END__ This is a line<br>This is a line as well</p><p>This is the last line<b +r>
Your sub was returning the number of substitutions made (i.e. the result of the last substitution).


Replies are listed 'Best First'.
Re: Re: catching newlines from textarea input
by maksl (Pilgrim) on Feb 28, 2003 at 12:03 UTC
    uups robartes you are right forgot to paste it in, because omited several lines of ubb_txt like $str =~ s//&Uuml;/igs;

      You may want to look at HTML::Entities instead of hand-rolling all your own entity encodings.