$ perl -E 'use File::Basename; say "|$_|" for fileparse("X.tar.gz", qw{\.gz \.tgz \.tar\.gz})' |X.tar| |./| |.gz| $ perl -E 'use File::Basename; say "|$_|" for fileparse("X.tar.gz", qw{\.tgz \.tar\.gz \.gz})' |X| |./| |.tar.gz|