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

BEGIN {
  $| = 1;
  use vars qw/$loaded/;
  $loaded = 0;
  print "Running tests\n";
}

END {
  print "not ok 1\n" unless $loaded;
}

use List::Intersperse qw/intersperse intersperseq/;
$main::loaded = 1;
print "ok 1\r";

my $test_nm = 1;
while (<DATA>) {
  chop;
  $test_nm++;
  my @olis = split; # original list
  $_ = <DATA>; chop;
  my @elis = split; # expected list
  my @ilis = intersperse @olis; # interspersed list
  if ("@elis" eq "@ilis") {
    print "ok $test_nm\r";
  } else {
    print "e: @elis\ni: @ilis";
    print "\nnot ok $test_nm\n";
  }

  $test_nm++;
  @ilis = intersperseq { $_[0] } @olis;
  if ("@elis" eq "@ilis") {
    print "ok $test_nm\r";
  } else {
    print "e: @elis\ni: @ilis";
    print "\nnot ok $test_nm\n";
  }
}

print "\n";

__DATA__
A A B B C C
A C B C B A
A A A A A A A A
A A A A A A A A
A A A B B B C C C D D D E E E F F F G G G H H H I I I
A I H G F E D C B I H G F E D C B A I H G F E D C B A
A A A B C C C D D E F F G G G G H I I J K K K L L L
J G L K A C I G F D L K A G C E I F L K G A C D H B
H H H H H H H H H H H H S S S S S S S S S S S S D D D D D D D D D D D D C C C C C C C C C C C C
C H D S H D S C H D S C H D S C H D S C H D S C H D S C H D S C H D S C H D S C H D S C H D S C