Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl未在Windows 10中写入文件_Windows_File_Perl_Write - Fatal编程技术网

Perl未在Windows 10中写入文件

Perl未在Windows 10中写入文件,windows,file,perl,write,Windows,File,Perl,Write,我在Server2008上编写了一个Perl脚本。在这里很好用 我已经把它复制到我的笔记本电脑上,它运行的是Windows10家庭版,1993版,OS Build 18362.959 我还第一次下载了activeperl 该脚本基本上获取一个输入文件,并将正则表达式应用于内容,然后将结果输出到一个文件 在Windows 10上,它没有写入文件,甚至没有创建文件 我已经对这个问题进行了搜索,但没有找到解决方案 我尝试了下面的代码,在同一问题的回复中找到了。但它不会创建或写入文件。它在Server2

我在Server2008上编写了一个Perl脚本。在这里很好用

我已经把它复制到我的笔记本电脑上,它运行的是Windows10家庭版,1993版,OS Build 18362.959

我还第一次下载了activeperl

该脚本基本上获取一个输入文件,并将正则表达式应用于内容,然后将结果输出到一个文件

在Windows 10上,它没有写入文件,甚至没有创建文件

我已经对这个问题进行了搜索,但没有找到解决方案

我尝试了下面的代码,在同一问题的回复中找到了。但它不会创建或写入文件。它在Server2008上运行良好。我错过什么了吗? 如前所述,这是我第一次下载ActivePerl版本


Perl版本详细信息如下:

use strict;

use IO::File;   
my $FileHandle = new IO::File;

$FileName = "C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\ShoppingList.txt";

open ($FileHandle, "<$FileName") || print "Cannot open $FileName\n";

local $/;
 
my $FileContents  = <$FileHandle>;
close($FileHandle);

$FileContents =~ s/(Add|Bad|Limit|Each).*\n|Add$|\nWeight\n\d{1,}\nea|\$\d{1,}\.\d\d\/100g\n//g;
 Do more Regular expressions.
$FileContents =~ s/(.*)\n(.*)\n(\$\d{1,}\.\d\d)/$1,$3,$2/g;

printf $FileContents;
这是为MSWin32-x64-multi-thread构建的perl 5,版本28,subversion 1(v5.28.1)
(对于1个注册补丁,请参阅perl-V以了解更多详细信息)
版权所有1987-2018,拉里·沃尔
ActiveState提供的二进制生成0000[58a1981e]http://www.ActiveState.com
建成日期2020年4月10日17:28:14
Perl代码如下所示:

use strict;

use IO::File;   
my $FileHandle = new IO::File;

$FileName = "C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\ShoppingList.txt";

open ($FileHandle, "<$FileName") || print "Cannot open $FileName\n";

local $/;
 
my $FileContents  = <$FileHandle>;
close($FileHandle);

$FileContents =~ s/(Add|Bad|Limit|Each).*\n|Add$|\nWeight\n\d{1,}\nea|\$\d{1,}\.\d\d\/100g\n//g;
 Do more Regular expressions.
$FileContents =~ s/(.*)\n(.*)\n(\$\d{1,}\.\d\d)/$1,$3,$2/g;

printf $FileContents;

始终使用
严格使用;使用警告

my$OutFile=“C:\Users\moons\Documents\Personal Planning\Shopping\test.txt”;
导致

无法识别的转义\m在a.pl第3行传递。
无法识别的转义\D在a.pl第3行传递。
在a.pl第3行传递了无法识别的转义\P。
在a.pl第3行传递了无法识别的转义。
你可以用

my$OutFile=“C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\test.txt”;
整件事:

使用严格;
使用警告;
my$in_qfn=“C:\\Users\\moons\\Documents\\Personal Planning\\Shoppin\\ShoppingList.txt”;
my$out_qfn=“C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\test.txt”;

打开(my$in_fh),始终使用
使用严格;使用警告;

my$OutFile=“C:\Users\moons\Documents\Personal Planning\Shopping\test.txt”;
导致

无法识别的转义\m在a.pl第3行传递。
无法识别的转义\D在a.pl第3行传递。
在a.pl第3行传递了无法识别的转义\P。
在a.pl第3行传递了无法识别的转义。
你可以用

my$OutFile=“C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\test.txt”;
整件事:

使用严格;
使用警告;
my$in_qfn=“C:\\Users\\moons\\Documents\\Personal Planning\\Shoppin\\ShoppingList.txt”;
my$out_qfn=“C:\\Users\\moons\\Documents\\Personal Planning\\Shopping\\test.txt”;

open(my$in_fh,“,”上面的代码起作用。”--我怀疑它。它甚至不会编译,因为
$FileHandle
没有包名,
my
our
,等等……这个问题包括一个(可编译的)。发现了问题。这与代码无关。我已在笔记本电脑上安装了Comodo。Comodo正在对脚本生成的文件进行自动包含。它正在将文件放入C驱动器上的隐藏文件夹中。我更新了自动包含设置,以允许Perl写入require文件夹。完成此操作后,文件即被创建在文件夹中。“上面的代码有效。”--我怀疑它。它甚至不会编译,因为
$FileHandle
没有包名,
my
our
,等等……这个问题包括一个(可编译的)。发现了问题。这与代码无关。我已在笔记本电脑上安装了Comodo。Comodo正在对脚本生成的文件进行自动包含。它正在将文件放入C驱动器上的隐藏文件夹中。我更新了自动包含设置,以允许Perl写入require文件夹。完成此操作后,文件即被创建在文件夹中。