in reply to Prototype mismatch: sub main::trim: none vs ($) at mysqlDB_serial.pl line 188.
++haukex, on everything.
It looks like you found those functions on the internet as a way to trim whitespace from strings. I searched "Left trim function to remove leading whitespace" on Google to see where it came from, and while I saw a few pages where those functions were presented as one way to do that, none had a description of the effects of the ($) prototype. While "an extra check of the parameters" may sound like a good idea, this prototype also forces scalar context on the first (and only) argument, and turns the function into an unary operator. Since prototypes are rarely used, this means that those three functions will not behave like most other subs you'll use (at least the ones from other modules). To avoid surprises, you should remove the ($) after the names trim, ltrim and rtrim.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Prototype mismatch: sub main::trim: none vs ($)
by haukex (Archbishop) on Feb 08, 2017 at 14:38 UTC | |
by Eily (Monsignor) on Feb 08, 2017 at 14:56 UTC |