On Sat, Jul 12, 2003 at 02:43:18PM -0500, Mike Flannigan wrote: > OK, I'm a real newbie, but even I am ashamed to be asking this. > I want to search for a vertical mark ( | ) and replace it with > something else (h). That's all - nothing fancy. What am I doing > wrong here: > > use strict; > use warnings; > my $listelem = "52101.txt"; > #Open file in listelem if it exists > if (-e $listelem) { > open (HANDLE, $listelem); > } > else { > print "$listelem does not exist.\n"; > system('pause'); > }
This should be: open (HANDLE, $listelem) or die "open: $listelem: $!"; That way if the open fails for any reason you'll get a sensible error message. (And it avoids the race condition.) > #Grab main file contents > chomp (my @filecontents = <HANDLE>); > > while (<HANDLE>) { > my $filecontents =~ s/\|/h/; > } And here you need to loop over the array and do the substitution on each element: s/\|/h/g foreach @filecontents; If it makes things clearer you can do the iteration and substitution with an explicit variable (instead of the implicit $_). for my $line (@filecontents) { $line =~ s/\|/h/g; } -- Steve -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]