#!/usr/local/bin/perl use strict; use warnings; use diagnostics; my $path = 'C:/Users/Customer/Desktop/New folder/Perl/'; my $inName = '1dfre10.TXT'; my $outName = '1dfre10.OUT'; open my $in, '<', "$path$inName" or die "Can't open '$inName': $!\n"; my $all_text = lc do {local $/; <$in>}; my %freq; $all_text =~ s/[^a-z\-\']/ /g; ++$freq{$_} for split /[\n\s]+/, $all_text; open my $out, '>', "$path$outName" or die "Can't create '$outName': $!\n"; print $out join "\n", reverse sort map {sprintf "%05d $_", $freq{$_}} keys %freq;