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