The glob function has issues, see To glob or not to glob. But if your pattern is always going to be the fixed string you showed, without variables interpolated into the string, then it's probably ok in this case.
When you say "files with unique names", I'm going to assume you mean basenames (the filename without the path), but I'm also guessing that what you need in @filelist is still the full filename, so that you can properly open the files. Also, by "latest updated/created", I'm guessing you mean the mtime (see also stat(2)).
You could use a hash; here I'm using the basename as the key, and each value is an anonymous array where the first element is the full filename and the second element is the mtime. To see how it works, uncomment the "# Debug" lines.
use warnings; use strict; #use Data::Dump; # Debug use File::Basename qw/fileparse/; use File::stat; my %filelist; for my $file (glob '/user/*/ws/*/BLK_*/*.txt') { my $bn = fileparse($file); my $mtime = stat($file)->mtime; #dd $file, $bn, $mtime; # Debug $filelist{$bn} = [$file,$mtime] unless $filelist{$bn} && $filelist{$bn}[1]>$mtime; } #dd \%filelist; # Debug my @filelist = sort map {$_->[0]} values %filelist; #dd \@filelist; # Debug
In reply to Re: GLOB function
by haukex
in thread GLOB function
by rahu_6697
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |