in reply to Re^2: Updating fields in a text file
in thread Updating fields in a text file

wendy24,
You are still omitting details that would allow us to provide a full working solution such as the width of each field. Additionally, do the records have a newline separator or is it just one long runone line?
#!/usr/bin/perl use strict; use warnings; my ($in, $out) = @ARGV; die "Usage: $0 <input file> <output file>" if ! defined $in || ! defin +ed $out; open(my $in_fh, '<', $in) or die "Unable to open '$in' for reading: $! +"; open(my $out_fh, '>', $out) or die "Unable to open '$out' for writing: + $!"; while ( <$in_fh> ) { chomp; my ($name, $add, $city, $state, $zip) = unpack('A10A20A15A12A5', $ +_); $zip = 15206 if uc($city) eq 'PITTSBURGH'; print $out_fh $name, $add, $city, $state, $zip, "\n"; }
Of course, this assumes that name is only 10 characters long and zip is 5 but they can be adjusted accordingly. It also assumes the records are newline separated and will not work otherwise. Don't worry about being new but think about what information is needed to solve the problem even if you don't know how to solve it yourself.

Cheers - L~R

Replies are listed 'Best First'.
Re^4: Updating fields in a text file
by Anonymous Monk on Jul 11, 2006 at 16:28 UTC
    The records will not be runon lines. The fields can and probably will be of different lengths, but I can adjust for that. Thanks for your help. I will try your suggestions.