Regex 在下线标记处拆分行时出现奇数警告
当我运行下面的代码时,我得到了预期的输出——四行。当我取消注释Regex 在下线标记处拆分行时出现奇数警告,regex,perl,Regex,Perl,当我运行下面的代码时,我得到了预期的输出——四行。当我取消注释use warnings行时,会打印出一条消息: 在/regex.pl第13行传递了无法识别的转义\R 这是什么意思?在谷歌搜索该消息时,我没有发现太多信息,但该程序似乎工作正常(换句话说,转义\R被识别) 我正在使用Perl 5.8.8 #!/usr/bin/perl use strict; #use warnings; my $txt = <<EOF; dddddddddddddddd eeeeeeeeeeeeee
use warnings
行时,会打印出一条消息:
在/regex.pl
第13行传递了无法识别的转义\R
这是什么意思?在谷歌搜索该消息时,我没有发现太多信息,但该程序似乎工作正常(换句话说,转义\R
被识别)
我正在使用Perl 5.8.8
#!/usr/bin/perl
use strict;
#use warnings;
my $txt = <<EOF;
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF
my @tarr = split(/\R/, $txt);
foreach my $t (@tarr )
{
print $t . "\n";
}
#/usr/bin/perl
严格使用;
#使用警告;
my$txt=Perl v5.10中引入了\R
因此,您的脚本实际上并没有像您在每个“行”周围放置文本或只是在数组中计算结果那样拆分行:
#!/usr/bin/perl
use strict;
use warnings;
my $txt = <<'EOF';
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF
foreach my $t (split /\R/, $txt ) {
print "<$t>\n";
}
#/usr/bin/perl
严格使用;
使用警告;
my$txt=Perl v5.10中引入了\R
因此,您的脚本实际上并没有像您在每个“行”周围放置文本或只是在数组中计算结果那样拆分行:
#!/usr/bin/perl
use strict;
use warnings;
my $txt = <<'EOF';
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF
foreach my $t (split /\R/, $txt ) {
print "<$t>\n";
}
#/usr/bin/perl
严格使用;
使用警告;
my$txt=perl中插入字符串中的特殊序列-包括regexp,用\
例如,\n
是换行符,\t
是制表符
\R
并不代表任何特殊情况,因此perl警告您
\r
是回车
更新:刚刚检查了perlrebackslash,显然\R是“\R通用新行。不在[]中。”在regexps中在perl 5.10中似乎是新的,因此如果您的perl比它旧…请检查perl中插入字符串中的perl-v
特殊序列-其中包括regexp,用\
例如,\n
是换行符,\t
是制表符
\R
并不代表任何特殊情况,因此perl警告您
\r
是回车
更新:刚刚检查了perlrebackslash,显然\R是“\R通用新行。不在[]。”在regexps中在perl 5.10中似乎是新的,所以如果您的perl比这更旧……请使用perl-v