for my $file ( find( name => qr/R2_001.fastq$/, in => $root ) ){ SomeThing( $file ); } exit 0; sub SomeThing { my( $onein) = @_; my $twoin = $onein; $twoin =~ s/R2_001.fastq$/R1_001.fastq/; use Path::Tiny qw/ path /; my $out = path( $onein )->realpath( 'Output.fasta' ); OneTwo( $onein, $twoin , $out ); } sub OneTwo { my( $onein, $twoin, $out ) = @_; if( not path( $twoin )->exists ){ warn qq{Skipping "$onein" because "$twoin" does not exist}; return; } ... }