cleaner(\$details); AND $details = cleaner($details); my $dirty; sub cleaner($dirty){ my $clean = ($dirty =~ s/\n/<br>/g;); $clean =~ s/\t/ /g; return $clean; }
Perl doesn't work that way. Passing data through to a sub goes via @_, not via named arguments.
sub cleaner { my($dirty) = @_; ... }
And your other huge mistake is in this line:
my $clean = ($dirty =~ s/\n/<br>/g;);
Let's start by dropping the inner semicolon...

You assign the result of the s/// to $clean, which is the number of substitutions. Remember: s/// does an in-place substitution. The correct syntax for what you want is:

(my $clean = $dirty) =~ s/\n/<br>/g;
which first assigns the value of $dirty to $clean, and then the substitution takes place on the Lvalue, $clean. Cut into smaller peices, this does the same thing:
my $clean = $dirty; $clean =~ s/\n/<br>/g;

All put together, you no longer need $dirty:

sub cleaner { (my $clean = $_[0]) =~ s/\n/<br>/g; $clean =~ s/\t/ /g; return $clean; } $details = cleaner($details);
The code can still be further reduced to:
sub cleaner { local $_ = shift; s/\n/<br>/g; s/\t/ /g; return $_; } $details = cleaner($details);

In reply to Re: Problem creating a function by bart
in thread Problem creating a function by Willman023

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.