Jim Gibson wrote:
On 2/26/09 Thu Feb 26, 2009 3:53 PM, "John W. Krahn" <[email protected]>
scribbled:
I get "Use of uninitialized value in numeric gt (>) at ..." for that, since
@max is undefined the first time through the loop. Here is a version using
each that doesn't produce that error. It uses the fact that each saves its
state from one call to the next, even if the calls are not on the same line:
#!/usr/bin/perl
use strict;
use warnings;
my %files = ( one => 1, thirty => 30, four => 4, never => 997,
forever => 100001, five => 5 );
my @max = each(%files);
while( my @next = each(%files) ) {
@max = @next if $next[1] > $max[1];
}
print "biggest: (@max)\n";
__OUTPUT__
biggest: (forever 100001)
Above solution works well..
one more question, how come below does not work the way I expected?
use strict;
use warnings;
my %files = ( one => 1, thirty => 30, four => 4, never => 997,
forever => 100001, five => 5 );
my (@next,@max);
@next = @max = each(%files);
for ( @next ) {
@max = @next if $next[1] > $max[1];
}
print "biggest: (@max)\n";
__OUTPUT__
biggest: (five 5)
I would have thought it is the samething.. no?
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/