I wanted to post it for more comments and advice on how to improve ;)
Well, I can see several areas for improvement, notably the huge if block at the end.
(BTW, why do you declare a variable $robot_file that you never subsequently use? And why have you commented out use strict; at the beginning of your program?)
Immediately, however, one thing that springs to mind is this line:
my $day=$dayOfMonth-1;It seems to me, in the context, that you're trying here to use this to get the date of the previous day. If I'm wrong, please excuse me, but if not, what do you think will happen, for example on November 1st (not to mention Jan 1st, or March 1st, when the previous day might be either Feb 28 or Feb 29)?
In fact, 'How do I find yesterday's date?' is a faq (How do I find yesterday's date?). With Perl (not PERL, by the way), there are modules out there that deal with heaps of similar problems, and save you from reinventing the proverbial wheel :).
Here's one way, based on the answers to the faq, to create the sort of string that you seem to require, using the DateTime module (Don't hesitate, BTW, to use whitespace in your code, to make it more human-legible):
use DateTime; my $yesterday = DateTime->today->subtract( days => 1 )->ymd( '' ); my ( $prefix, $extension ) = ( 'ex', '.log' ); my $log_file = $prefix . substr( $yesterday, 2 ) . $extension;
In reply to Re^3: Deleting a matching string in an array
by Not_a_Number
in thread Deleting a matching string in an array
by Shamaeso
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |