[EMAIL PROTECTED] wrote: > Hi! Maybe this is really easy, but hey, I'm a beginner with Perl. > > I'm trying to count the number of times a string is contained inside > another string. Here's a sample of my data, a set of colon-delimited > values from the Perl Soundex function, with a few pure numbers or letters > mixed in. > > A sample candidate string: :B000:W000:M260:8: > For each colon-delimited substring, such as :M260:, I want a count of how > many times it's found in each target string.
It sounds like you need a count hash. You might try something like: my @tokens = split /:/; foreach (@tokens) { if ($tokenCount{$_}) { $tokenCount{$_}++; } else { $tokenCount{$_} = 1; } } My test run using this approach got the listing below per line of your data: Joseph Line #1: L520:T400:C000:S000:L200:8 Analysis: 8 appeared 1 time. C000 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #2: L520:T400:C000:S000:L200:8 Analysis: 8 appeared 1 time. C000 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #3: L520:T400:C000:S000:L200:24:E214 Analysis: 24 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #4: L520:T400:C000:S000:M:24:E214 Analysis: 24 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L520 appeared 1 time. M appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #5: L520:T400:C000:S000:L200:14:E214 Analysis: 14 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #6: L520:T400:C000:S000:L200:14:E214 Analysis: 14 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. Line #7: L520:M260:C000:S000:L200:14:E214 Analysis: 14 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. M260 appeared 1 time. S000 appeared 1 time. Line #8: L520:T400:M260:S000:M260:14:E214 Analysis: 14 appeared 1 time. E214 appeared 1 time. L520 appeared 1 time. M260 appeared 2 times. S000 appeared 1 time. T400 appeared 1 time. Line #9: L520:T400:C000:S000:L200:14:E214 Analysis: 14 appeared 1 time. C000 appeared 1 time. E214 appeared 1 time. L200 appeared 1 time. L520 appeared 1 time. S000 appeared 1 time. T400 appeared 1 time. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]