#!/usr/bin/perl use strict; use File::Find::Rule; use Data::Dump 'pp'; my $path = '/abc'; my $rule = File::Find::Rule->new; $rule->file->name( 'result.xls' ); my %source=(); for my $filename ( $rule->in($path) ){ my @f = split '/',$filename; my $mode = $f[-2]; $source{$mode} = $filename; }; pp \%source;