I have an issue while parsing strings which are in variable. I have a text file containing machine names and I'm reading the text file line by line. When I am trying to parse these machine names, somehow it's not working properly. e.g. In my text file I have machine names as machine1, machine11, machine12, machine2, machine20, machine23, machine30 (ef0a-14f09a-dfe230d-ea5f8d), etc. So when I parse for machine11, the code still matches machine1 and not machine11. Also I have used \Q and \E to escape special character sequences. I tried to use \b in combination with it to resolve the issue but it did not work.

my $machine = shift @_; foreach my $line (sort @::Lines){ if($line =~ m/\Q$machine\E\b/){ print "MACHINE = $machine \n"; } }

$machine is taken from the array which contains machine names. @::Lines is the array which looks like this.
\\hostname\Cpu(123:machine1)\%Ready
\\hostname\Cpu(3545:machine11)\%Used
\\hostname\Memory(3244:machine30 (ef0a-14f09a-dfe230d-ea5f8d))\Swapped MBytes
I have used \Q and \E in parsing because sometimes my machine names contain special characters like -,( , ) and : Can we use \Q, \E and \b in combination with each other? Because if I simply use only \Q and \E, it doesn't work for machine names like machine1, machine11,etc and when I use \b with \Q and \E, it doesn't work for machine names like machine30 (ef0a-14f09a-dfe230d-ea5f8d). Any idea on how can we parse this kind of patterns where we are using variable names ?
Thanks


In reply to Parsing Issue while using Variable name in Pattern by perlavi

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.