The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/perl
# openfile.t
# Copyright (c) 2006 Jonathan Rockway <jrockway@cpan.org>
use Test::More tests => 8;
use strict;
my $tmp = Directory::Scratch->new;
ok($tmp, 'created $tmp');
my ($fh, $path) = $tmp->openfile('foo');
is($path->stringify, $tmp->exists('foo')->stringify,
'openfile returned sane path');
eval {
print {$fh} "Foo\nbar\nbaz\n";
};
ok(!$@, 'writing to fh works');
ok(close $fh, 'closed fh');
$fh = $tmp->openfile('bar');
eval {
print {$fh} "Foo\nbar\nbaz\n";
};
ok(!$@, 'writing to fh works');
ok(close $fh, 'closed fh');
ok($tmp->exists('bar'), 'bar exists');
my $contents = path($tmp->exists('bar')->stringify)->slurp;
is($contents, "Foo\nbar\nbaz\n", 'bar can be read');