Você usa $'...'
quando quiser que sequências de escape sejam interpretadas pelo shell.
$ echo 'a\nb'
a\nb
$ echo $'a\nb'
a
b
Na opção perl
, -e
, obtenha uma string. Se você usar $'...'
, as seqüências de escape na string serão interpretadas antes de passar para perl
. No seu caso, \r
passou e nunca passou para perl
.
com $'...'
:
$ perl -MO=Deparse -we $'binmode STDIN;undef $/;$_ = <>;if(/ab\r\ncd/){print "test"}'
BEGIN { $^W = 1; }
binmode STDIN;
undef $/;
$_ = <ARGV>;
if (/ab\ncd/) {
print 'test';
}
-e syntax OK
sem ele:
$ perl -MO=Deparse -we 'binmode STDIN;undef $/;$_ = <>;if(/ab\r\ncd/){print "test"}'
BEGIN { $^W = 1; }
binmode STDIN;
undef $/;
$_ = <ARGV>;
if (/ab\r\ncd/) {
print 'test';
}
-e syntax OK