#  QueryEnvironmentVariables2.pl
#  Example 6.4:
#  ----------------------------------------
#  From "Win32 Perl Scripting: Administrators Handbook" by Dave Roth
#  Published by New Riders Publishing.
#  ISBN # 1-57870-215-1
#
#  This script displays expanded system and user environment variables.

use Win32;
use Win32::AdminMisc;
$~ = VariableFormat;
print "System Variables:\n";
if( Win32::AdminMisc::GetEnvVar( \%System, ENV_SYSTEM ) )
{
    foreach $VarName ( sort( keys( %System ) ) )
    {
        $VarValue = Win32::ExpandEnvironmentStrings( $System{$VarName} );
        write;
    }
}
print "\nUser Variables:\n";
if( Win32::AdminMisc::GetEnvVar( \%User, ENV_USER ) )
{
    foreach $VarName ( sort( keys( %User ) ) )
    {
        $VarValue = Win32::ExpandEnvironmentStrings( $User{$VarName} );
        write;
    }
}

format VariableFormat =
    @<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    $VarName,               $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    
                            $VarValue
.
