#!/usr/bin/perl -- use strict; use warnings; use File::Slurp; use Data::Dump qw/ dd /; 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 = (); my %damndevs = ( dev_flash000 => \@dev_flash000, dev_flash001 => \@dev_flash001, dev_flash002 => \@dev_flash002, dev_flash003 => \@dev_flash003, dev_flash004 => \@dev_flash004, dev_flash005 => \@dev_flash005, dev_flash006 => \@dev_flash006, dev_flash007 => \@dev_flash007, dev_flash008 => \@dev_flash008, dev_flash009 => \@dev_flash009, dev_flash010 => \@dev_flash010, dev_flash011 => \@dev_flash011, dev_flash012 => \@dev_flash012, dev_flash013 => \@dev_flash013, dev_flash014 => \@dev_flash014, dev_flash015 => \@dev_flash015, dev_flash016 => \@dev_flash016, dev_flash017 => \@dev_flash017, dev_flash018 => \@dev_flash018, dev_flash019 => \@dev_flash019, dev_flash020 => \@dev_flash020, dev_flash021 => \@dev_flash021, dev_flash022 => \@dev_flash022, dev_flash023 => \@dev_flash023, dev_flash024 => \@dev_flash024, dev_flash025 => \@dev_flash025, dev_flash026 => \@dev_flash026, dev_flash027 => \@dev_flash027, ); extract_files('nowhere','nohow'); ## my test that my version works sub extract_files { #~ my @devflash = ( map { 'temp/dev_flash'.$_ } '000'..'027' ); my @devflash = ( 'temp/dev_flash000', 'temp/dev_flash001', 'temp/dev_flash002', 'temp/dev_flash003', 'temp/dev_flash004', 'temp/dev_flash005', 'temp/dev_flash006', 'temp/dev_flash007', 'temp/dev_flash008', 'temp/dev_flash009', 'temp/dev_flash010', 'temp/dev_flash011', 'temp/dev_flash012', 'temp/dev_flash013', 'temp/dev_flash014', 'temp/dev_flash015', 'temp/dev_flash016', 'temp/dev_flash017', 'temp/dev_flash018', 'temp/dev_flash019', 'temp/dev_flash020', 'temp/dev_flash021', 'temp/dev_flash022', 'temp/dev_flash023', 'temp/dev_flash024', 'temp/dev_flash025', 'temp/dev_flash026', 'temp/dev_flash027', ); my $des = ''; my ( $dir, $file ) = @_; for my $devfile ( @devflash ) { #~ my( $devdigit ) = $devfile =~ m{/(dev[^/]+)$}; #~ my $devdigit = path( $devfile )->basename; #~ my( $devdigit ) = $devfile =~ m{/(dev_flash\d+)$}s; my( $devdigit ) = $devfile =~ m{/([^/]+)$}; my $devarray = $damndevs{$devdigit} || die "fail to find $devdigit in damndevs IMPOSSIBLE! "; #~ dd( $devdigit , $devarray ); ## worked my $contents = read_file( $devfile ); if( $contents =~ /\b$file\b/i ) { if( -e "copied_files/$devdigit/$file" ) { push @$devarray, "$file\n"; my $des = "copied_files/$devdigit/duplicate/"; copy( "$dir/$file", $des ) or die "$!"; } else { push @$devarray, "$file\n"; my $des = "copied_files/$devdigit/"; copy( "$dir/$file", $des ) or die "$!"; } } ## end if( $contents =~ /\b$file\b/i) } } ## end sub extract_files