Hi Drsin,

It looks like you want to look up in a file and see if either one of two variables match the contents of the file. You're trying to do that in one statement (looks like you sorta copied a shell grep command), but you need some more steps. (You could do it in one command in Perl, but it looks like you want to have this in a script, so let's go with multiple steps as it will be easier to see what's going on.)

You will need to:

  1. use strict; and use warnings;
  2. Open the file -- see open or Path::Tiny
  3. Read the file -- see readline or Path::Tiny
  4. Store the contents in a list -- see perldata, push
  5. Compare your list of variables against the list items -- see perlsyn for conditionals and loops
  6. See if one thing matches another -- see perlrequick (regular expression quick start)
  7. if there's a match, print one thing
  8. or print the other

You have #7 and #8 down ;-) The best place to start for the rest, if you haven't already taken time to study it, is the basic Perl documentation perlintro which will touch on most of these things.

Hope this helps!


The way forward always starts with a minimal test.

In reply to Re: perl if statement by 1nickt
in thread perl if statement by Drsin

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.