What do the strict and warnings commands do?

use strict requires that all variables be declared with either my or our. This is the number one thing you can do to ensure you're code is well made and without errors. use warnings is essentially an extension that monitors your code for unintended errors.

And what is the purpose of my before the objects? What does it do?

First of all, those aren't objects, they're simple variables. my is used to declare your variables and is useful for limiting their scope. If you were to mistype a variable or use the wrong type, use strict would alert you to the error

Also, what is the purpose of my $string = shift;?

If you read the documentation for shift, you'll see that in this instance it's equivalent to:

my $string = shift @ARGV;

Previously, you hardcoded $ARGV[0] in multiple places. It's much better to assign your script's parameters to variables as a way of documenting your code.

I don't understand the if (s/\Q$string\E/($string)/g) { conditional either.

\Q...\E is a shortcut syntax for quotemeta. This escaped any regex special characters in your $string, so that it would be treated as a literal value.


In reply to Re^7: The $_ Special Variable by wind
in thread The $_ Special Variable by chuloon

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.