Hi and welcome PackerX!
You print to STDOUT.
Something like that you try to accomplish is described in the Perl Cookbook, recipe 7.10 (Modifying a File in Place):
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dump;
my $file = qq(buff.txt);
open( FH, "+<", $file ) or die "Opening: $!";
my @array = <FH>;
dd \@array;
s/cuke/beer/ for @array;
seek( FH, 0, 0 ) or die "Seeking: $!";
print FH @array or die "Printing: $!";
truncate( FH, tell(FH) ) or die "Truncating: $!";
close(FH);
dd \@array;
__END__
karls-mac-mini:monks karl$ cat buff.txt
foo
bar
nose
cuke
karls-mac-mini:monks karl$ ./inplace.pl
["foo\n", "bar\n", "nose\n", "cuke\n", "\n", "\n"]
["foo\n", "bar\n", "nose\n", "beer\n", "\n", "\n"]
karls-mac-mini:monks karl$ cat buff.txt
foo
bar
nose
beer
Please see also seek, tell, and truncate.
Update: Posted a bit to late because of Germany vs. Ireland.
Update2: Added forgotten link to tell.
Regards, Karl
«The Crux of the Biscuit is the Apostrophe»
|