On 4/5/12 Thu  Apr 5, 2012  1:34 PM, "Somu" <som....@gmail.com> scribbled:

> Hello everyone,
> 
> #this code works for any valid input
> #
> use strict;
> use warnings;
> 
> print "\n\n\tEnter directory : ";
> my $path = <>;
> chomp($path);                           #but if this line is eliminated, it
> shows d drive(current drive) for any input
> my @files = glob "$path/*" or die;
> print "\n\n\tReading file names in $path";
> print "\n\n\tFiles are :\n";
> foreach ( @files ){print;print"\n";}
> print "\n\n";
> system('pause');
> 
> 
> What's going on??

glob will split the string you give it on whitespace, allowing you to use
such patterns as glob("*.h *.c"). When you don't remove the newline from
your input line, you sre giving glob the string "directory\n/*". This is
parsed into the two strings "directory" and "/*". The second of these will
expand to all of the files in your top-level directory.

See 'perldoc -f glob' and 'perldoc File::Glob'





-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


  • chomp Somu
    • Re: chomp Jim Gibson

Reply via email to