[EMAIL PROTECTED] wrote:
With regards to the script below, inside the foreach loop, can
someone explain to me why the expression $_=~ s/\nfred\n/nancy/; did
not change the default variable $_ from fred (enclosed by \n) to
nancy.
Because there is no $_ variable with two newlines. @newdata contains the
two elements "hello how are you\n" and "fred\n", and you are dealing
with one element at a time.
my @newdata = <MYDATA>;
Instead of storing the data in an array, slurp them into a scalar variable.
my $newdata;
{
local $/;
$newdata = <MYDATA>;
}
foreach (@newdata){
$_=~ s/\nfred\n/nancy/;
print MYDATA "$_";
print "$_";
}
$newdata =~ s/\nfred\n/ nancy\n/;
print MYDATA $newdata;
print $newdata;
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/