use strict; use warnings; #### my $fpath = '/somewhere/in'; my $fname = 'input.dat'; my $fn = "$fpath/$fname"; die "$fn: $!" unless -f $fn; #### my $content; { open my $fh, '<', $fn or die "$fn: $!"; local $/; $content = <$fh>; } #### my %counts; $counts{CHARS} = length $content; $counts{WORDS} = scalar( () = $content =~ /\b/g ) / 2; $counts{SENTN} = scalar( () = $content =~ /\w\.\W/g ); $counts{PARAS} = scalar( () = $content =~ /\n/g ) + 1; #### for my $key (sort keys %counts) { print "$key ==> $counts{$key}\n" }