fork download
  1. use strict;
  2. use warnings;
  3. use autodie;
  4.  
  5. use File::Find;
  6. use File::Spec;
  7. use File::Temp;
  8. use Term::ANSIColor;
  9.  
  10. use open ':std' => ':encoding(UTF-8)';
  11. #binmode( STDOUT, ":utf8" );
  12.  
  13. # Create Testing Environment
  14. my $dir = File::Temp->newdir();
  15.  
  16. while (<DATA>) {
  17. open my $fh, '>', File::Spec->catfile($dir, $_);
  18. }
  19.  
  20. checkForSpecialChar( $dir );
  21.  
  22. sub checkForSpecialChar {
  23. my ($source_dir) = @_;
  24.  
  25. find(
  26. sub {
  27. return unless -f; #We want files only
  28. print s/([^-a-zA-Z0-9_.]+)/color('bold red') . $1 . color('reset')/eg
  29. ? "Detected: $_\n"
  30. : " Clean: $_\n";
  31. },
  32. $source_dir
  33. );
  34. }
  35.  
  36. __DATA__
  37. pdf-2014à014&7_06_64-Os_O&L,_Inc.pdf
  38. pdf-20_06_04-O_OnLine,_Inc.pdf
  39. pdf-20_0_0-Utà_d.wr.pdf
  40. pdf-20_12_28-20.Mga_Grf.Fwd_Notice_KDJFI789&_JFK38.pdf
  41. pdf-2_0_0-C_—_DUKE.pdf
  42. pdf-2_1_3-f_s-M_F_D&A.pdf
  43. pdf_-_2014à014&1007_0617_06264-O_O&L,_Inc.pdf
  44.  
Success #stdin #stdout 0.1s 7616KB
stdin
Standard input is empty
stdout
Detected: pdf_-_2014à014&1007_0617_06264-O_O&L,_Inc.pdf
Detected: pdf-2_1_3-f_s-M_F_D&A.pdf
Detected: pdf-2_0_0-C_—_DUKE.pdf
Detected: pdf-20_12_28-20.Mga_Grf.Fwd_Notice_KDJFI789&_JFK38.pdf
Detected: pdf-20_0_0-Utà_d.wr.pdf
Detected: pdf-20_06_04-O_OnLine,_Inc.pdf
Detected: pdf-2014à014&7_06_64-Os_O&L,_Inc.pdf