#!/usr/bin/perl 
use strict;
use warnings;

my $count=0 + shift@ARGV || 10000;
my %vns=qw(
    var     g:v%i
    dictdot g:d.v%i
    dict    g:d['v%i']
);

while(my ($key, $value)=each %vns) {
    my $F1;
    my $F2;
    open $F1, ">", "$key-1.vim";
    open $F2, ">", "$key-2.vim";
    if($key=~/^dict/) {
        print $F1 "let g:d={}\n";
    }
    for(my $i=0; $i<$count; $i++) {
        my $v=sprintf $value, $i;
        print  $F1 "let $v=1\n";
        print  $F2 "echo $v\n";
    }
    close $F1;
    close $F2;
    system qw(vim -u NONE),
                  "-c", "let start=reltime()",
                  "-c", "source $key-1.vim",
                  "-c", "let first=reltime()",
                  "-c", "source $key-2.vim",
                  "-c", "let end=reltime()",
                  "-c", "call writefile(['$key\:',".
                                        "reltimestr(reltime(start, first)), ".
                                        "reltimestr(reltime(first, end)), ".
                                        "reltimestr(reltime(start, end))], ".
                                       "'times-$key.dat')",
                  "-c", "qa!";
}

