Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | package Psh::Builtins::Delenv; |
2 | ||
3 | require Psh::Support::Env; | |
4 | require Psh::Util; | |
5 | ||
6 | =item * C<delenv NAME [NAME2 NAME3 ...]> | |
7 | ||
8 | Deletes the names environment variables. | |
9 | ||
10 | =cut | |
11 | ||
12 | sub bi_delenv | |
13 | { | |
14 | my @args= split(' ',$_[0]); | |
15 | if( !@args) { | |
16 | Psh::Util::print_error_i18n('usage_delenv'); | |
17 | return (0,undef); | |
18 | } | |
19 | foreach my $var ( @args) { | |
20 | my @result = Psh::PerlEval::protected_eval("tied(\$$var)"); | |
21 | my $oldtie = $result[0]; | |
22 | if (defined($oldtie)) { | |
23 | Psh::PerlEval::protected_eval("untie(\$$var)"); | |
24 | } | |
25 | my $oldval= $ENV{$var}; | |
26 | delete($ENV{$var}); | |
27 | return (1,$oldval); | |
28 | } | |
29 | } | |
30 | ||
31 | 1; |