And here are the results...#!/usr/bin/perl srand(time); #option 1 my @a = ("b","c","d","e","f","g","h","i","j"); my $a = "aaaaaaaaaaaaaaaaaaaaaa"; $a =~ s/a/$a[int(rand(@a))]/g; print "\noption 1:\n$a\n"; #option 2 my @b = ("b","c","d","e","f","g","h","i","j"); my $b = "bbbbbbbbbbbbbbbbbbbbb"; $b =~ s/b/randme()/ge; print "\noption 2:\n$b\n"; sub randme { return $b[int(rand(@b))]; } #option 3 my @c = ("b","c","d","e","f","g","h","i","j"); my $c = "ccccccccccccccccccc"; for (;;) { last unless $c =~ s/c/$c[int(rand(@c))]/; } print "\noption 3:\n$c\n";
Why on earth won't option 1 return random letters, especially since option 2 will?! This doesn't make logical sense to my poorly constructed brain.option 1: bbbbbbbbbbbbbbbbbbbbbb option 2: gjfcijeeddgbcghddjjff option 3: dbjdbhbhdbedfdeifdb
And is there a better way to do what I am looking to do (the results of 2 or 3 above)?
In reply to randomizing global replacement by lokiloki
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |