I figure the grep -f and the map are both not necessary.
Shouldn't this work also?
my @files = glob {"archiv/*vp.o$id"};
No. glob does not check the type of the file. -f does:
/tmp>touch foo.txt
/tmp>mkdir bar.txt
/tmp>ls -lF
[...]
drwxr-xr-x 2 alex users 40 Dec 23 10:16 bar.txt/
-rw-r--r-- 1 alex users 0 Dec 23 10:16 foo.txt
[...]
/tmp>perl -E 'say for glob "*.txt"'
bar.txt
foo.txt
/tmp>perl -E 'say for grep -f,glob "*.txt"'
foo.txt
/tmp>
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)