Syntactic Confectionery Delight PerlMonks

### Re: Numeric summarisation from data in a hash?

by ahunter (Monk)
 on Jul 07, 2000 at 17:58 UTC ( #21476=note: print w/replies, xml ) Need Help??

in reply to Numeric summarisation from data in a hash?

Convert \$vlength to seconds (easy), and use grep in its scalar context:
```sub btween (\%\$\$)
{
my (\$hash, \$from, \$until) = @_;

return scalar(grep { \$hash->{\$_}->{VLENGTH} >= \$from &&
\$hash->{\$_}->{VLENGTH} < \$until }
keys(%{\$hash}));
}

print "There are ", btween(%hash, 0, 60), " clips between 0-1 minutes\
+n";
(And so on and so forth)

Update: Oops, forgot the titles. Grep again:

```sub btween (\%\$\$)
{
my (\$hash, \$from, \$until) = @_;

my @found = grep { \$hash->{\$_}->{VLENGTH} >= \$from &&
\$hash->{\$_}->{VLENGTH} < \$until }
keys(%{\$hash}));
my \$titles = join(', ', map { \$hash->{\$_}->{TITLE} } @found);
return (\$#found, \$titles);
}

my @result = btween(%hash, 0, 60);
print "There are \$result[0] clips between 0-1 minutes, and their names
+ are: \$result[1]\n";
Update the second: Rewrote the update in the form of the original sub statement. This doesn't work for 'there are n clips >5 minutes long'-type things. Change the conditional in the grep statement to fix this.

Andrew.

Create A New User
Node Status?
node history
Node Type: note [id://21476]
help
Chatterbox?
 [Corion]: A good daypart to everybody! [marto]: hey Corion, how's things?

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2017-06-29 07:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How many monitors do you use while coding?

Results (655 votes). Check out past polls.