As I have tried to explain to you your use of substr is not going to do what you want. However we need to see
1 the exact input data (comma separated)
2 the exact output data (pipe delim) that you want to generate from 1
If you are just trying to get rid of part of the file path you need to use a s/// regex or split $fields[6] on the '\', select the parts you want, join these bits back together with '/' and then join the whole thing with '|'.
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; # remove null fields if you really have \\ in there @path = grep { $_ } @path; # assuming you want to remove the 17 and 16 dirs in the example my $fixed_path = join "\\", @path[0,2,3] my $out = join '|', @fields[0..5], $fixed_path, "\n"; print OUT $out; }
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
In reply to Re: Re: Re: Open file & Strip comma delimiter
by tachyon
in thread Open file & Strip comma delimiter
by skyler
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |