#!/usr/bin/perl use strict; use File::Find; use Data::Dumper; my $folder = '/folder/with/fasta/files'; my @files=(); find( \&process, $folder ); print Dumper \@files; sub process { return unless $_ =~ /CDS\.fasta$/; my $file = $File::Find::name; open my $fh,'<',$file or die $!; my $header = <$fh>; close $fh; push @files,[$File::Find::dir,$_,$header]; }