- Milleruse strict; use File::Basename qw(basename); my @files = qw( /data/node12/file-29-2.txt /data/node12/file-34-2.txt /data/node12/file-50-2.txt /data/node30/file-34-2.txt /data/node30/file-60-2.txt /data/node30/file-62-2.txt /data/node34/file-29-2.txt ); my %seen = (); foreach my $file (@files) { my $bn = basename($file); if ($bn =~ /(\d+)/) { my $id = $1; if ($seen{$id}++) { print "$file needs to be deleted\n"; } } else { warn "Unexpected file found: $file\n"; } }
In reply to Re: Removing duplicate filenames in different directories from an array
by wind
in thread Removing duplicate filenames in different directories from an array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |