Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

(tye)Re: SysEnvAdd.pl

by tye (Cardinal)
on Jul 19, 2001 at 21:28 UTC ( #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")


Comment on (tye)Re: SysEnvAdd.pl
Download Code
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
Node Status?
node history
Node Type: note [id://98162]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (9)
As of 2014-12-25 10:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls