Commit | Line | Data |
7468c584 |
1 | #!/usr/local/bin/perl |
2 | |
3 | |
4 | @data = rand_ints( 10, 4, 8 ) ; |
5 | |
6 | print "@data\n" ; |
7 | |
8 | |
9 | @data = rand_padded_ints( 10, 4, 8 ) ; |
10 | |
11 | print "@data\n" ; |
12 | |
13 | @data = rand_deal( 10, 4 .. 8 ) ; |
14 | |
15 | print "@data\n" ; |
16 | |
17 | |
18 | @data = rand_deal( 10, 'aa0' .. 'zz9' ) ; |
19 | |
20 | print "@data\n" ; |
21 | |
22 | @data = rand_picks( 10, 'aa0' ) ; |
23 | |
24 | print "@data\n" ; |
25 | |
26 | |
27 | |
28 | sub rand_picks { |
29 | |
30 | my( $count, $pattern ) = @_ ; |
31 | |
32 | my( @rand, @chars, $char, $pick, @digits, @alphas ) ; |
33 | |
34 | @chars = split( '', $pattern ) ; |
35 | |
36 | @digits = ( '0' .. '9' ) ; |
37 | @alphas = ( 'a' .. 'z', 'A' .. 'Z' ) ; |
38 | |
39 | while( $count-- ) { |
40 | |
41 | $pick = '' ; |
42 | |
43 | foreach $char ( @chars ) { |
44 | |
45 | if ( $char eq 'a' ) { |
46 | |
47 | $pick .= $alphas[ rand 52 ] ; |
48 | next ; |
49 | } |
50 | |
51 | if ( $char eq '0' ) { |
52 | |
53 | $pick .= $digits[ rand 10 ] ; |
54 | next ; |
55 | } |
56 | } |
57 | |
58 | push( @rand, $pick ) ; |
59 | } |
60 | |
61 | @rand ; |
62 | } |
63 | |
64 | sub rand_deal { |
65 | |
66 | my( $count, @deck ) = @_ ; |
67 | |
68 | my( @rand ) ; |
69 | |
70 | push( @rand, $deck[ rand( @deck ) ] ) while $count-- ; |
71 | |
72 | @rand ; |
73 | } |
74 | |
75 | |
76 | |
77 | sub rand_ints { |
78 | |
79 | my( $count, $base, $range ) = @_ ; |
80 | |
81 | my( @rand ) ; |
82 | |
83 | push( @rand, int( rand( $range ) + $base ) ) while $count-- ; |
84 | |
85 | @rand ; |
86 | } |
87 | |
88 | |
89 | |
90 | sub rand_padded_ints { |
91 | |
92 | my( $count, $base, $range ) = @_ ; |
93 | |
94 | my( @rand, $pad ) ; |
95 | |
96 | $pad = length( $base + $range ) ; |
97 | |
98 | push( @rand, sprintf( "%0${pad}d", int( rand( $range ) + $base ) ) ) |
99 | while $count-- ; |
100 | |
101 | @rand ; |
102 | } |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | #splice( @data, int( rand( @data + 1 ) ), 0, $base++ ) while $cnt-- ; |
109 | |
110 | #print "@data\n" ; |