Here's a complete example of a search/replace using opendir. This will replace tabs with spaces in the input directory, saving the result in the output directory. Both directories must already exist. Hopefully this will illustrate the structure you can follow. Note that the "code" directory is irrelevant (as far as the script is concerned).
#!/usr/bin/env perl use 5.012; use warnings; use autodie; use Getopt::Long; # Replace tabs with 4 spaces my $verbose = 0; GetOptions(verbose => \$verbose); die "Usage: $0 [--verbose] input_path output_path" if @ARGV != 2; map { die "$_ is not a directory, or does not exist\n" unless -d } @AR +GV; my ($input, $output) = @ARGV; opendir my ($in_dir), $input; for (sort grep { -f "$input/$_" } readdir $in_dir) { say if $verbose; open my $in, '<', "$input/$_"; open my $out, '>', "$output/$_"; while (<$in>) { s/\t/ /sg; print $out $_; } close $in; close $out; } closedir $in_dir;
In reply to Re: Input Output Question
by rjt
in thread Input Output Question
by perlmonk007
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |