我有一个工作 perl 脚本,它打开一个输入文件,解析它,然后打开一个输出文件并将解析的输出写入它。现在我希望能够将文件拖放为脚本。应该读取该文件,写入的文件应该具有相同的名称但扩展名不同,并存储在删除文件的同一目录(!)中。脚本本身使用 PAR:Packer 转换为 exe。我正在使用 Windows 7 和最新版本的 Strawbery Perl (5.16.2)
我检查文件名的方式是:
unless ($#ARGV == -1) {
$filename = $ARGV[0];
}
这就是我打开输入文件的方式:
open (my $mel, "<", $filename) or die "\nFile does not exist.\n";
这就是我打开输出文件的方式:
open (my $out, ">", 'majorEventLog.Prs') or die "Can't open output file: $!";
我面临的问题是输入文件根本无法识别。其次,我需要做什么才能在同一目录中创建输出文件?当我创建一个 cmd 文件时,输入文件可以工作,但它将输出文件存储在我的主目录中。但我不喜欢使用 CMD,而且我也希望输出文件与输入文件位于同一目录中。我需要如何更改我的代码?