David Gilden wrote: > OK, one problem is solved, which was the path to the data file. > > I know there is a simple way to read in a file like the following: > > apple,2 > banana,4 > kiwi,1 > > > and produce a HASH. The code below works I get the feeling there is a more > compact way to accomplish this. > > ------- > > #!/usr/bin/perl -w > > use strict; > my %prices; > > my $data = "/Users/dowda/Desktop/tmp test/test.txt"; > > open (FH,$data) || die "could not open $data $!"; > > local $/; > > my $tmp = <FH>; > my @tmp = split (/\n/,$tmp); > > close FH; > > for (@tmp) { > my ($k,$v) = split /,/; > $prices{$k} =$v; > } > > for my $key (keys %prices){ > > print "$key = $prices{$key}\n"; > > }
how about this: #!/usr/bin/perl use warnings; use strict; open (FH, "<", '/Users/dowda/Desktop/tmp test/test.txt') or die "Unable to open input file: $!"; my %prices; while (<FH>) { chomp; my ($key, $value) = split /,/; warn "Duplicate key: $key\noldval: $prices{$key}\tnewval:$value\n" if defined $prices{$key};#always idiot proof the input ;) $prices{$key} = $value; } print "$_ = $prices{$key}\n" for sort keys %prices; this work any better? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]