Li Ngok Lam wrote: > > My method sounds stupid, but still works : > > my @array = ('123', 'abc', 'def', 1..9); > my $len_of_array = 0 ; > foreach my $elem(@array) > { $len_of_array += length($elem) } > print $len_of_array ; # I got '18' > > my %hash = (1=>2, 2=>3, 3=>4); > foreach my $key(keys(%hash)) > { $len_of_hash += length($key) + length($hash{$key}) } > print $len_of_hash ; # I got '6' > > I suppose there should be another better and faster way to done this, > any suggestion ?
I don't know if it is "better" or faster, but it is shorter. :-) $ perl -le' my @array = ( "123", "abc", "def", 1 .. 9 ); my $len_of_array = do { local $"; length "@array" }; print $len_of_array; ' 18 $ perl -le' my %hash = ( 1 => 2, 2 => 3, 3 => 4 ); my $len_of_hash = do { local $"; length "@{[%hash]}" }; print $len_of_hash; ' 6 John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]