我使用perl根据cygwin
。这是我想要做的。我想列出一个目录下的所有文件夹到一个数组中,然后以字符串形式打印出来,以便得到以下结果。如何在perl之后删除ls后的换行符?
让,工作路径是/user/
。在路径内
文件夹为:
/user/A
/user/B
/user/C
我想:
perl foo
/user/A /user/B /user/C
我有以下代码:
my @folderList = `ls /user`;
foreach (@folderList) {
print "$_ ";
}
print "\n";
但,结果是:
$ perl foo
/user/A
/user/B
/user/C
$
我的问题:
如何删除存储在数组内的每个结果的换行符?我试过chop()去除最后一个字符,但它不工作。
对不起,我修复了代码。由于我原来的功能有点复杂,所以我只是弄清楚它的一部分,这样我就可以更容易地逐步解决我的问题了〜“〜 – sflee 2015-03-31 02:30:38
好的,所以......如果我把'chop'在循环中,在'print'$ _“;'之前,你的代码适用于我,我已经给出了你应该写的东西的答案,但是我想明白为什么'chop'不适合你。你究竟是怎么使用它的? – zwol 2015-03-31 02:45:11
@zwol'chop'将删除字符串中的最后一个字符,不管它是什么。除了明显的问题,Windows使用两个字符作为换行符,所以它是不可移植的。我不确定Cygwin命令使用什么,可能是单个字符Unix新行。 – Schwern 2015-03-31 03:43:54