#!/usr/bin/perl

use 5.040;

my @a = 0..9;
my $na = scalar(@a);
my @b = 'a'..'z';
my $nb = scalar(@b);
my @c = 'A'..'Z';
my $nc = scalar(@c);

my ($i,$j,$k);
my (%hash, $msg, $count);

alarm (30 * 60);   # media hora
while (1){
    $msg = generator();
    $hash{$msg}++;
    if ($hash{$msg} == 1){
	$count++;
	say "$count -> $msg";
    }
}

exit 2;




sub generator{
    $i = $a[ int (rand()*$na) ];
    $j = $b[ int (rand()*$nb) ];
    $k = $c[ int (rand()*$nc) ];
    return (join '', jlm( ( $i, $j, $k ) ));
}
    
sub jlm {
    # An alternate shuffle
    my @deck = @_;
    my @deck2;
    my $n = scalar(@deck);
    while ($n){
	my $t = int ($n)*rand(); 
	push @deck2, splice(@deck,$t,1);
	$n--;
    }
    return @deck2;
}
    
    
