Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Why I hate File::Find and how I (hope I) fixed it

by clemburg (Curate)
on Aug 30, 2001 at 21:46 UTC ( #109149=note: print w/replies, xml ) Need Help??

in reply to Why I hate File::Find and how I (hope I) fixed it

You can do better than just take fixed arguments:

#!/usr/bin/perl -w use strict; use File::Find; sub make_wanted { my ($function, $get_argument_function) = @_; return sub { $function->($get_argument_function->()); } } sub delete_file_with_user_confirmation { my ($file_name, $user_input) = @_; if ($user_input =~ /yes/i) { unlink($file_name) or die "Error: no unlink for $file_name: $!"; } } sub get_user_input_for_file { # show full path to user print "Delete ", $File::Find::name, " (say 'yes' to delete)? "; my $user_input = <STDIN>; # but remember we chdir()ed into $File::Find::dir return $_, $user_input; } my @dirs = @ARGV ? @ARGV : ("."); find(make_wanted(\&delete_file_with_user_confirmation, \&get_user_input_for_file), @dirs);

Christian Lemburg
Brainbench MVP for Perl

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://109149]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (15)
As of 2017-06-23 14:27 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (549 votes). Check out past polls.