ken@ganymede: ~/tmp $ echo $PS1 \[\033[0;36m\]\u@\h: \w\n\$ \[\033[0m\] ken@ganymede: ~/tmp $ perl -Mstrict -Mwarnings -E ' my %escape = ( h => do {my $x = `hostname`; chomp $x; $x}, n => "\n", u => $ENV{USER}, w => $ENV{PWD} =~ s/^$ENV{HOME}/~/r, ); my $string = q{\u@\h: \w\n$ }; $string =~ s/\\([hnuw])/$escape{$1}/g; say $string; ' ken@ganymede: ~/tmp $ ken@ganymede: ~/tmp $