use File::Find; use strict; my $start_from = 'c:\mydocu~1'; if (shift(@ARGV) =~ /all/) { find(\&search_all, $start_from); } else { find(\&search_none, $start_from); } sub search_all { unlink if /\.\d+\w+\-\d+\wm$|\.log$/i; } sub search_none { unlink if /\.\d+\w+\-\d+\wm$/i; }