John W. Krahn wrote:
> Rob Dixon wrote:
>> Rob McGinness wrote:
>>> die unless chdir
>>> "/cert/ImpactServer-5_4/cl9/ctrl_sfm9/sfm9_sched/archives";
>>>
>>> die unless opendir DIR, ".";
>> I suggest you write something like the program below.
>>
>>
>> #!/usr/bin/perl
>> use strict;
>> use warnings;
>>
>> my $dir = "/cert/ImpactServer-5_4/cl9/ctrl_sfm9/sfm9_sched/archives";
>>
>> my @files = do {
>> opendir my $dh, $dir or die $!;
>> grep /^Completed\.archive\.\d{1,4}$/, readdir $dh;
>> };
>>
>> @files = sort grep -M > 7, @files;
>
> The OP chdir()ed to the directory in question so the files were in the
> current directory, however your code does not so the -M test will not
> work unless you prepend the directory name to the file name:
>
> @files = sort grep -M "$dir/$_" > 7, @files;
>
>
> Also, why not put both tests in the first grep:
>
> my @files = do {
> opendir my $dh, $dir or die "Cannot open '$dir' $!";
> grep /^Completed\.archive\.\d{1,4}$/
> && -M "$dir/$_" > 7, readdir $dh;
> };
>
>
>> foreach (@files) {
>> system 'compress', '-v', $_;
>> }
>
> You should verify that system worked correctly:
>
> foreach (@files) {
> 0 == system 'compress', '-v', $_ or die "system 'compress' failed: $?";
> }
Thanks John
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/