#!./perl
+use strict;
+require './test.pl';
-$^I = '.bak';
+$^I = $^O eq 'VMS' ? '_bak' : '.bak';
-# $RCSfile: inplace.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:29 $
+plan( tests => 2 );
-print "1..2\n";
+my @tfiles = (tempfile(), tempfile(), tempfile());
+my @tfiles_bak = map "$_$^I", @tfiles;
+
+END { unlink_all(@tfiles_bak); }
+
+for my $file (@tfiles) {
+ runperl( prog => 'print qq(foo\n);',
+ args => ['>', $file] );
+}
+
+@ARGV = @tfiles;
-@ARGV = ('.a','.b','.c');
-`echo foo | tee .a .b .c`;
while (<>) {
s/foo/bar/;
}
print;
}
-if (`cat .a .b .c` eq "bar\nbar\nbar\n") {print "ok 1\n";} else {print "not ok 1\n";}
-if (`cat .a.bak .b.bak .c.bak` eq "foo\nfoo\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";}
+is ( runperl( prog => 'print<>;', args => \@tfiles ),
+ "bar\nbar\nbar\n",
+ "file contents properly replaced" );
+
+is ( runperl( prog => 'print<>;', args => \@tfiles_bak ),
+ "foo\nfoo\nfoo\n",
+ "backup file contents stay the same" );
-unlink '.a', '.b', '.c', '.a.bak', '.b.bak', '.c.bak';