【发布时间】:2013-12-06 15:41:22
【问题描述】:
我有一堆使用此代码创建的文件:
use LWP::Simple;
my $xl = get("http://www.somewhere.com/file.xls");
open(my $outf, '>', "C:/file.xls") || die $!;
print $outf $xl;
直到最近我才意识到我应该在文件句柄中使用'>:raw' 而不仅仅是'>'。所以现在我有一堆文件已经过某种方式的修改,导致 Excel 无法打开它们。
我的问题是我是否可以使用 Perl 对这些文件进行一些处理以返回原始 Excel 文件。换句话说,是否有可能弄清楚我可以使用新的 Perl 脚本撤消对文件进行的哪些编辑?
【问题讨论】:
-
我对此表示怀疑。一些更改删除了信息。
-
>模式在 Windows 上将'\n'转换为'\n\r'(可能是其他一些东西)。您可以尝试进行反向转换。但是,这并不能保证一定会成功:如果你有一个合法的'\n\r'呢? -
@Arkadiy,它将
\n转换为\r\n。它还禁用任何默认编码,但很可能没有。 -
@Arkadiy 如果有一个合法的
\r\n,它将变为\r\r\n,并且逆变换将完全正确。 -
@hobbs:哎哟。没错。
标签: perl