use strict; use warnings; use v5.36; use Path::Tiny; use MsOffice::Word::Surgeon; use DDP; use Try::Catch; my $dir = path('/mnt/nasty/Koku/The Bakilanas'); my $iter = $dir->iterator; while ( my $filepath = $iter->() ) { if ($filepath->basename =~ /.docx?$/i) { say $filepath; open_file($filepath->stringify); } } sub open_file($filename) { try { my $surgeon = MsOffice::Word::Surgeon->new(docx => $filename); say "opens fine!"; } catch { say "couldn't open: $@"; } }