The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

# TEST SCOPE: These tests exercise the ":prefix" and ":noprefix" keywords

plan tests => 4;

# First two tests test against this value
$ENV{VALUE} = 'test value';

eval q|
use Env::Export qw(:prefix PRE_ VALUE);

is(PRE_VALUE(), $ENV{VALUE}, "Basic :prefix usage");
|;
warn "eval fail: $@" if $@;

$ENV{VALUE2} = 'second value';
$ENV{VALUE3} = 'third value';
eval q|
use Env::Export qw(:prefix P_ VALUE2 VALUE3 :prefix Q_ VALUE2);

is(P_VALUE3(), $ENV{VALUE3}, "Carry-over of a prefix");
is(P_VALUE2(), Q_VALUE2(), "Changing prefix");
|;
warn "eval fail: $@" if $@;

$ENV{VALUE4} = 'fourth value';
eval q|
use Env::Export qw(:prefix P_ VALUE4 :noprefix VALUE4);

is(P_VALUE4(), VALUE4(), "Turning off a prefix");
|;
warn "eval fail: $@" if $@;

exit;