The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use strict;
use Test::More;
use File::Slurp;

plan 'skip_all', "Scalar::Util not available" unless
	eval 'use Scalar::Util qw(tainted) ; tainted($0) ; 1';

plan 'tests', 5;

my $path = "data.txt";
my $data = "random junk\nline2";

SKIP: {
    # write something to that file
    open(FILE, ">$path") or skip 4, "can't write to '$path': $!";
    print FILE $data;
    close(FILE);

    # read the file using File::Slurp in scalar context
    my $content = eval { read_file($path) };
    is( $@, '', "read_file() in scalar context" );
    ok( tainted($content), "  => returned content should be tainted" );


#         # reconstruct the full lines by merging items by pairs
#         for my $k (0..int($#lines/2)) {
#             my $i = $k * 2;
#             $lines[$k] = (defined $lines[$i]   ? $lines[$i]   : '') 
#                        . (defined $lines[$i+1] ? $lines[$i+1] : '');
#         }

#         # remove the rest of the items
#         splice(@lines, int($#lines/2)+1);
#         pop @lines unless $lines[-1];

#	$_ .= $/ for @lines ;

#         my @lines = split m{$/}, $content, -1;
# 	my @parts = split m{($/)}, $content, -1;

# #         my @parts = $content =~ m{.+?(?:$/)?}g ;

# my @lines ;
# 	while( @parts > 2 ) {

# 		my( $line, $sep ) = splice( @parts, 0, 2 ) ;
# 		push @lines, "$line$sep" ;
# 	}

# 	push @lines, shift @parts if @parts ;

# #    ok( tainted($lines[0]), "  text => returned content should be tainted" );

    # read the file using File::Slurp in list context
   my @content = eval { read_file($path) };
   is( $@, '', "read_file() in list context" );
   ok( tainted($content[0]), "  => returned content should be tainted" );

	my $text = join( '', @content ) ;

	is( $text, $content, "list eq scalar" );


#    ok( tainted($lines[0]), "  => returned content should be tainted" );
}

unlink $path;