Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

(tye)Re: SysEnvAdd.pl

by tye (Sage)
on Jul 19, 2001 at 21:28 UTC ( [id://98162]=note: print w/replies, xml ) Need Help??


in reply to SysEnvAdd.pl

Here are some minor suggestions:

  • Allow the data to be specified on the command line. Having to type the values on separate lines can be inconvenient in some situations.
  • Turn on warnings.
  • Handle EOF (or an error) when reading from STDIN.
  • Environment variables are usually given a value type of REG_EXPAND_SZ (instead of the default REG_SZ that you used) so that they can be, for example, "%SystemRoot%\\system32".
  • Check for failure on the insert.
Which results in something like this:
#/usr/bin/perl -w use strict; my $Reg; use Win32::TieRegistry ( TiedRef => \$Reg, ArrayValues => 1, Delimiter => '/', ':REG_' ); my( $Host, $Key, $Value )= @ARGV; # Asking for machine name and info to be added to the sys env var if( ! defined $Host ) { print "What host would you like to connect to? "; $Host= <STDIN> or exit; chomp $Host; } if( ! defined $Key ) { print "What name would you like for the Sys Environment Variable? +"; $Key= <STDIN> or exit; chomp $Key; } if( ! defined $Value ) { print "What value would you like to assign to this variable? "; $Value= <STDIN> or exit; chomp $Value; } # this is the system environment variable area done on the registry my $SysEnv= $Reg->Connect("$Host", "LMachine/System/CurrentControlSet/ +Control/Session Manager/Environment/") or die "Can't connect to $Host 's registry or can't open Registry + key, Session Manager/Environment: $^E +\n"; # create a new value and set its data $SysEnv->{"/$Key"} = [ $Value, REG_EXPAND_SZ ] or die "Can't create $Key ($Value): $^E\n";

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: (tye)Re: SysEnvAdd.pl
by RayRay459 (Pilgrim) on Jul 19, 2001 at 23:07 UTC
    thanks tye. you rock!! I am always looking for advice on how to better writing in Perl. ~Ray~

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://98162]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (None)
    As of 2024-04-19 00:00 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found