Flemming Greve Skovengaard wrote:
> 
> John W. Krahn wrote:
>> 
>> Flemming Greve Skovengaard wrote:
>>>
>>>     $rand_string .= $letters[$index];
>>
>> Or simply:
>>
>>       $rand_string .= $letters[ rand @letters ];
> 
> Yes, that would save a line of code, a variable and a call to scalar().
> But shouldn't that be:
> 
>     $rand_string .= $letters[ int rand @letters ];
> 
> instead?

The array index can only be an integer, in other words $letters[ 4.41792527 ]
makes no sense so perl converts the value of the index to an integer so the
use of int() is redundant.

$ perl -le'
my @x = 0 .. 29;
for ( map rand( @x ), 1 .. 20 ) {
    print "Index: $_    Element: $x[$_]"
    }
'
Index: 16.1372656909499    Element: 16
Index: 10.402236874601    Element: 10
Index: 4.93827622731633    Element: 4
Index: 27.3864972245868    Element: 27
Index: 21.1438057726559    Element: 21
Index: 7.22816484936587    Element: 7
Index: 22.9971373378341    Element: 22
Index: 29.53992680071    Element: 29
Index: 15.1167304904378    Element: 15
Index: 25.5722310830811    Element: 25
Index: 13.2102360627812    Element: 13
Index: 13.9166707961743    Element: 13
Index: 10.0541861527287    Element: 10
Index: 4.68597889657119    Element: 4
Index: 14.1321285416915    Element: 14
Index: 11.4443306977078    Element: 11
Index: 27.0749844462484    Element: 27
Index: 6.42358929265441    Element: 6
Index: 6.55100443825493    Element: 6
Index: 0.438573083256628    Element: 0



John
-- 
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order.       -- Larry Wall

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to