good chemistry is complicated,and a little bit messy -LW 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?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2018-02-24 09:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When it is dark outside I am happiest to see ...

Results (310 votes). Check out past polls.

Notices?