Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Perl beginner's issue with hash

by haukex (Archbishop)
on Apr 23, 2020 at 19:47 UTC ( [id://11115970]=note: print w/replies, xml ) Need Help??


in reply to Perl beginner's issue with hash

You might be interested in Building Regex Alternations Dynamically so that you don't have to loop over your IDs.

use warnings; use strict; use Data::Dump; my @ids = ("a", "b", "c", "d", "e", "f", "g",); my ($regex) = map {qr/$_/} join '|', map {quotemeta} sort { length $b <=> length $a or $a cmp $b } @ids; my %counts = map { $_ => 0 } @ids; while (<DATA>) { if ( my ($id) = /($regex)/ ) { $counts{$id}++; } } dd \%counts; # outputs "{ a => 1, b => 2, c => 2, d => 3, e => 0, f => 3, g => 0 }" __DATA__ a b b NO ID HERE c c d d d f f f

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11115970]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-18 18:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found