#!/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
|