in reply to directories and charsets
1) readdir returns only the filename whereas -f needs (in general) the path appended to the front. Example:
2) carriage control will be different but there is a dos program called unix2dos as well as a unix program called dos2unix that translates accordingly. For example:sub Traverse { my $dir = shift; opendir my $dh, $dir or return 0; for my $file ( grep !/^\.\.?$/, readdir $dh ) { my $path = "$dir/$file"; if ( -d $path ) { Traverse( $path, @_ ); } elsif ( -f $path ) { ProcessFile( $path, @_ ); } else { warn "$path not -d or -f\n"; } } closedir $dh; }
sub ProcessFile { my ( $path, $windows ) = @_; my $pid = 0; if ( $windows ) { open \*FH, "<$path" or die "$!: $path"; } else { $pid = open \*FH, "dos2unix $path |" or die "$!: dos2unix $path |"; } my $fh = \*FH; # file content (<$fh>) is now unix/dos transparent close $fh; $pid and waitpid $pid,0; }
-M
Free your mind
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: directories and charsets
by soliplaya (Beadle) on Mar 15, 2007 at 15:34 UTC | |
by Moron (Curate) on Mar 15, 2007 at 15:55 UTC |