The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use v6-alpha;

use Test;

=kwid

Bits and Pieces.

=cut

plan 17;

my $str;
$str = "hello";
ok($str eq 'hello', "basic quote");
$str = qq[world];
ok($str eq 'world', "qq bracket");
$str = qq{hello};
ok($str eq 'hello', "qq brace");
$str = qq<world>;
ok($str eq 'world', "qq angle");
$str = qq>hello>;
ok($str eq 'hello', "qq backwards angle");
$str = qq/world/;
ok($str eq 'world', "qq slash");

my $hello = "Hello";
$str = "$hello, World";
ok($str eq 'Hello, World', "dq interpolation");
$str = "Dear World, $hello";
ok($str eq 'Dear World, Hello', "dq ultimate interpolation");
$str = "I say $hello, World";
ok($str eq 'I say Hello, World', "dq internal interpolation");
$str = "$hello, World, I say $hello";
ok($str eq 'Hello, World, I say Hello', "foghorn leghorn interpolation");

my @array;
@array = qw/"foo" "bar"/;
ok(@array[0] eq '"foo"' and @array[1] eq '"bar"', 'qw//');

my @array;
@array = q:w/"foo" "bar"/;
ok(@array[0] eq '"foo"' and @array[1] eq '"bar"', 'q:w//');

my %hash;
%hash<Mon Tue Wed Thu Fri Sat Sun> = 1..7;;
ok(%hash{'Mon'} eq '1' and %hash{'Sun'} eq '7', '%hash<>');

if ($*OS eq "browser") {
    skip_rest "Programs running in browsers don't have access to regular IO.";
    exit;
}

sub nonce () { return (".$*PID." ~ int rand 1000) }
my $filename = "tmpfile" ~ nonce;

my $out = open("$filename", :w);
$out.say("line1");
$out.say("line2");
$out.close;

my $in0 = open("$filename");
my $line = $in0.readline;
is($line, "line1", "file I/O (scalar, readline)");
$in0.close;

my $in1 = open("$filename");
my $line = =$in1;
is($line, "line1", "file I/O (scalar, unary =)");
$in1.close;

my $in2 = open("$filename");
my @line = =$in2;
is("@line[]", "line1 line2", "file I/O (list, unary =)");
$in2.close;

ok(unlink("$filename"), "file unlinked");