in reply to Re: Re: Re: rename files dynamically
in thread rename files dynamically

Perhaps you may be able to help me. I read the example that you send me but I still not clear on how to do it. it seems that I may have a brain cramp. Basically it try to pass an @array variable to another variable to be process. Here is the rest of my code
#! perl -w use strict; my $infile = 'c:/doclist1.chr'; my $outfile = 'c:/doclist1.txt'; open IN, "<$infile" or die "Couldn't open $infile, $!"; open OUT, ">$outfile" or die "Couldn't open $outfile, $!"; while(<IN>) { chomp; my @fields = split /,/; my $path_str = $fields[6]; do { warn "Empty field 7"; next } unless $path_str; my @path = split /\\/, $path_str; # assuming you want to remove a few directories my @new_path = join "\\", @path[0,5,6]; print OUT "\n@new_path"; } exit;
I'm trying to pass @new_path to a $_ variable to be process could you please help?

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: rename files dynamically
by pfaut (Priest) on Feb 24, 2003 at 18:20 UTC
    my @new_path = join "\\", @path[0,5,6];

    @newpath should not be an array variable since the result of join is a scalar. That should be $newpath. If you want to pass that value to a subroutine, do this:

    ... $new_path = join "\\", @path[0,5,6]; process_directory($new_path); ... sub process_directory { my ($path) = @_; #$path gets the value from $new_path above .... }
    --- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';