First of all, I'd like to apologize for not using the HTML tags. I'm learning HTML together with Perl, so thanks for bearing with me during my learning curve and for the warm welcome.


With the feedback I've got so far I managed to get the while loop working the way I wanted! :)


Content of 'input.txt':
Monday
Saturday
Sunday

#!/bin/perl use strict; use warnings; my $input_file = 'input.txt'; my $output_file = 'output.txt'; open(my $in_file,'<', $input_file) or die "Can not open file $input_fi +le for writing: $!.\n"; open(my $out_file,'>', $output_file) or die "Can not open file $output +_file for writing: $!.\n"; if (grep{/Monday/} $in_file) { } else { seek $in_file, 0, 0; while (<$in_file>) { print $out_file $_; if ($. == 1) { print $out_file "Friday\n"; } } } close($in_file); close($out_file);


In the above code, I have two issues:
- Else clause is alwayse executed, why (should only be executed if 'Friday' is not found in 'input.txt')?
- Empty block in the if statement; how can I avoid this?


Output of 'output.txt':
Monday
Friday
Saturday
Sunday


My ultimate gall is to have input.txt populated with 'Friday' if it is missing. As far as I understand it, in Perl you first need to create a new file with the desired output then rename that file to the original name.
So in my case that would be with the rename function:

rename $output_file $input_file;


If there is a better way to get what I want, I'm open to suggestion.


In reply to Re^2: While loop not printing anything after using grep by skjeiu
in thread While loop not printing anything after using grep by skjeiu

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.