First, if you want to open a file in that manner, you need to should get the file name from @ARGV instead of STDIN:
my $file = shift @ARGV;
No need to chomp it either. Next, if you want to print the line above the current line, you will need to print the line previously read. You could do this by slurping the file into an array, or you could just store the previous line in another scalar:
my $last; while (<MYFILE>) { if(/ALARM:/) { print $. - 1, ": $last"; print "$.: $_"; } $last = $_; }
Notice subtracting one from $. to get the previous line number as well. Everything else looks acceptable, well everything except that typo in your while expression.

jeffa

Quiz on Friday ;)

In reply to (jeffa) Re: when reading a file how to print a line one above the current line?? by jeffa
in thread when reading a file how to print a line one above the current line?? by Anonymous Monk

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.