#! /usr/bin/perl use strict; use warnings; use feature qw(say); use File::Find; use Cwd; my $name = shift; my $basedir = shift; exit 1 unless defined $name; $basedir = getcwd unless defined $basedir; die "'$basedir' is not a directory.\n" unless -d $basedir; # print full path if it is a directory and the last part matches $name find( sub { say $File::Find::name if -d $File::Find::name && $_ eq $name }, $basedir );