I'm trying to parse a line once to get what I need, so I do that with a regexp and try dumping to an array. But when I do, I get:
Array found where operator expected at check.pl line 82, at end of lin +e (Missing operator before ?)
The offending line 82 is the assignment of the regexp output below:
if (@data = ($line =~ STATUS_COMPLETED_RE )) { $stats{level} = $shift @data; $stats{group} = $shift @data; $stats{total} = $shift @data; }
where the regexp is:
use constant STATUS_COMPLETED_RE => qr{ ^string-here \s string-here: \s \((\w+)\) \s #alarm level ([\w|\s]+) \s completed, \s #job completed Total\s (\d+) \sclient\(s\), \s #total client +s ( #Details - (\d+) \s # number ([\w|\s\(\)]+) ,|\. # su +cceed,fail,etc. )* # any numbe +r of }xms ;
The code works if I don't output to an array, but since I don't know big the resulting match list from the regexp will be, I'd prefer to dump it to an array and process that array. In other words, the Details section from the regexp could be large, and I'm trying to make it robust.


Update Thanks, yeah, I meant shift and not $shift. Knew it was something trivial. Works now. Anyone see what I'm missing?

-- Burvil


In reply to Assign regexp output to array not working by bowei_99

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.