james28909 has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use warnings; use File::Slurp; use File::Copy qw(copy); use File::Path qw(make_path); my @dev_flash000 = (); my @dev_flash001 = (); my @dev_flash002 = (); my @dev_flash003 = (); my @dev_flash004 = (); my @dev_flash005 = (); my @dev_flash006 = (); my @dev_flash007 = (); my @dev_flash008 = (); my @dev_flash009 = (); my @dev_flash010 = (); my @dev_flash011 = (); my @dev_flash012 = (); my @dev_flash013 = (); my @dev_flash014 = (); my @dev_flash015 = (); my @dev_flash016 = (); my @dev_flash017 = (); my @dev_flash018 = (); my @dev_flash019 = (); my @dev_flash020 = (); my @dev_flash021 = (); my @dev_flash022 = (); my @dev_flash023 = (); my @dev_flash024 = (); my @dev_flash025 = (); my @dev_flash026 = (); my @dev_flash027 = (); sub make_folders { my $tempdir = "temp"; opendir( DIR, $tempdir ); while ( my $tempfile = readdir(DIR) ) { next if -d $tempfile; make_path("copied_files/$tempfile/duplicate"); } } sub search_dir { my ($dir) = @_; my $dh; if ( !opendir( $dh, $dir ) ) { return; } while ( my $file = readdir($dh) ) { next if -d $file; my $path = "$dir/$file"; if ( -d $path ) { search_dir($path); } else { extract_files( $dir, $file ); } } } sub extract_files { my $des = ''; my ( $dir, $file ) = @_; my $dev_flash000 = read_file('temp/dev_flash000'); my $dev_flash001 = read_file('temp/dev_flash001'); my $dev_flash002 = read_file('temp/dev_flash002'); my $dev_flash003 = read_file('temp/dev_flash003'); my $dev_flash004 = read_file('temp/dev_flash004'); my $dev_flash005 = read_file('temp/dev_flash005'); my $dev_flash006 = read_file('temp/dev_flash006'); my $dev_flash007 = read_file('temp/dev_flash007'); my $dev_flash008 = read_file('temp/dev_flash008'); my $dev_flash009 = read_file('temp/dev_flash009'); my $dev_flash010 = read_file('temp/dev_flash010'); my $dev_flash011 = read_file('temp/dev_flash011'); my $dev_flash012 = read_file('temp/dev_flash012'); my $dev_flash013 = read_file('temp/dev_flash013'); my $dev_flash014 = read_file('temp/dev_flash014'); my $dev_flash015 = read_file('temp/dev_flash015'); my $dev_flash016 = read_file('temp/dev_flash016'); my $dev_flash017 = read_file('temp/dev_flash017'); my $dev_flash018 = read_file('temp/dev_flash018'); my $dev_flash019 = read_file('temp/dev_flash019'); my $dev_flash020 = read_file('temp/dev_flash020'); my $dev_flash021 = read_file('temp/dev_flash021'); my $dev_flash022 = read_file('temp/dev_flash022'); my $dev_flash023 = read_file('temp/dev_flash023'); my $dev_flash024 = read_file('temp/dev_flash024'); my $dev_flash025 = read_file('temp/dev_flash025'); my $dev_flash026 = read_file('temp/dev_flash026'); my $dev_flash027 = read_file('temp/dev_flash027'); if ( $dev_flash000 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash000/$file" ) { push @dev_flash000, "$file\n"; my $des = "copied_files/dev_flash000/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash000, "$file\n"; my $des = "copied_files/dev_flash000/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash001 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash001/$file" ) { push @dev_flash001, "$file\n"; my $des = "copied_files/dev_flash001/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash001, "$file\n"; my $des = "copied_files/dev_flash001/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash002 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash002/$file" ) { push @dev_flash002, "$file\n"; my $des = "copied_files/dev_flash002/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash002, "$file\n"; my $des = "copied_files/dev_flash002/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash003 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash003/$file" ) { push @dev_flash003, "$file\n"; my $des = "copied_files/dev_flash003/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash003, "$file\n"; my $des = "copied_files/dev_flash003/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash004 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash004/$file" ) { push @dev_flash004, "$file\n"; my $des = "copied_files/dev_flash004/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash004, "$file\n"; my $des = "copied_files/dev_flash004/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash005 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash005/$file" ) { push @dev_flash005, "$file\n"; my $des = "copied_files/dev_flash005/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash005, "$file\n"; my $des = "copied_files/dev_flash005/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash006 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash006/$file" ) { push @dev_flash006, "$file\n"; my $des = "copied_files/dev_flash006/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash006, "$file\n"; my $des = "copied_files/dev_flash006/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash007 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash007/$file" ) { push @dev_flash007, "$file\n"; my $des = "copied_files/dev_flash007/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash007, "$file\n"; my $des = "copied_files/dev_flash007/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash008 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash008/$file" ) { push @dev_flash008, "$file\n"; my $des = "copied_files/dev_flash008/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash008, "$file\n"; my $des = "copied_files/dev_flash008/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash009 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash009/$file" ) { push @dev_flash009, "$file\n"; my $des = "copied_files/dev_flash009/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash009, "$file\n"; my $des = "copied_files/dev_flash009/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash010 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash010/$file" ) { push @dev_flash010, "$file\n"; my $des = "copied_files/dev_flash010/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash010, "$file\n"; my $des = "copied_files/dev_flash010/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash011 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash011/$file" ) { push @dev_flash011, "$file\n"; my $des = "copied_files/dev_flash011/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash011, "$file\n"; my $des = "copied_files/dev_flash011/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash012 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash012/$file" ) { push @dev_flash012, "$file\n"; my $des = "copied_files/dev_flash012/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash012, "$file\n"; my $des = "copied_files/dev_flash012/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash013 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash013/$file" ) { push @dev_flash013, "$file\n"; my $des = "copied_files/dev_flash013/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash013, "$file\n"; my $des = "copied_files/dev_flash013/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash014 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash014/$file" ) { push @dev_flash014, "$file\n"; my $des = "copied_files/dev_flash014/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash014, "$file\n"; my $des = "copied_files/dev_flash014/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash015 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash015/$file" ) { push @dev_flash015, "$file\n"; my $des = "copied_files/dev_flash015/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash015, "$file\n"; my $des = "copied_files/dev_flash015/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash016 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash016/$file" ) { push @dev_flash016, "$file\n"; my $des = "copied_files/dev_flash016/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash016, "$file\n"; my $des = "copied_files/dev_flash016/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash017 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash017/$file" ) { push @dev_flash017, "$file\n"; my $des = "copied_files/dev_flash017/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash017, "$file\n"; my $des = "copied_files/dev_flash017/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash018 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash018/$file" ) { push @dev_flash018, "$file\n"; my $des = "copied_files/dev_flash018/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash018, "$file\n"; my $des = "copied_files/dev_flash018/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash019 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash019/$file" ) { push @dev_flash019, "$file\n"; my $des = "copied_files/dev_flash019/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash019, "$file\n"; my $des = "copied_files/dev_flash019/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash020 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash020/$file" ) { push @dev_flash020, "$file\n"; my $des = "copied_files/dev_flash020/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash020, "$file\n"; my $des = "copied_files/dev_flash020/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash021 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash021/$file" ) { push @dev_flash021, "$file\n"; my $des = "copied_files/dev_flash021/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash021, "$file\n"; my $des = "copied_files/dev_flash021/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash022 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash022/$file" ) { push @dev_flash022, "$file\n"; my $des = "copied_files/dev_flash022/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash022, "$file\n"; my $des = "copied_files/dev_flash022/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash023 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash023/$file" ) { push @dev_flash023, "$file\n"; my $des = "copied_files/dev_flash023/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash023, "$file\n"; my $des = "copied_files/dev_flash023/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash024 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash024/$file" ) { push @dev_flash024, "$file\n"; my $des = "copied_files/dev_flash024/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash024, "$file\n"; my $des = "copied_files/dev_flash024/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash025 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash025/$file" ) { push @dev_flash025, "$file\n"; my $des = "copied_files/dev_flash025/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash025, "$file\n"; my $des = "copied_files/dev_flash025/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash026 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash026/$file" ) { push @dev_flash026, "$file\n"; my $des = "copied_files/dev_flash026/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash026, "$file\n"; my $des = "copied_files/dev_flash026/"; copy( "$dir/$file", $des ) or die "$!"; } } elsif ( $dev_flash027 =~ /\b$file\b/i ) { if ( -e "copied_files/dev_flash027/$file" ) { push @dev_flash027, "$file\n"; my $des = "copied_files/dev_flash027/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @dev_flash027, "$file\n"; my $des = "copied_files/dev_flash027/"; copy( "$dir/$file", $des ) or die "$!"; } } else { ###do nothing } } sub print_dev_flash { if (@dev_flash000 == 0){ print ''; }else{ print "\n\n dev_flash000\n|==================================>\ +n"; foreach my $filename(@dev_flash000){ print "\t$filename"; } } if (@dev_flash001 == 0){ print ''; }else{ print "\n\n dev_flash001\n|==================================>\ +n"; foreach my $filename(@dev_flash001){ print "\t$filename"; } } if (@dev_flash002 == 0){ print ''; }else{ print "\n\n dev_flash002\n|==================================>\ +n"; foreach my $filename(@dev_flash002){ print "\t$filename"; } } if (@dev_flash003 == 0){ print ''; }else{ print "\n\n dev_flash003\n|==================================>\ +n"; foreach my $filename(@dev_flash003){ print "\t$filename"; } } if (@dev_flash004 == 0){ print ''; }else{ print "\n\n dev_flash004\n|==================================>\ +n"; foreach my $filename(@dev_flash004){ print "\t$filename"; } } if (@dev_flash005 == 0){ print ''; }else{ print "\n\n dev_flash005\n|==================================>\ +n"; foreach my $filename(@dev_flash005){ print "\t$filename"; } } if (@dev_flash006 == 0){ print ''; }else{ print "\n\n dev_flash006\n|==================================>\ +n"; foreach my $filename(@dev_flash006){ print "\t$filename"; } } if (@dev_flash007 == 0){ print ''; }else{ print "\n\n dev_flash007\n|==================================>\ +n"; foreach my $filename(@dev_flash007){ print "\t$filename"; } } if (@dev_flash008 == 0){ print ''; }else{ print "\n\n dev_flash008\n|==================================>\ +n"; foreach my $filename(@dev_flash008){ print "\t$filename"; } } if (@dev_flash009 == 0){ print ''; }else{ print "\n\n dev_flash009\n|==================================>\ +n"; foreach my $filename(@dev_flash009){ print "\t$filename"; } } if (@dev_flash010 == 0){ print ''; }else{ print "\n\n dev_flash010\n|==================================>\ +n"; foreach my $filename(@dev_flash010){ print "\t$filename"; } } if (@dev_flash011 == 0){ print ''; }else{ print "\n\n dev_flash011\n|==================================>\ +n"; foreach my $filename(@dev_flash011){ print "\t$filename"; } } if (@dev_flash012 == 0){ print ''; }else{ print "\n\n dev_flash012\n|==================================>\ +n"; foreach my $filename(@dev_flash012){ print "\t$filename"; } } if (@dev_flash013 == 0){ print ''; }else{ print "\n\n dev_flash013\n|==================================>\ +n"; foreach my $filename(@dev_flash013){ print "\t$filename"; } } if (@dev_flash014 == 0){ print ''; }else{ print "\n\n dev_flash014\n|==================================>\ +n"; foreach my $filename(@dev_flash014){ print "\t$filename"; } } if (@dev_flash015 == 0){ print ''; }else{ print "\n\n dev_flash015\n|==================================>\ +n"; foreach my $filename(@dev_flash015){ print "\t$filename"; } } if (@dev_flash016 == 0){ print ''; }else{ print "\n\n dev_flash016\n|==================================>\ +n"; foreach my $filename(@dev_flash016){ print "\t$filename"; } } if (@dev_flash017 == 0){ print ''; }else{ print "\n\n dev_flash017\n|==================================>\ +n"; foreach my $filename(@dev_flash017){ print "\t$filename"; } } if (@dev_flash018 == 0){ print ''; }else{ print "\n\n dev_flash018\n|==================================>\ +n"; foreach my $filename(@dev_flash018){ print "\t$filename"; } } if (@dev_flash019 == 0){ print ''; }else{ print "\n\n dev_flash019\n|==================================>\ +n"; foreach my $filename(@dev_flash019){ print "\t$filename"; } } if (@dev_flash020 == 0){ print ''; }else{ print "\n\n dev_flash020\n|==================================>\ +n"; foreach my $filename(@dev_flash020){ print "\t$filename"; } } if (@dev_flash021 == 0){ print ''; }else{ print "\n\n dev_flash021\n|==================================>\ +n"; foreach my $filename(@dev_flash021){ print "\t$filename"; } } if (@dev_flash022 == 0){ print ''; }else{ print "\n\n dev_flash022\n|==================================>\ +n"; foreach my $filename(@dev_flash022){ print "\t$filename"; } } if (@dev_flash023 == 0){ print ''; }else{ print "\n\n dev_flash023\n|==================================>\ +n"; foreach my $filename(@dev_flash023){ print "\t$filename"; } } if (@dev_flash024 == 0){ print ''; }else{ print "\n\n dev_flash024\n|==================================>\ +n"; foreach my $filename(@dev_flash024){ print "\t$filename"; } } if (@dev_flash025 == 0){ print ''; }else{ print "\n\n dev_flash025\n|==================================>\ +n"; foreach my $filename(@dev_flash025){ print "\t$filename"; } } if (@dev_flash026 == 0){ print ''; }else{ print "\n\n dev_flash026\n|==================================>\ +n"; foreach my $filename(@dev_flash026){ print "\t$filename"; } } if (@dev_flash027 == 0){ print ''; }else{ print "\n\n dev_flash027\n|==================================>\ +n"; foreach my $filename(@dev_flash027){ print "\t$filename"; } } } my $dir = $ARGV[0]; chomp($dir); if ( not defined $dir ) { print "\nUsage: scan.pl dev_flash\n"; exit(0); } make_folders(); search_dir($dir); print_dev_flash();
|
|---|