Following the constructive feedback here is the working code:
#!/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 (not (grep{/Monday/} <$in_file>) {
seek $in_file, 0, 0;
$. = 0;
while (<$in_file>) {
print $out_file $_;
if ($. == 1) {
print $out_file "Friday\n";
}
}
}
close($in_file);
close($out_file);
The same code but with 'unless' instead of 'if (not)'
#!/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";
unless (grep{/Monday/} <$in_file>) {
seek $in_file, 0, 0;
$. = 0;
while (<$in_file>) {
print $out_file $_;
if ($. == 1) {
print $out_file "Friday\n";
}
}
}
close($in_file);
close($out_file);
As 'seek' could probably be avoided if I rethink things in a different way, I'll get back to this when I have clarified my thoughts
I appriciated