Perl -如何删除存储在Perl散列中的新行?

9w11ddsr  于 2023-02-05  发布在  Perl
关注(0)|答案(1)|浏览(175)

目前,当我使用datadumper打印我从电子表格导入的perl散列时,我遇到了这个问题,一些散列打印成多行,并带有回车符(^M),因为源单元格中有新行。我已经设法删除了回车符,但那些新行仍然存在。我尝试对字符串执行此操作,它只设法删除了回车符^M,但是新的线路仍然存在。

$title = $sheet->{Cells}[0][$col]{Val};
$num = $sheet->{Cells}[$row+1][$col]{Val};

$title =~ s/\r//g;
$num =~ s/\r//g;
$title2 = chomp($title);
$num2 = chomp($num);

打印时得到的输出如下

$VAR1 = {
          '' => {
                  'JOHN
has a car' => {
                             'SUV' => A red coloured
2022 suv from
japan

我希望能得到

$VAR1 = {
          '' => {
                  'JOHN' => {
                             'SUV' => A red coloured 2022 suv from japan
rsaldnfx

rsaldnfx1#

你可以用\R代替\r,它可以处理任何可能的回车和换行符的组合。
\R匹配通用换行符;也就是说,任何被Unicode认为是换行符序列的字符,包括所有与\v(垂直空格)匹配的字符,以及多字符序列“\x0D\x0A“(回车后加换行符,有时称为网络换行符;它是以二进制模式打开的Microsoft文本文件中使用的行结束序列)。\R等效于(?>\x0D\x0A|\v)

相关问题