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


in reply to process a file and reading a line and passing the values to another sub function

Thanks Everyone. @2Teez, what you suggested is what i was looking but now, when put $line conent to some array after doing csv(somma seperated), am not able to get any values to $line or @linecolumns. Can you please suggest help me on how to get the $line value into some array so, that i can pass that array element/value to another sub function.

#!/usr/bin/perl use warnings; use strict; use File::Find; my $base_dir = 'C:\\TestData'; # put in your base directory my ($dirname,$filename,$line); my (@linecolumns); find( \&wanted, $base_dir ); sub wanted { return if $_ eq '.' or $_ eq '..'; if (-d) { print " >>> dive into: $_\n" if -d; $dirname = $_; } else { readout_file($_); ## call subroutine readout_file } } sub readout_file { my ($filename) = @_; open my $fh, '<', $filename or die "can't open file:$!"; while ($line=<$fh>) { chomp; $line=~s/ /,/g; ## OR s/ /,/g; if you want print $line, $/; push(@linecolumns,$line); #print $_, $/; ## OR any other subroutine you want print $linecolumns[0], $/; print $filename, $/; #write_output($dirname,$filename,$linecolumns[0],$linecolumns[3]); ## +call subroutine to print std template in output file } }
  • Comment on Re: process a file and reading a line and passing the values to another sub function
  • Download Code