Thread Verzeichnisswechsel mit chdir: Wie springe ich wieder zurück??? (14 answers)
Opened by Tom at 2004-08-10 14:13

ptk
 2004-08-10 16:23
#3405 #3405
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich hab mal die Funktion _save_pwd geschrieben, wenn man zwischenzeitlich in ein anderes Verzeichnis springen will und danach wieder zurueck will. Sogar nach einem die im Code wird das alte Verzeichnis wiederhergestellt. Am besten gefaellt mir die Syntax mit dem anonymen Sub.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
=head2 _save_pwd(sub { ... })

=for category File

Save the current directory and assure that outside the block the old
directory will still be valid.

=cut

sub _save_pwd (&) {
my $code = shift;
require Cwd;
my $pwd = Cwd::cwd();
eval {
$code->();
};
my $err = $@;
chdir $pwd or die "Can't chdir back to $pwd: $!";
die $err if $err;
}


Anwendung:
Code: (dl )
1
2
3
4
_save_pwd {
chdir "foobar" or die $!;
... mach was ...
};

View full thread Verzeichnisswechsel mit chdir: Wie springe ich wieder zurück???