#!/usr/bin/env perl use strict; use warnings; use Data::Dump; my $file = qq(buff.txt); open( FH, "+<", $file ) or die "Opening: $!"; my @array = ; 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