Hi All,
Am trying to read directory/subdirectories and for files from a path recursively. Once file found in any directory, reading
file content(usually just 1 line in a file) and substituting space with comma from the line.
then I need to pass the values to another sub functions.
Problem :
1. line number 35 doesn't seems to be working. when i try to print $line, it doesn't show anything/value.
2. Need to pass @columns/@filenames/@dir_names to the sub function(&write_output) called in line number 46.
Can someone tell me where am doing wrong and help me out
I need to know is there any tool/utlity for Windows XP where in which in can run the perl script line by line debugging mode so, that i can see what's happen to
the variables during run time.
Many Thanks...
#! /usr/bin/perl
use warnings;
use strict;
use File::Find;
use File::Basename;
my $base_dir = 'C:\Perl\TestData';
my (@columns,@dirs,@buf,@dir_names,@filenames);
my ($dir,$file,$resultxmlfile,$line,$fh);
$line='';
sub process_files
{
print "dive into: $_[0]\n";
opendir DIR, $_[0] or die "Could not open directory";
print $_[0];
print "\n";
@dirs = readdir DIR;
closedir DIR;
foreach $file (@dirs) {
if ($file =~ /\.{1,2}/) {next }
print "processing: $file\n";
if ( -d "$_[0]/$file" ) {
process_files ("$_[0]/$file");
push(@dir_names, basename($file));
print @dir_names;
print "\n";
foreach my $file (@dirs){
print $file;
next if $file eq '.' or $file eq '..';
print "\n";
open (FILE, "<", $file) or die "Could not open file -- $_[0]
+/$file";
@buf = <FILE>;
foreach $line (@buf) {
$line = <FILE>; # this line doesn't work. don't know w
+hat's wrong here..
$line=~ s/ /,/g;
print $line;
push(@columns,$line);
print @columns;
print "\n";
$file =~ s/.*\///;
$file =~ s/\.[^.]+$//;
push(@filenames, $file);
print @filenames;
}
&write_output; # need to pass @columns/@filenames/@dir
+_names values to this function
close FILE;
}
}
}
}
process_files $base_dir;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.