|  | #!/usr/bin/perl | 
|  |  | 
|  | # This script takes as STDIN an output from the Registry | 
|  | # (export from regedit.exe) and prefixes every subkey-value | 
|  | # pair by their hkey,key data member | 
|  | # | 
|  | # Copyright 1999 Sylvain St-Germain | 
|  | # | 
|  |  | 
|  | ${prefix} = ""; | 
|  | ${line}   = ""; | 
|  |  | 
|  | LINE: while(<>) { | 
|  | chomp;                    # Get rid of 0x0a | 
|  |  | 
|  | next LINE if(/^$/);       # This is an empty line | 
|  |  | 
|  | if( /^\[/ ) { | 
|  | ${prefix} = ${_};       # assign the prefix for the forthcomming section | 
|  | next LINE; | 
|  | } | 
|  | s/\\\\/\\/g;              # Still some more substitutions... To fix paths... | 
|  |  | 
|  | s/^  //;                  # Get rid of the stupid two spaces at the begining | 
|  | # they are there in the case of a multi-line thing | 
|  |  | 
|  | if (/\\$/) {              # The line ends with '\', it means it is a multi | 
|  | s/\\$//;                # line thing, remove it. | 
|  |  | 
|  | ${line} = "${line}${_}";# Add the current line to the line to output | 
|  | next LINE;              # process the next line | 
|  | } | 
|  |  | 
|  | ${line} = "${line}${_}";  # Set line to the multi line thing+the current line | 
|  |  | 
|  | print "${prefix}${line}\n"; | 
|  | ${line} = "";             # start over... | 
|  | } | 
|  |  | 
|  |  | 
|  |  |