my $spooler = `lpstat -r`; if ( $spooler = "scheduler is not running" )
You're assigning to $spooler in your conditional statement (not just the backtick statement). You really should be comparing, or pattern-matching.
if ( $spooler eq "scheduler is not running" ) ... if ( index($spooler, "scheduler is not running") >= 0 ) ... if ( $spooler =~ /scheduler is not running/ ) ...
Given that this is output from some other tool, I would guess that the last of those alternatives is the most useful.

Update: After re-reading your question as posed, I guess I'll state what I thought was obvious-- I rarely want to assign (use the = operator) in a conditional statement. To compare numbers, you don't assign, you check for equality with the == operator. To compare strings, you don't assign, you check for equality with the eq operator. Also, the command output captured with backticks contains ALL of the standard output, newlines and all, so if your scheduler command really does JUST print "scheduler is not running", it STILL likely won't match exactly with the eq operator.

--
[ e d @ h a l l e y . c c ]


In reply to Re: Backticks and Pattern Matching. by halley
in thread Backticks and Pattern Matching. by misconfiguration

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.