- for my $file ([ 1, $array_t ], [ 0, $array_fast_t ]) {
- local $_ = $_;
- s!(\ba\b)?(\s*)HASH\b!($1 ? 'an': '') . "$2ARRAY"!eg;
- s{
- {\s*(['"]?[a-z]['"]?(?:\s*,\s*['"]?[a-z]['"]?)*)\s*}
- }{
- '[' . join(', ', map { my $n = num($_); $file->[0] ? "\$N[$n]" : $n }
- split /\s*,\s*/, $1) . ']'
- }gex;
- s!%(\{?)\$!\@$1\$!g;
- my $buf;
- my $suffix = $_;
- my ($bracket, $prefix);
- while (do { ($bracket, $suffix, $prefix) = extract($suffix); $bracket }) {
- $buf .= $prefix . dump_array(hash2array(eval $bracket));
- }
- $buf .= $suffix;
- $buf =~ s/\s+/ /g;
- $buf =~ s/\s+$//;
- print { $file->[1] } "$buf\n";
+ print $array_t convert_testcase($_, 0);
+ print $array_fast_t convert_testcase($_, 1);
+ }
+}
+
+close $hash_t;
+close $array_t;
+close $array_fast_t;
+
+open my $hash_kv_t, '<', 't/22-hash-kv.t';
+open my $array_kv_t, '>', 't/32-array-kv.t';
+
+$in_data = 0;
+while (<$hash_kv_t>) {
+ if (/^__DATA__$/) {
+ $in_data = 1;
+ } elsif (!$in_data) {
+ s{'%'}{'\@'};
+ if (/\bplan\s*[\s\(]\s*tests\b/) {
+ s/\s*;?\s*$//;
+ s/^(\s*)//;
+ $_ = qq($1if ("\$]" >= 5.011) { $_ } else { plan skip_all => 'perl 5.11 required for keys/values \@array' }\n);