in reply to Unwanted splitting of File Name

What is going on here ?

Maybe the filename has newlines in it?

To be sure instead of merely printing use ddumperingBasic debugging checklist to visualize your data (lesson courtesy of Basic debugging checklist and brian's Guide to Solving Any Perl Problem )

Also, you're not taking free help :) (strict/warnings...Read this if you want to cut your development time in half!

You're using readdir which is like making your own hats pimperator, use find/rule

#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; use Path::Tiny qw/ path cwd /; use File::Find::Rule qw/ find rule /; my @names = find( directory => maxdepth => 1, in => $top.$second ); my @files = find( file => name => qr/\.txt$/i, in => \@names ); for my $fp ( @files ){ my $name = path( $fp )->basename; dd( $fp, $name ); }

update: a test :) simpler find/rule usage, mindepth means start testing rules at this depth

#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; use File::Find::Rule qw/ find rule /; my $startdir = 'file-find-rule-mindepth-maxdepth'; my @files = find( file => name => qr/\.txt$/i, mindepth => 2, maxdepth => 2, in => $startdir, ); dd( \@files ); __END__ $ findrule file-find-rule-mindepth-maxdepth file-find-rule-mindepth-maxdepth file-find-rule-mindepth-maxdepth/6.txt file-find-rule-mindepth-maxdepth/a file-find-rule-mindepth-maxdepth/q file-find-rule-mindepth-maxdepth/q/6.txt file-find-rule-mindepth-maxdepth/q/r file-find-rule-mindepth-maxdepth/q/r/5.txt file-find-rule-mindepth-maxdepth/q/s file-find-rule-mindepth-maxdepth/q/s/7.txt file-find-rule-mindepth-maxdepth/x $ perl file-find-rule-pimperator.pl ["file-find-rule-mindepth-maxdepth/q/6.txt"]

Replies are listed 'Best First'.
Re^2: Unwanted splitting of File Name
by jellisii2 (Hermit) on May 23, 2014 at 11:57 UTC
    To reiterate what I feel is the important point of the parent: Use File::Find. It's core. It will prevent self-hosing, which will happen at some point when recursing directories. :)