【发布时间】:2016-07-18 08:44:24
【问题描述】:
我最近编写了一个转换器,它将我们的旧 Wiki 页面转换为 SharePoint 页面。
这一切都是通过命令行完成的,但现在我用 Win32 切换到 GUI。
我还是 Perl 的新手,只是将我的工作代码复制到我的 new.pl 并使用精美的 GUI 东西。
一切正常都期待这一行:
$newFileName = 'Pages/'.$file.'.aspx';
它应该输出一个指向我的目录 (Pages/TheFileName.aspx) 的路径,用于存储转换后的页面。
但是当我打印 $newFileName 时我得到了这个:
.aspx/TheFileName
.aspx 覆盖页面而不是在末尾连接。
我尝试了数百种其他组合,但第二个连接只是覆盖了我的文本。这是完全相同的行,在我的其他脚本中工作。
【问题讨论】:
-
我冒昧地猜测您已经从 STDIN 阅读了
$file。如果是这样,您可能希望确保您chomp;它。如果您不小心在文件名中包含换行符或回车符,这看起来正是您得到的那种东西。 -
它来自一个文本字段输入,用户在其中输入旧的 Wiki 网址。每行都存储在一个数组中,
$file是其中的一个元素。chomp没有帮助 :( 相同的行为 编辑:几周前我遇到了同样的问题,但不记得我是如何解决的。那里是<STDIN> -
我们需要查看更多代码来提供帮助。可能想尝试用
$file =~ s/[\r\n]//g;剥离“换行/回车”,看看是否有用。 -
我坚信问题出在
$file上。在分配给$newFileName之前尝试打印$file。我想你会知道问题所在。 -
$file =~ s/[\r\n]//g;成功了!正如你们提到的问题来自 $file 本身,非常感谢!
标签: perl concatenation