On Fri, 05 Sep 2008 19:09:25 +0100, brian54321uk wrote:
> I would like to test a folder full of files, and if a file contains
> abc123blue or xyz357green then that file is to be deleted.
> What would be the best way of achieving this please?
One way:
use strict;
use warnings;
sub delete_containing {
my ($folder, @strings) = @_;
my $regex = join '|', map { quotemeta } @strings;
unlink grep { contains( qr/$regex/, $_ ) } glob "$folder/*";
}
sub contains {
my $regex = shift;
local @ARGV = @_;
local $_;
/$regex/ and return 1 while <>;
return;
}
delete_containing( '/tmp/bar', 'abc', 'xyz' );
--
Peter Scott
http://www.perlmedic.com/
http://www.perldebugged.com/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/