Prev: pushd

Current Working Directory in Perl 6 (cwd, pwd, $*CWD)

In Perl 6 the special variable $*CWD contains the current working directory as an instance of the IO::Path class.

Note! This site is about Perl 6.
If you are looking for a solution for the current production version of Perl 5, please check out the Perl 5 tutorial.

You can just use that variable as and even if you change directory using the chdir function, the $*CWD variable will be up-to-date.


use v6;

say $*CWD;        # "/home/gabor/work/".IO
say $*CWD.WHAT;   # (IO::Path)

my $old_path = $*CWD;
my $old_dir = $*CWD.basename;

chdir '..';
say $*CWD;        # "/Users/gabor/work".IO

chdir $old_dir;
say $*CWD;        # "/Users/gabor/work/".IO

chdir '/';
say $*CWD;        # "/".IO

chdir $old_path;
say $*CWD;        # "/Users/gabor/work/".IO

The Perl 6 Tricks and Treats newsletter has been around for a while. If you are interested to get special notification when there is new content on this site, it is the best way to keep track:
Full name:
This is a newsletter temporarily running on my personal site ( using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2015-01-09

Prev: pushd


In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 4.53341298

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.