in reply to Re: compare text file and print occurrence of key and value
in thread compare text file and print occurrence of key and value

From hash table need to generate required output stored in text file.

Do i need to define "$key_x" in another hash? Is there another way to generate

SOME-DATA.6227....

SOME-DATA is identical, replace .1.3.5.7.9.1 with SOME-DATA

for my $key ( keys %hash ) { delete $hash{$key}; $hash{$key} = "$key_x"; }
__Content of hash__
$VAR1 = { '.1.3.5.7.9.1.6227.1.20.1.1.2.33.0.7.7' => 'number: 2', '.1.3.5.7.9.1.6227.1.20.1.4.8.88.6.3' => 'number: 2', '.1.3.5.7.9.1.6227.1.20.1.5.3.5.2' => 'number: 3', '.1.3.5.7.9.1.6227.1.20.1.6.2.88.2.3.30.4' => 'number: 3', '.1.3.5.7.9.1.6227.1.20.1.1.7.88.5.3' => 'number: 3', '.1.3.5.7.9.1.6227.1.20.1.1.6.22.2.3.30' => 'data: ', '.1.3.5.7.9.1.6227.1.20.1.2.9.88.2.3.30.4' => 'number: 3', '.1.3.5.7.9.1.6227.1.20.1.5.8.88.2.3.30.4' => '', '.1.3.5.7.9.1.6227.1.20.1.6.4.88.2.3.30.4' => 'number: 1', '.1.3.5.7.9.1.6227.1.20.1.7.3.88.2.3.30.4' => 'number: 2', '.1.3.5.7.9.1.6227.1.20.1.8.2.88.2.3.30.4' => 'number: 3', '.1.3.5.7.9.1.6227.1.20.1.9.1.88.2.3.30.4' => 'number: 4', '.1.3.5.7.9.1.6227.1.20.1.9.2.88.2.3.30.4' => 'number: 5', '.1.3.5.7.9.1.6227.1.20.1.3.3.88.2.3.30' => 'number: 6', '.1.3.5.7.9.1.6227.1.20.1.6.9.0' => 'number: 7', '.1.3.5.7.9.1.6227.1.20.1.7.1.88.2.3.30.4' => 'data: ', '.1.3.5.7.9.1.6227.1.20.1.8.1.88.2.3.30.4' => 'number: 8' };
__Required output__
SOME-DATA.6227.1.20.1.1.2.33.0.7.7' = 'number: 2', SOME-DATA.6227.1.20.1.4.8.88.6.3' = 'number: 2', SOME-DATA.6227.1.20.1.5.3.5.2' = 'number: 3', SOME-DATA.6227.1.20.1.6.2.88.2.3.30.4' = 'number: 3', SOME-DATA.6227.1.20.1.1.7.88.5.3' = 'number: 3', SOME-DATA.6227.1.20.1.1.6.22.2.3.30' = 'data: ', SOME-DATA.6227.1.20.1.2.9.88.2.3.30.4' = 'number: 3', SOME-DATA.6227.1.20.1.5.8.88.2.3.30.4' = '', SOME-DATA.6227.1.20.1.6.4.88.2.3.30.4' = 'number: 1', SOME-DATA.6227.1.20.1.7.3.88.2.3.30.4' = 'number: 2', SOME-DATA.6227.1.20.1.8.2.88.2.3.30.4' = 'number: 3', SOME-DATA.6227.1.20.1.9.1.88.2.3.30.4' = 'number: 4', SOME-DATA.6227.1.20.1.9.2.88.2.3.30.4' = 'number: 5', SOME-DATA.6227.1.20.1.3.3.88.2.3.30' = 'number: 6', SOME-DATA.6227.1.20.1.6.9.0' = 'number: 7', SOME-DATA.6227.1.20.1.7.1.88.2.3.30.4' = 'data: ', SOME-DATA.6227.1.20.1.8.1.88.2.3.30.4' = 'number: 8'

Replies are listed 'Best First'.
Re^3: compare text file and print occurrence of key and value
by Laurent_R (Canon) on Sep 28, 2014 at 17:36 UTC
    You could just do this:
    my $substit = quotemeta (".1.3.5.7.9.1") for my $key (keys %hash) { my $value = $hash{$key); $key =~ s/^$substit/SOME_DATA/; print "$key = $value\n" }