http://www.perlmonks.org?node_id=1043879

torres09 has asked for the wisdom of the Perl Monks concerning the following question:

hey

is it possible to list all files of a directory in a perl one by one , asking user is this your file

say a directory fruits has files apple , mango, pineapple,strawberry

can we show it to user like is apple your file?

is mango your file ?

Replies are listed 'Best First'.
Re: listing all files of a dir
by davido (Cardinal) on Jul 12, 2013 at 06:18 UTC
Re: listing all files of a dir
by kcott (Archbishop) on Jul 12, 2013 at 06:22 UTC

    G'day torres09,

    See readdir. A slight modification of the second example should do what you want.

    -- Ken

      thanks for replying , just one more thing how to point to the current directory as in
      opendir(my $dh, $some_dir) || die;

      instead of $somedir , how can we have present directory

        use Cwd

        These questions are searchable.


        Dave

        You can use Cwd for that.

        -- Ken

Re: listing all files of a dir
by 2teez (Vicar) on Jul 12, 2013 at 07:58 UTC

    Hi torres09,
    is it possible to list all files of a directory in a perl one by one , asking user is this your file

    Have you thought of using File::Find or File::Find::Rule
    I use to have a "throw-away" script, I once used for deleting files I don't want.
    You can modify this to ASK instead of deleting..
    For me, the advantage of these modules is that they do ALL the dirty work for me.

    use warnings; use strict; use File::Find qw(find); die "No directory is specified" unless defined $ARGV[0]; my $dir = $ARGV[0]; find( \&unwanted, $dir ); sub unwanted { if (/^\.{1,}/) { return } else { print "Do you want to delete ", $_, $/; chomp( my $ans = <STDIN> ); # to delete the file, remove the comment the code below #unlink $_ if $ans =~ /\by\b/; } }
    NOTE: Please note that am only showing the usage of one the module, stated above. The OP will have to modify this to satisfy his intended condition.
    Moreover, the OP should see documentation for various modules.

    If you tell me, I'll forget.
    If you show me, I'll remember.
    if you involve me, I'll understand.
    --- Author unknown to me

      There really isn't much dirty work to be done here. The File::Find approach is more complex, for no added benefit to his particular need.

      Sure, if you're diving recursively into a directory structure, File::Find, File::Find::Rule, etc., are the tools of choice. But he's reading a single directory. He didn't say anything about diving deeper into the structure.

      Using File::Find to deal with a single directory is like using Data::Deep to look at an integer held in a scalar variable.


      Dave

        hi davido,
        "..Sure, if you're diving recursively into a directory structure...He didn't say anything about diving deeper into the structure"
        You are right in the sense that the OP didn't say anything about diving deeper into the structure. But am almost certain that you wouldn't be surprised that "this" follow sooner or later, I can almost bet my dinner on it. :)
        And you are right ultimately because one should stay within a "asked" question as much as possible, I was only trying to predicts the OP ...
        AHooohhsh my crystal ball is broken..
        Thanks.

        If you tell me, I'll forget.
        If you show me, I'll remember.
        if you involve me, I'll understand.
        --- Author unknown to me