prel语言出现Use of uninitialized value $PWD in concatenation (.) or string at makereprt.pl line 37.

我在尝试复原一篇文献的代码过程,文献给了代码和源文件,语言涉及Perl,R还有LaTex,但是第一步运行Perl的时候报错,没出预期的结果,(之前没学过Perl,看文献主要是学习LaTex的),Perl只是第一步创建文件夹和复制源文件(很小一部分),作者用的是Linux系统,我是Windows,真是不好意识看看哪里错了
#!/usr/bin/perl

use warnings;

use Getopt::Long;

$userName =  $ENV{'LOGNAME'}; 

$LATEXTMPLDIR = "C:/Users/LENOVO/Desktop/Material S2"; #this is the source directory of the template


sub replaceString {
  my ($regexp, $in, $out) = @_;

  open(FH,$in) or die("Can't open $in");
  open(FO,">$out") or die("Can't open $out");
  while ($line = <FH>) {
    map { $line =~ s/$_/$regexp->{$_}/g; } keys %$regexp;
    print FO $line;
  }
  close(FH);
  close(FO);
}

$force = 0;
GetOptions("force!" => \$force);

umask 0002;

$PWD = $ENV{PWD};
$NDIR = $ARGV[0];

die "No project name specified!\n" if !$NDIR;

die "Project $NDIR already exists!\n" if -d $NDIR && !$force;

$NPWD = $PWD . "/" . $NDIR;

if (! -d $NDIR) {
    print "Creating Directory: $NDIR\n";
    mkdir($NDIR, 0777) or die "Can't mkdir $NDIR: $!"; 
}
chdir($NDIR) or die "Can't chdir to $NDIR: $!"; 

$DDIR = "report";
$DDAT = "data";
$DANA = "analysis";
$DANAC = "analysis/comparison";
$DANQS1 = "analysis/nmnqs";
$DANQS2 = "analysis/comparison/nmnqs";
$DANT1 = "analysis/tables";
$DANP1 = "analysis/plots";

map {if (! mkdir($_, 0777) && !$force) { die "Can't mkdir $_: $!" } } $DDIR, $DDAT, $DANA,$DANAC, $DANQS1, $DANQS2, $DANT1,$DANP1;

chdir "$NPWD/$DDIR" or die "Can't chdir to $NPWD/$DDIR: $!";


# get list of tex files used
my @lfiles = ("myacronyms.tex",".latexmkrc");
opendir LDIR, "$LATEXTMPLDIR";
map { -f "$LATEXTMPLDIR/$_" && /^#report#.*$/ && push @lfiles, $_; } readdir(LDIR);
closedir LDIR;

 
my %re = ("#report#" => "$NDIR", "#InsertDirectoryHere#" => "$PWD\/$NDIR\/$DDIR");

print "Processing file Latex:";
for $in (@lfiles) {
  # process the filename
  $out = $in;
  map { $out =~ s/\Q$_\E/\Q$re{$_}\E/; } keys %re;
  print " $out";
  # replace the strings within the files
  replaceString(\%re, "$LATEXTMPLDIR/$in", $out);
}
print " Done\n";

# file copying 
my $fcp=`rsync -avx $LATEXTMPLDIR/textblocks/ $PWD/$NDIR/report/textblocks/`;
$fcp=`rsync -avx $LATEXTMPLDIR/logo/ $PWD/$NDIR/report/logo/`;
$fcp=`rsync -avx $LATEXTMPLDIR/license/ $PWD/$NDIR/report/license/`;
$fcp=`rsync -avx $LATEXTMPLDIR/nonmem/ $PWD/$NDIR/analysis/nmnqs/`;
$fcp=`rsync -avx $LATEXTMPLDIR/Rscripts/ $PWD/$NDIR/analysis/`;
$fcp=`rsync -avx $LATEXTMPLDIR/Rfunctions/ $PWD/$NDIR/analysis/.R/`;
$fcp=`rsync -avx $LATEXTMPLDIR/Rresults/comparison/ $PWD/$NDIR/analysis/comparison/`;
$fcp=`rsync -avx $LATEXTMPLDIR/Rresults/plots/ $PWD/$NDIR/analysis/plots/`;
$fcp=`rsync -avx $LATEXTMPLDIR/Rresults/tables/ $PWD/$NDIR/analysis/tables/`;
$fcp=`rsync -avx $LATEXTMPLDIR/data/ $PWD/$NDIR/data/`;

my $smbln=`ln -s $PWD/$NDIR/data/data_set_504.dat $PWD/$NDIR/analysis/`;

print "\n\nCongratulation, $userName, your NEW PROJECT: $NDIR\n has been created successfully!\n";

exit 0;
运行结果及报错内容
D:\myproject\latexrepeat>perl makereprt.pl POHXXXX
Use of uninitialized value $PWD in concatenation (.) or string at makereprt.pl line 37.
Creating Directory: POHXXXX
Can't chdir to /POHXXXX/report: No such file or directory at makereprt.pl line 56.
我的解答思路和尝试过的方法

我知道应该很简单(但是我没学过一时半会看不出来)

我想要达到的结果

尝试给我一个答案看看改改