use constant RTELEM_TYPE_FILEATTACHMENT=>8; ... foreach $doc($alldocs) { .. ... if( $Document->HasEmbedded ) { print "hasembeded\n"; my $body = $Document->GetFirstItem('Body'); my $nav = $body->CreateNavigator; if( $nav->FindFirstElement(RTELEM_TYPE_FILEATTACHMENT) ) { do { my $att = $nav->GetElement; my $dir = "$oriDIR/$cpt"; mkdir $dir unless -d $dir; my $file = "$dir/" . $att->Source; $att->ExtractFile( $file ); print "$file extracted\n"; } while( $nav->FindNextElement ) ; } }